A Sort of Code

Robots.txt e Google Webmaster Tools

Come funziona un crawler

Un crawler – altrimenti detto robot, spider o bot – è un software che, in modo sistematico, cerca e analizza contenuti testuali all’interno una rete per conto di un motore di ricerca allo scopo di inserirli in un indice consultabile. Normalmente questi software cercano di scovare il maggior numero possibile di dati  da catalogare ed è quindi opportuno indirizzare le loro scansioni.

Come sappiamo infatti, molto spesso all’interno di un sito sono presenti pagine che non si vuole appaiano nei risultati dei motori di ricerca. Il file robots.txt ci aiuta nel compito di regolamentare le visite dei crawler.
La prima cosa che fa uno spider quando visita un indirizzo è cercare il file robots.txt nella directory principale. Una volta trovato, ne legge il contenuto e ne segue le indicazioni, sempre a patto che non si tratti di malware robots perché in tal caso il file verrebbe ignorato.

Essendo un file pubblico possiamo facilmente intuire che il suo scopo non è nascondere informazioni quanto renderle o meno indicizzabili.
robots.txt non dispone di un vero e proprio standard, almeno non sulla carta. Alcune aziende però, come Google, Yahoo e Microsoft avevano iniziato a muoversi in questa direzione già qualche anno fa includendo il supporto al wildcard, alle sitemaps, ai meta tags, ecc…

Creare un file robots.txt

Per creare un robots.txt non serve altro che un editor di testo basilare, come il blocco note di Windows. I campi fondamentali da includere sono l’User-agent e la regola ad esso applicata.

L’User-agent non è altro che il nome del crawler: googlebot per Google, slurp per Yahoo!, scooter per Altavista, ecc… Solitamente anziché specificare un singolo nome si preferisce inserire un asterisco ad indicare che tutti i crawler devono seguire le regole riportate.

I comandi che possiamo dare ai bot sono Allow (permette l’indicizzazione) e Disallow (impedisce l’indicizzazione), ma dato che di default gli spider analizzano ogni cosa, disallow è  il più utilizzato tra i due. Nel file possiamo includere anche l’url della sitemap, ottenendo un codice di questo tipo:

User-agent: *
Disallow:

Sitemap: http://www.miosito.com/sitemap.xml

Con questo comando si specifica che tutti gli spider (User-agent: *) devono indicizzare l’intero sito (“Disallow: ” che equivale a “Allow= /” dove / indica tutto il contenuto della root).
Per ogni User-agent è possibile specificare più regole ognuna delle quali deve essere posta su una differente riga:

Scrorretto:

User-agent: *
Disallow: /cartella1/ /cartella2/

Corretto:

User-agent: *
Disallow: /cartella1/
Disallow: /cartella2/

In presenza sia di comandi generici che specifici, un crawler seguirà sempre quelli più specifici ignorando gli altri:

User-agent: *
Disallow: /cartella1/
Disallow: /cartella2/

User-agent: googlebot
Disallow: /cartella3/

Anche se non si hanno particolari esigenze o si desidera indicizzare l’intero sito è comunque consigliabile creare sempre il file robots.txt; prima di tutto per evitare errori 404 da parte del log del server per il file mancante e in secondo luogo per una questione di chiarezza verso il crawler.

Una volta creato va inserito nella root del sito. Per controllare che il file sia stato caricato correttamente controllare l’indirizzo www.miosito.it/robots.txt (/robots.txt si trova sempre dopo l’estensione del dominio).

Il file robots.txt è un’alternativa sbrigativa e meno precisa al meta tag robots capace invece di evitare l’indicizzazione di una pagina senza per questo bloccare la distribuzione del link juice (valore distribuito sui link in uscita che comprende il PageRank).

<html>
<head>
<title>...</title>
<meta name="robots" content="noindex, follow">
</head>
 

Esempi di comandi

Indicizzare l’intero sito:

Disallow: 

Inserendo uno slash ( / ) dopo Disallow si esclude l’intero sito dall’analisi dei crawler:

Disallow: /

Per evitare l’indicizzazione di una cartella e del suo contenuto bisogna indicarne il percorso:

Disallow: /documenti/

Per escludere una pagina la dicitura è la stessa. Il percorso deve essere corretto: nell’esempio che segue, il file è nella root:

 Disallow: /pagina.html

Per esclude uno specifico file inserito in una cartella:

 Disallow: /immagini/foto.jpg

Utilizzare un asterisco per indicare sequenze di caratteri corrispondenti. Nell’esempio si blocca l’accesso a tutte le sottodirectory che iniziano con “privato”:

Disallow: /privato*/

Sempre con l’utilizzo dell’asterisco blocco l’accesso a tutti gli URL che presentano un punto interrogativo tra due stringhe:

Disallow: /*?

Per specificare la corrispondenza della fine di un URL, utilizza il carattere $. Nell’esempio si bloccano tutti gli URL che terminano con .jpg:

Disallow: /*.jpg$

Utilizzare Disallow in combinazione con Allow per evitare indicizzazioni di pagine duplicate o non idonee. Ad esempio se nell’url di una pagina il punto interrogativo ( ? ) indica un ID di sessione, e quindi lo si vuole escludere dall’indicizzazione, ma allo stesso tempo è presente in indirizzi di pagine che si vogliono includere, è necessario indicare la seguente istruzione:

User-agent: *
Allow: /*?$
Disallow: /*?

Con questo comando bloccheremo qualsiasi indirizzo che presenterà un punto interrogativo compreso tra due stringhe mentre consentiremo l’indicizzazione di quelli che termineranno con quel carattere.

Strumenti per analizzare o creare un robots.txt

Google Webmaster Tools offre diversi strumenti per la gestione del file robots.txt e il controllo dei risultati delle scansioni dei crawler.

Plugin per WordPress

Come sempre WordPress viene in nostro aiuto con diversi plugin più o meno completi: