Gestire l’indicizzazione del sito con il file robots.txt
Generalmente i webmaster cercano sempre di aumentare la visibilità del proprio sito sui motori di ricerca. Questo è però possibile, se tutti gli URL rilevanti possono essere scansionati dai crawler ed essere così inseriti nell’indice. È raro infatti che i siti vengano scansionati completamente perché su Google lo spazio per l’analisi e la memorizzazione dei contenuti web è limitato. Ad ogni domino viene assegnato quindi uno specifico budget di scansione, che stabilisce quanti URL al giorno possano essere scansionati e indicizzati. Proprio per i siti più complessi si consiglia ai webmaster di muoversi in maniera strategica, segnalando ai crawler quale parti del sito debbano essere scansionate e quali possano essere ignorate. Gli strumenti importanti per la gestione dell’indicizzazione sono i meta tag robots, i canonical tag, i reindirizzamenti e il file robots.txt, di cui tratta questo tutorial.
Cos’è il file robots.txt?
Il robots.txt è un semplice file di testo collocato nella root del dominio, che permette di gestire l’accesso dei motori di ricerca al proprio sito, bloccando alcune parti per alcuni o tutti i crawler. Il file robots.txt contiene informazioni riguardanti tutta la struttura del sito e si differenzia significativamente dai meta tag robots e dai reindirizzamenti, che si riferiscono invece solo ad uno specifico documento HTML o ad una sua parte. È da notare però che le istruzioni del file vengono viste dai motori di ricerca solo come linee guida e non è possibile pertanto determinare il comportamento dei crawler in maniera precisa. Google e gli altri grandi motori di ricerca dichiarano di attenersi a queste indicazioni, ma solo proteggendo alcune aree del sito con una password, si ha la certezza che il crawler non le analizzerà.
Creare un file robots.txt
Per consentire ai crawler l’accesso alle istruzioni personalizzate per la scansione del sito, bisogna creare un file di testo con il nome esatto di “robots.txt” e caricarlo nella root del sito. Ad esempio se si vogliono definire le linee guida per il dominio esempio.it, il file robots.txt deve trovarsi nella stessa cartella di www.esempio.it, per richiamare il file all’indirizzo www.esempio.it/robots.txt. Se con l’hosting scelto non è possibile accedere alla root del server, ma solo ad una sottocartella
(come www.esempio.it/utente/), non è possibile gestire l’indicizzazione tramite il file robots.txt.
I webmaster che vogliono creare un file robots.txt, devono utilizzare un editor di testo come vi (per Linux) o notepad.exe (per Windows) e assicurarsi, durante il trasferimento FTP, che il file venga trasmesso in modalità ASCII. Grazie ad un generatore è possibile creare un file robots.txt anche online. Si consiglia di testare il file, prima di caricarlo sulla root, perché gli errori di sintassi possono ripercuotersi negativamente sull’indicizzazione del sito. A questo proposito Google mette a disposizione un tool all’interno della Search Console.
Struttura del file robots.txt
Ogni robots.txt contiene una serie di dati, chiamati record, composti da due parti. La prima parte è introdotta dalla keyword “User-agent” e indica il crawler a cui vengono date le istruzioni nella seconda parte. Generalmente si tratta di divieti di scansione del sito, che vengono introdotti dalla parola chiave “Disallow”, a cui segue il nome di una cartella o di uno o più file. Ne risulta il seguente schema di base
User-agent: Googlebot
Disallow: /temp/
Disallow: /news.html
Disallow: /print
Nell’esempio, il file robots.txt si rivolge solo ai crawler con il nome “Googlebot” e gli vieta di scansionare la cartella /temp/ e il file news.html. Vengono bloccati anche tutti i file e le cartelle, che si trovano nella cartella print. Da notare come Disallow: /temp/ e Disallow: /print si distinguono sintatticamente solo dalla mancanza dello slash alla fine, cosa che è di estrema rilevanza nella sintassi del file robots.txt.
Inserire i commenti
Se necessario, si possono aggiungere dei commenti al file, introdotti da un cancelletto (#) e inseriti in un punto qualsiasi.
# robots.txt per http://www.esempio.it
User-agent: Googlebot
Disallow: /temp/ # La cartella contiene file temporanei
Disallow: /print/ # La cartella contiene pagine da stampare
Disallow: /news.html # Il file viene aggiornato giornalmente
Rivolgersi a più user agent
Se ci si vuole rivolgere a diversi crawler, possono essere inserite a piacimento tutte le righe necessarie, sempre seguendo lo schema di base. In presenza di più user agent, prima di inserirne uno, viene lasciata una riga vuota.
# robots.txt per http://www.esempio.it
User-agent: Googlebot
Disallow: /temp/
User-agent: Bingbot
Disallow: /print/
Al crawler di Google viene impedito di analizzare la cartella /temp/, mentre al bot di Bing non è consentito scansionare la cartella /print/.
Rivolgersi a tutti gli user agent
Se devono essere bloccati per tutti i crawler delle cartelle o file specifici, si utilizza un asterisco come wildcard per estendere il divieto a tutti gli user agent.
# robots.txt per http://www.esempio.it
User-agent: *
Disallow: /temp/
Disallow: /print/
Disallow: /pictures/
Il file robots.txt blocca l’accesso alle cartelle /temp/, /print/ e /pictures/ a tutti i crawler.
Escludere tutte le cartelle dall’indicizzazione
Se si vuole indicare agli user agent di non accedere ad alcuna sezione del sito, basta uno slash dopo la parola chiave “Disallow”:
# robots.txt per http://www.esempio.it
User-agent: *
Disallow: /
Così viene segnalato a tutti i crawler di ignorare completamente il sito web. Ad esempio si può fornire questa direttiva, nel caso di progetti che si trovino ancora in una fase di test.
Consentire l’indicizzazione per tutte le cartelle
Se un robot deve scansionare ed indicizzare tutto il sito web, nel file deve essere utilizzata la keyword “Disallow” senza lo slash:
# robots.txt per http://www.esempio.it
User-agent: Googlebot
Disallow:
Se il file robots.txt contiene questa indicazione, tutto il sito web è indicato come da scansionare per il crawler definito alla voce “user-agent”.
Istruzione | Esempio | Funzione |
---|---|---|
User agent: | User-agent: Googlebot | Si rivolge ad un crawler specifico. |
User-agent: * | Si rivolge a tutti i crawler. | |
Disallow: | Disallow: | Tutto il sito web può essere analizzato. |
Disallow: / | Tutto il sito web è bloccato. | |
Disallow: /cartella/ | Una cartella specifica è bloccata. | |
Disallow: /file.html | Un file specifico è bloccato. | |
Disallow: /esempio | Tutte le cartelle e i file, che si trovano nella cartella esempio, vengono bloccati. |
Funzioni avanzate
Oltre alle funzioni di base, ormai quasi standard, alcuni motori di ricerca supportano altri parametri, che consentono di precisare le istruzioni del file robots.txt. Queste funzioni sono supportate da Google e sono frutto di un accordo con Microsoft e Yahoo!.
Definire le eccezioni
Oltre a “Disallow”, Google supporta con “Allow” un’altra parola chiave nel file robots.txt, che consente di stabilire delle eccezioni per le cartelle bloccate:
# robots.txt per http://www.esempio.it
User-agent: Googlebot
Disallow: /news/
Allow: /news/index.html
La keyword “Allow” consente di sbloccare il file www.sito.it/news/index.html per il Googlebot, malgrado la cartella sovraordinata /news/ rimanga bloccata.
Bloccare i file con estensioni precise
I webmaster che vorrebbero impedire al Googlebot la scansione di file con un’estensione precisa, utilizzano i record come nell’esempio:
# robots.txt per http://www.esempio.it
User-agent: Googlebot
Disallow: /*.pdf$
La keyword “Disallow” si riferisce a tutti i dati con l’estensione .pdf e ne impedisce l’accesso al Googlebot. L’asterisco (*) funziona come wildcard per i nomi dei file prima dell’estensione. La voce viene inclusa, inserendo il simbolo del dollaro ($) alla fine della riga.
Indicare la sitemap ai crawler
Oltre a gestire la scansione del sito, il file robots.txt consente di rendere nota ai crawler la struttura di un sito. Un file robots.txt che rimanda alla sitemap si può realizzare così:
# robots.txt per http://www.esempio.it
User-agent: *
Disallow: /temp/
Sitemap: http://www.esempio.it/sitemap.xml
Istruzione | Esempio | Funzione |
---|---|---|
Allow: | Allow: /esempio.html | Il file o la cartella indicata possono essere analizzate. |
Disallow: /*…$ | Disallow: /*.jpg$ | I file con un’estensione specifica sono bloccati. |
Sitemap: | Sitemap: http://www.esempio.it/sitemap.xml | La sitemap XML si trova all’indirizzo indicato. |