Come nascondere la mia Sitemap XML ai concorrenti ma non ai motori di ricerca


10

Voglio nascondere il mio file XML della Sitemap ma consentire l'accesso dai motori di ricerca.

Qual è il modo di farlo?

Voglio nascondere la profondità dei contenuti del sito ai concorrenti.


1
Se il sito e le sue pagine non sono protetti con l'utente e la password, qualsiasi corpo può esplorarli, devono solo seguire i collegamenti sul proprio sito.
PatomaS

Posso controllare l'IP del bot di Google e consentire e negare ad altri. Sebbene non sia possibile ottenere l'elenco IP completo di Googlebot.
AgA,

Risposte:


8

Il primo passo sarebbe rilevare l'User-Agent dei robot che si desidera consentire e servire un file diverso se non si desidera consentire a un User-Agent.

Ad esempio, potresti avere due versioni di robots.txt, una con e una senza riferimento alla Sitemap, in modo che i tuoi concorrenti non trovino la Sitemap se guardano all'interno della tua robots.txt.

Quindi, potresti rilevare le visite all'URL della Sitemap e pubblicare la mappa del sito solo quando UA è corretta. Se offri una pagina 404 generica, i tuoi concorrenti potrebbero anche non sapere che esiste la tua Sitemap.

Tuttavia, tutte le misure descritte fino a questo punto sono semplicemente sicurezza attraverso l'oscurità. Un User-Agent può essere facilmente falsificato.

Pertanto, Google consiglia di rilevare il vero GoogleBot:

  1. Esegui una ricerca DNS inversa per l'indirizzo IP che afferma di essere GoogleBot.
  2. Controlla se l'host è un sottodominio di googlebot.com..
  3. Eseguire una normale ricerca DNS per il sottodominio.
  4. Verifica se il sottodominio punta all'indirizzo IP del bot che esegue la scansione del tuo sito.

Riassumendo:

Diagramma di flusso (quando mostrare la mappa del sito)

Microsoft consiglia di utilizzare la stessa procedura per rilevare il proprio crawler.

Questo trucco funziona per Yahoo! anche.

Per DuckDuckGo, è possibile utilizzare questo elenco di indirizzi IP

Nota

Non è necessario utilizzare un errore 404 se si utilizza il rilevamento spider basato sulla ricerca DNS.

Lo scopo dell'utilizzo della pagina di errore 404 è nascondere la tua Sitemap. Tuttavia, se si utilizza la tecnica più avanzata che non si basa esclusivamente sulle User-Agentintestazioni, non dovrebbe essere possibile aggirarlo in modo da poter utilizzare in modo sicuro un codice di errore diverso, ad esempio 403 Forbiddenil codice di errore corretto da utilizzare qui.


6

Il problema è che se (giustamente) desideri che i tuoi contenuti vengano indicizzati dai motori di ricerca, chiunque esegua un sito: la ricerca in uno dei motori di ricerca sarà in grado di vedere quali URL sono indicizzati.

Se vuoi "nascondere" la tua sitemap potresti averla su un URL con un nome "segreto", quindi non è ovvio per chiunque possa cercarla, ma visto che è la migliore pratica includere una sitemap in un robots.txt archiviarlo e caricarlo su uno dei profili degli strumenti per i webmaster dei motori di ricerca, come altri hanno già detto, è difficile capire perché dovresti farlo.


Nel caso di Strumenti per i Webmaster di Google / Search Console, non è nemmeno necessario caricarlo. Puoi semplicemente aggiungere una volta l'URL della Sitemap nascosta e continuerà a usarla.
Devabc,

4

La soluzione intelligente è quella di generare due sitemap. Il primo di questi è a vantaggio dei tuoi concorrenti, il secondo è a vantaggio dei tuoi motori di ricerca preferiti. Nel parlamento militare questa prima sitemap è una finta.

La 'finta' contiene la struttura del tuo sito Web di base, la home page, contattaci, chi siamo, le principali categorie. Sembra un vero affare e funzionerà alla grande nei motori di ricerca oscuri che non ti interessano. Inoltre non sarà di alcuna utilità per i tuoi concorrenti. Consenti che sia indicizzato in modo che lo trovino, dagli un nome ovvio come sitemap.xml.

Ora crea la tua vera sitemap con il codice. Dagli un nome come "product-information-sitemap.xml" in modo che sia un nome ragionevole ma in realtà non più facile da indovinare della tua password.

Nella tua configurazione di apache per la cartella Sitemap metti qualcosa in modo che questa seconda Sitemap sia accessibile ai motori di ricerca ma non indicizzata:

<IfModule mod_rewrite.c>
    <Files product-information-sitemap.xml>
        Header set X-Robots-Tag "noindex"
    </Files>
</IfModule>

Ora crea il codice per mantenerlo aggiornato, considera una terza Sitemap per le immagini. Dowwngrade come richiesto per creare la 'finta'. Presta attenzione anche ai timestamp, Google presta attenzione a quelli e questo è importante se la tua sitemap è grande.

