19
2010
Google e le specifiche del Robots.txt
In questo post non parlerò di come scrivere le regole del file robots.txt, ma di come Google le interpreta ugualmente anche se non scritte correttamente.
Durante il reverse engineering di un’applicazione che sto sviluppando, in particolare di due librerie Ruby che ho rilasciato recentemente (Robotstxt e Rwspider), mi sono imbattuto in una serie di irregolarità presenti nei file robots.txt di alcuni siti monitorati durante i test.
Una di queste mi ha incuriosito particolarmente ed ho approfondito la situazione fino a verificare come Google chiuda un occhio in presenza di errori nella scrittura delle regole contenute nel file robots.txt. Infatti, il Motore di ricerca interpreta le indicazioni anche se le specifiche del file robots.txt non sono rispettate.
Sitemap XML
La segnalazione della sitemap XML via robots.txt prevede l’utilizzo dell’URL assoluto del file XML:
Sitemap: http://www.simonerinzivillo.it/sitemap.xml
In realtà, nonostante le specifiche del protocollo Sitemap non lo contemplano, Google accetta anche le URL relative segnalandone l’anomalia all’interno del Google Webmaster Tools.
user-agent o useragent ?
Le specifiche del protocollo robots.txt prevedono l’utilizzo dell’etichetta “user-agent” per l’identificativo del robot a cui si riferiscono le regole descritte nelle righe successive del file.
Analizzando
il comportamento dell’applicazione che sto sviluppando mi sono accorto
che nel file robots.txt di un blog che seguo abitualmente viene utizzato
erroneamente il termine “useragent”:
Useragent:*
Disallow: area/da/non/indicizzare
Disallow: area/da/non/indicizzare
Useragent
non equivale a User-agent e nelle specifiche non c’è traccia della
possibilità di utilizzare due etichette differenti per far riferimento
all’identificativo del robot. Nonostante questo, Google si è comportato come richiesto e non
ha indicizzato le aree che si intendeva bloccare. Anche in questo
caso il Google Webmaster Tools mi conferma che Googlebot farà quello
che gli chiedo segnalando però l’anomalia.
Quindi, nonostate User-agent è l’unica formula prevista, Google interpreta correttamente anche le indicazioni destinate a Googlebot se questo viene identificato con useragent.
Varie
Visti gli esiti dei primi due test ho iniziato a giocherellare
con il tool di Google per la verifica del robots.txt e ho notato altre
situazioni non previste, sulle quali in realtà il Motore di Ricerca
chiude un occhio: le regole vengono interpretate correttamente anche in questi casi:
- mancano i : (due punti) a separare regola e path
- ci sono errori di nel naming delle regole (vedi disalow al posto di disallow)
Riepilogando

Prima di pubblicare
questo post ho preferito ottenere un’ulteriore conferma attraverso un
test.
Ho
aggiunto delle nuove regole errate al mio robots.txt, pubblicato una nuova
sitemap XML e una nuova pagina (presente anche nella sitemap) di cui
bloccare l’indicizzazione.
useragent: *
disalow: /test/
sitemap: /sitemapxml.xml
Dopo qualche giorno, monitorando il Google Webmaster tools ottengo la conferma che cercavo: Googlebot ha scaricato ed interpretato correttamente il file robots.txt, si è comportato come desideravo, ma segnala le anomalie appena illustrate:
- L’indicazione dell’URL della sitemap XML non è corretta e nonostante questo la segue ugualmente.

- Le regole per il divieto di indicizzazione del nuovo documento sono
errate ma questo non viene indicizzato.

Al contrario di Google, gli altri due Motori (Yahoo e Bing) non hanno considerato le regole non corrette presenti all’interno del file robots.txt indicizzando la pagina del test.
Per quanto è stato interessante approfondire questa reazione inaspettata di Google, in realtà il comportamento emerso non fornisce alcun nuovo input al SEO, si tratta solamentecuriosità ☺.
Scritto da Simone Rinzivillo




good!