Robots.txt può trovarsi nella sottodirectory di un server?


16

Ho una sottodirectory che vorrei nascondere ai crawler web dei motori di ricerca.

Un modo per farlo è utilizzare un robots.txtnella directory principale del server (il modo standard). Tuttavia, chiunque conosca l'URL del sito Web e abbia alcune conoscenze di base sul Web può accedere ai contenuti di robots.txt e individuare le directory non consentite.

Ho pensato a un modo per evitarlo, ma non sono sicuro che funzionerà.

Sia Xil nome della sottodirectory che voglio escludere. Un modo per impedire ai Web Crawler di indicizzare la Xdirectory e allo stesso tempo rendere più difficile per qualcuno identificare la Xdirectory da quella di root robots.txt, è aggiungere robots.txtla Xdirectory invece della directory root.

Se seguo questa soluzione ho le seguenti domande:

  1. I crawler Web troveranno robots.txtnella sottodirectory? (dato che robots.txtesiste già un e anche nella directory principale)
  2. Se robots.txtè nella Xsottodirectory, allora dovrei usare percorsi relativi o assoluti ?:

    User-agent: *
    Disallow: /X/
    

    o

    User-agent: *
    Disallow: /
    

2
Non sono sicuro del motivo per cui vuoi evitare che le persone leggano le tue directory non consentite, ma se ci sono dati sensibili, non dovrebbero essere solo bloccati dai robot ma anche limitati da un login o da qualche altra sicurezza.
Andrew Lott,

Non è questo il caso, vorrei che un utente specifico avesse accesso ad esso (nulla di sensibile in termini di dati, solo per la privacy) e vorrei non bloccare la directory.
Rafael,

5
Se hai problemi di privacy, allora dovresti proteggere i dati in altro modo. Non è per questo che robots.txt è.
Andrew Lott,

Risposte:


18

No, i crawler Web non leggeranno o obbediranno a un file robots.txt in una sottodirectory. Come descritto sul sito robotstxt.org quasi ufficiale :

Dove metterlo

La risposta breve: nella directory di livello superiore del tuo server web.

o sulle pagine di aiuto di Google ( sottolineatura mia):

Un robots.txtfile è un file nella radice del tuo sito che indica quelle parti del tuo sito a cui non vuoi accedere dai crawler dei motori di ricerca.

In ogni caso, utilizzare robots.txt per nascondere pagine sensibili dai risultati di ricerca è comunque una cattiva idea, poiché i motori di ricerca possono indicizzare le pagine non consentite in robots.txt se altre pagine si collegano ad esse. Oppure, come descritto nella pagina di aiuto di Google collegata sopra:

Non dovresti usare robots.txt come mezzo per nascondere le tue pagine web dai risultati della Ricerca Google. Questo perché altre pagine potrebbero puntare alla tua pagina e la tua pagina potrebbe essere indicizzata in questo modo, evitando il file robots.txt.

Quindi cosa dovresti fare invece?

  • Puoi consentire ai motori di ricerca di scansionare le pagine (se le trovano), ma includere un meta tag robot con il contenuto noindex,nofollow. Ciò dirà ai motori di ricerca di non indicizzare quelle pagine anche se trovano collegamenti a esse e di non seguire ulteriori collegamenti da quelle pagine. (Naturalmente, questo funzionerà solo per le pagine Web HTML.)

  • Per risorse non HTML, è possibile configurare il proprio server Web (ad es. Utilizzando un .htaccessfile) per inviare l' intestazione HTTP X-Robots-Tag con lo stesso contenuto.

  • È possibile impostare l'autenticazione con password per proteggere le pagine sensibili. Oltre a proteggere le pagine da visitatori umani non autorizzati, manterrà efficacemente anche i web crawler.


Fantastico, è una pagina HTML statica, che aggiungendo il meta tag farà il trucco. Grazie.
Rafael,

5

Il tuo robots.txtdovrebbe essere nella directory principale e non dovrebbe avere un altro nome. Secondo le specifiche standard :

Questo file deve essere accessibile tramite HTTP sull'URL locale "/robots.txt".


Detto questo, i crawler web non cercheranno nessun'altra directory per robots.txt?
Rafael,

1
Non che io abbia mai visto. /robots.txtè lo standard, quindi come farebbero i motori di ricerca a sapere dove guardare altrimenti?
Andrew Lott,

0

È possibile effettivamente utilizzare un robots.txt in una sottodirectory. Questo è attualmente il modo in cui trattiamo i nostri sottodomini linguistici. Usiamo un reindirizzamento 301 da /robots.txt a /lang/robots.txt (per sottodominio) e viene raccolto correttamente.

Sta anche raccogliendo la struttura delle cartelle come root corretta, quando si usa una semplice barra. per esempio. non consentire: /

viene considerato come non consentire tutto e non solo la sottodirectory corrente in cui risiede il file {redirected} robots.txt.

Ma ancora una volta, reindirizziamo con un 301 e abbiamo quello in atto, quindi senza un 301, dubito che sarebbe mai stato trovato ...

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.