Ora crea un lavoro "cron" per inviare regolarmente la Sitemap dei tuoi prodotti a Google. Nella tua voce crontab aggiungi qualcosa del genere per inviare la tua vera sitemap ogni settimana:

0 0 * * 0 wget www.google.com/webmasters/tools/ping?sitemap=http%3A%2F%2Fwww.example.com%2Fsitemaps%2Fproduct-information-sitemap.xml

Si noti che l'URL è codificato URL.

Puoi anche decomprimere la tua sitemap se la dimensione è un problema, anche se il tuo server web dovrebbe pubblicare quella compressa se hai abilitato.

Il tuo robots.txt non deve essere niente di speciale, solo che non impedisce l'accesso alle tue Sitemap, dovrebbe andare bene. Non è davvero necessario inviare file robots.txt diversi in base alle stringhe dell'agente utente o a qualcosa di così complicato. Basta estrarre i tuoi preziosi contenuti in un file supplementare, non pubblicizzato e inviarlo a Google su un processo cron (piuttosto che attendere il bot). Semplice.


0

Non vedo perché una struttura di un sito potrebbe causare problemi con un concorrente?

Il punto della Sitemap è di indicizzare le pagine, in modo che le persone possano trovarle più facilmente, il che, a un certo punto, deve rivelare come è organizzato il tuo sito come:

  • /news/ contiene i tuoi articoli di notizie
  • /forum/ è dove si trovano tutte le discussioni del forum

Saranno indicizzabili, per ottenere più traffico e presentare informazioni.

Le cartelle che non si desidera avere indice è simile

  • Classi e funzioni PHP che consentono a un sito di funzionare
  • Immagini del sito, CSS, cartelle JavaScript
  • Pannello di amministrazione

Quindi, se è così, allora quelli non dovrebbero essere nella tua Sitemap. Inoltre puoi escludere anche quelli dall'indicizzazione.


0

Se si dispone degli indirizzi IP dei bot che si desidera consentire:

<Limit GET POST PUT>
order deny,allow
deny from all
allow from 192.168.1.1 # IP 1
allow from 192.168.1.2 # IP 3
allow from 192.168.1.3 # IP 2
</LIMIT>

Se lo si desidera in base alla stringa dell'agente utente:

Order Allow,Deny
allow from env=good_bot_1
allow from env=good_bot_2

Elenco completo di indirizzi IP di Google, Bing è segreto. Non lo diffonderanno al mondo in quanto comporta un grande rischio di occultamento da parte dei siti Web.
AgA,

Ecco perché ho aggiunto la seconda possibilità :) Il nome è molto più semplice, ma volevo fornire una risposta completa
Martijn,

0

Un modo in cui puoi provare: in una normale sessione di scansione, i bot di Google accedono a robots.txt e quindi vanno al file della mappa del sito. Inserisci un cookie per tutte le porzioni di robots.txt e consenti l'accesso alla mappa del sito solo a quelle persone con il cookie. Ci sarà il problema quando i robot di Google non accettano i cookie. Quindi fai il contrario. Inserisci un cookie quando un utente accede a una pagina diversa da robots.txt e nega l'accesso alla Sitemap per coloro che dispongono del cookie. Inoltre, dai un nome criptato alla tua sitemap, qualcosa che cambia nel tempo e lo rende indovinabile. Se i tuoi concorrenti hanno i cookie abilitati nel loro browser, sarà estremamente difficile per loro accedere alla Sitemap a meno che non seguano il percorso esatto che sta seguendo un motore di ricerca.


0

Presumo di aver compreso correttamente le tue esigenze, quindi ho il coraggio di rispondere.

inserisci un link immagine alla tua sitemap appena prima del </html>tag. Usa un file gif 1px trasparente:

<a href="sitemap.xml"><img src="transparent.gif" alt="" height="1" width="1" /></a>

Nella pagina che contiene il link della tua Sitemap, imposta la metatag correlata:

<meta name="robots" content="{index or noindex},follow">

controlla lo stato visivo quando premi Ctrl+ Aper selezionare tutta la pagina. Il link 1px è visibile, rischioso per te?

Se dici di sì, potrebbe essere un'altra opzione è:

  1. crea un link alla tua Sitemap: <a href="sitemap.xml">&nbsp;</a>
  2. cambia il colore del carattere stesso con il colore di sfondo
  3. Usando le tecniche CSS, nascondi questo link dietro un'immagine

In questo modo un normale utente non curioso non noterà il tuo link. I motori di ricerca lo sapranno. Ma tieni presente che la natura intrinseca della tua domanda comporta l'impossibilità.

Dico impossibilità perché se un utente cerca in Google, ad esempio con questi termini

* site:www.yoursite.com

tutto il mondo può vedere tutti i tuoi link se non si stancano di fare clic sui nextlink.

Spero che questo aiuti.


Perché questo dovrebbe impedire agli utenti di trovare / accedere alla Sitemap XML quando normalmente non si collega alla Sitemap XML?
Mr White,

Ho chiesto la stessa Q a me stesso, ma questo è ciò che ho sottolineato dal proprietario della domanda. Penso che questo sia il suo requisito in qualche modo. Non sono sicuro :-)
Andre Chenier,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.