Diamo pure per scontato che tutti sappiano che cosa sia un file robots.txt (in sostanza, regola la comparsa o meno delle pagine del sito tra i risultati di ricerca sui cosiddetti «motori» di ricerca) e perché è importante farlo bene (per escludere dai risultati di ricerca le pagine tecniche e quelle con i contenuti privati e/o non significanti, migliorando il posizionamento di quelle importanti).
L’obbiettivo del presente paragrafo è fornire alcuni consigli sulla creazione di un file robots.txt realmente efficace. Evitiamo le lungaggini manualistiche e andiamo per punti.
1. Come creare un file robots.txt
Apriamo un qualsiasi editor di testo (gli utenti di Windows si troveranno benissimo con il Blocco note presente su tutti i computer) e salviamo un file vuoto con il nome robots e l’estensione .txt (infatti, è un semplice file di testo, non uno script).
Attenzione: al 99,99% il vostro sito ha già questo file (si trova nella root, quindi il suo indirizzo è nomesito.it/robots.txt). Seguendo i consigli di questo paragrafo potete modificarlo o sostituirlo con la vostra versione.
I più pigri possono utilizzare uno dei numerosissimi servizi online per generare un file robots.txt in automatico. Allo stesso tempo bisogna ricordare che il file creato manualmente rispecchierà in modo più preciso le vostre preferenze circa il rapporto del sito con i motori di ricerca. L’interpretazione del file generato online e la sua correzione, invece, possono portare alle sviste tragiche per il vostro successo su internet. In ogni caso, il file robots.txt può essere aggiornato e perfezionato manualmente in qualsiasi momento.
2. Qual è il contenuto minimo del file robots.txt
Il contenuto minimo indispensabile di un file robots.txt è quello che autorizza l’indicizzazione del 100% del sito. Questo significa che tutti i file caricati – anche quelli non utilizzati sulle pagine del sito – potranno uscire tra i risultati delle ricerche.
Tale contenuto minimo è:
User-agent: * Allow: /
Se, invece, volessimo vietare l’indicizzazione dell’intero sito, il contenuto minimo del file robots.txt diventa questo:
User-agent: * Disallow: /
3. Le impostazioni corrette del file robots.txt
La prima cosa che dobbiamo sapere del file robots.txt è: le istruzioni in esso contenute sono solo delle istruzioni e non delle barriere insuperabili. I meccanismi – robots – dei motori di ricerca di qualità (come, per esempio, Google o Yandex) seguono fedelmente le istruzioni contenute nei file robots.txt, mentre gli altri potrebbero anche ignorarle.
Ma questo non significa che non dobbiamo impegnarci. Dobbiamo dunque comprendere bene le regole, la sintassi e le direttive del file robots.txt.
Un buon file robots.txt inizia con la direttiva User-agent che indica al quale robot sono rivolte le direttive elencate nelle righe che la seguono.
Gli esempi del User-agent nel file robots.txt:
# Indica le direttive a tutti i robot contemporaneamente User-agent: * # Indica le direttive a tutti i robot del Google User-agent: Googlebot # Indica le direttive a tutti i robot del Yandex User-agent: Yandex # Indica le direttive solo al robot principale del Yandex User-agent: YandexBot
Del codice appena riportato è importantissimo capire due cose. In primo luogo, vediamo che in un file robots.txt possono essere indicati più User-agent (uno generico e uno per ogni «motore» di ricerca al quale vogliamo dare delle istruzioni). In secondo luogo, vediamo che a ogni «motore» di ricerca vengono fornite solo le istruzioni elencate per il User-agent con il suo nome (quindi potremmo anche dare istruzioni diverse ai «motori» diversi).
Facciamo un esempio pratico:
# Sara utilizzata da tutti i robot del Google User-agent: Googlebot Disallow: /*utm_ # Sara utilizzata da tutti i robot del Yandex User-agent: Yandex Disallow: /*utm_ # Sara utilizzata da tutti i robot tranne quelli di Google e Yandex User-agent: * Allow: /*utm_
La direttiva User-agent si limita a «richiamare l’attenzione» del rispettivo robot del «motore» di ricerca, mentre le direttive seguenti danno le istruzioni concrete da eseguire. Nell’ultimo esempio la direttiva «Disallow» (diniego) ha il valore «*utm_». In tal modo escludiamo dai risultati di ricerca tutte le pagine con i parametri UTM.
Sempre dall’ultimo esempio possiamo imparare che nel file robots.txt le istruzioni per ogni robot (cioè gli User-agent) vanno raggruppati in blocchi divisi con una riga vuota l’uno dall’altro (è una regola obbligatoria!). Un blocco può contenere le istruzioni per un solo robot oppure le regole comuni a tutti i robot (in questo ultimo caso il valore del User-agent è «*»).
Un’altra cosa importante è il rispetto dell’ordine corretto delle direttive «Disallow» (diniego) e «Allow» (permesso, quindi il contrario della precedente). Facciamo subito un esempio pratico:
User-agent: * Disallow: /blog Allow: /blog/page
Nell’esempio appena riportato abbiamo negato a tutti i robot (si veda «*») l’indicizzazione (la visualizzazione tra i risultati) di tutte le pagine il cui indirizzo inizia con «/blog» (quindi l’indirizzo nomesito.it/blog non comparirà tra i risultati). Allo stesso tempo abbiamo consentito l’indicizzazione delle pagine i cui indirizzi iniziamo con il percorso «/blog/page». L’ordine di indicazione del diniego e del permesso deve essere proprio quello: vietare tutta la sezione e poi autorizzare quelle sue parti che secondo noi possono essere trovate dai terzi.
Prima di procedere dobbiamo vedere le nozioni essenziali sulla sintassi del file robots.txt.
4. La sintassi del file robots.txt
Per creare un file robots.txt interpretabile in modo corretto dai robot di ricerca, bisogna seguire una serie di semplicissime regole:
1. Ogni direttiva inizia da una riga nuova;
2. Non iniziare una riga con uno spazio [vuoto];
3. Il parametro di una direttiva deve essere tutto sulla stessa riga;
4. I parametri delle direttive non devono essere racchiuse tra le virgolette;
5. I parametri delle direttive non richiedono il punto e virgola di chiusura;
6. Le istruzioni in un file robots.txt hanno il formato [Nome_direttiva]:[spazio_non_obbligatorio][valore][spazio_non_obbligatorio]
7. I commenti sono possibili nel file robots.txt, ma devono iniziare con il simbolo «#»;
8. Una riga vuota è considerata come il segno della fine della direttiva User-agent;
9. La direttiva «Disallow: » (cioè con il valore vuoto) equivale a «Allow: /» (cioè autorizzare tutto);
10. Per ogni direttiva «Allow» o «Disallow» può essere indicato solo un parametro;
11. Il nome del file robots.txt deve contenere solo le lettere minuscole;
12. È fortemente consigliato di evitare le maiuscole nei nomi delle direttive (tranne la prima lettera) e nei parametri: il file robots.txt non fa la differenza tra le maiuscole e le minuscole, ma i nomi dei file e delle directory spesso sì;
13. Se il parametro di una direttiva è una directory, quest’ultima deve essere preceduta da uno slash «/», per esempio: Disallow: /category
14. I file robots.txt troppo pesanti (più di 32 KB) vengono interpretati come completamente permissivi, quindi equivalenti a «Disallow: » (di conseguenza, evitate di metterci delle direttive inutili, meglio averne poche ma realmente necessarie);
15. Il file robots.txt inaccessibile o assente viene considerato completamente permissivo;
16. Il file robots.txt vuoto viene considerato completamente permissivo;
17. Nel caso della indicazione di più direttive «User-agent» non divise tra loro da una riga vuota, solo la prima «User-agent» viene interpretata, mentre quelle seguenti andranno ignorate (l’unica eccezione è il robot del russo Yandex);
18. L’uso dei simboli appartenenti agli alfabeti nazionali non è ammissibile (quindi niente vocali accentate italiane).
5. Come verificare il funzionamento del file robots.txt
Prima di tutto il file robots.txt va creato, salvato e caricato nella root del sito. Successivamente, accertata la sua presenza all’indirizzo nomesito.it/robots.txt, è possibile servirsi degli strumenti di controllo disponibili su internet. Io ne indico solo due:
– lo strumento di controllo di Google: https://www.google.com/webmasters/tools/siteoverview?hl=it
– lo strumento di controllo di Yandex (molte cose si capiscono anche senza la conoscenza del russo): http://webmaster.yandex.ru/robots.xml
6. È meglio un robots.txt generico o dedicato?
Le persone esperte hanno osservato che i file robots.txt dedicati (cioè con i «User-agent: Googlebot», «User-agent: Yandex» etc anche quando i loro contenuti sono identici) funzionano meglio del solo generico «User-agent: *». Non si conosce una spiegazione razionale di questo fenomeno. Probabilmente, anche ai grossi siti piace essere chiamati per nome.
7. La direttiva Disallow vista in dettaglio
Disallow è la direttiva più frequentemente utilizzata nei file robots.txt. Essa può essere utilizzata per il diniego della indicizzazione dei siti interi o delle loro parti singole (che altrimenti sarebbero indicizzati per default, senza la necessita della direttiva Allow).
Abbiamo già visto che il diniego della indicizzazione generica dell’intero sito va fatta nel seguente modo:
User-agent: * Disallow: /
Nei parametri della Direttiva Disallow è ammissibile l’uso dei simboli speciali «*» e «$». Vediamoli molto brevemente:
* – il simbolo indica un insieme illimitato di simboli di ogni genere. Così, per esempio, al parametro /page* corrispondono /page, /page1, /page-ciao-mario, /page-che-ne-so etc. Allo stesso tempo è importante ricordare che non è necessario mettere il simbolo * alla fine di ogni parametro, ma solo quando a un inizio comune a più parametri possibili seguono, appunto, le diverse varianti. Mentre queste due direttive saranno interpretate allo stesso modo:
User-agent: Googlebot Disallow: /page User-agent: Googlebot Disallow: /page*
$ – il simbolo indica la precisa corrispondenza del parametro alla pagina che si vuole escludere dai risultati di ricerca. Se, per esempio, volessimo negare l’indicizzazione della pagina /page ma non delle pagine /page, /page1, /page-ciao-mario, /page-che-ne-so etc la direttiva dovrà essere fatta in questo modo:
User-agent: Googlebot Disallow: /page$
8. La direttiva Allow vista in dettaglio
Allow è la direttiva permissiva, l’opposto della appena vista direttiva Disallow. La direttiva Allow funziona secondo la stessa logica e sintassi della Disallow.
Facciamo solo un esempio pratico. Immaginiamo di voler vietare l’indicizzazione di tutto il sito tranne quelle sue pagine i cui indirizzi iniziano con /page.
Ecco la direttiva:
User-agent: * Disallow: / Allow: /page
9. Le direttive Allow e Disallow con i parametri di valore vuoto
La direttiva Allow senza alcun parametro vieta l’indicizzazione dell’intero sito:
User-agent: * Allow:
Lo stesso fa un esempio che abbiamo già visto in precedenza:
User-agent: * Disallow: /
La direttiva Disallow senza alcun parametro non vieta alcunché e quindi autorizza l’indicizzazione dell’intero sito:
User-agent: * Disallow:
Lo stesso fa un esempio che abbiamo visto in precedenza:
User-agent: * Allow: /
10. La direttiva sitemap
Le due scuole di pensiero esistenti cercano di imporci due opinioni opposte sulla opportunità o meno di far indicizzare la mappa del sito. Il mio compito non è quello di appoggiare una delle due. Mi limito a dire che per negare l’indicizzazione dovete utilizzare la direttiva Disallow, mentre per farla indicizzare utilizzate la direttiva apposita Sitemap:
User-agent: * Disallow: /page Sitemap: http://www.mysite.ru/sitemap.xml
11. La direttiva Clean-param
La direttiva Clean-param permette di escludere dalla indicizzazione le pagine con i parametri dinamici. Tali pagine potrebbero avere gli URL diversi tra loro ma i contenuti identici. Pensate agli articoli raggruppati per tag, categorie e date: è abbastanza facile che su più pagine compaiano gli stessi testi. Quindi la stessa pagina potrebbe essere disponibile a più indirizzi. Molti di quei indirizzi sono dinamici e noi li escludiamo dalla indicizzazione con l’aiuto della direttiva Clean-param.
La sintassi della direttiva Clean-param è:
Clean-param: parm1[&parm2&parm3&parm4&..&parmn] [Percorso]
Immaginiamo di avere una pagina con l’URL www.nomesito.it/page.html?&parm1=1&parm2=2&parm3=3
Quindi nel nostro file robots.txt la direttiva Clean-param avrà questo parametro:
Clean-param: parm1&parm2&parm3 /page.html # solo per page.html
Ma, se serve, possiamo fare anche così:
Clean-param: parm1&parm2&parm3 / # per tutte le pagine
12. La direttiva Crawl-delay
La direttiva Crawl-delay permette di ridurre il carico sul nostro server qualora i robot «visitassero» troppo spesso il nostro server. Tale direttiva è utile prevalentemente nel caso dei siti con una alta quantità delle pagine.
Quindi ipotizziamo di voler chiedere ai «motori» di ricerca di scaricare le pagine del nostro sito non più spesso di una volta in – per esempio – tre secondi. La direttiva sarà fatta così:
User-agent: Googlebot Disallow: /page Crawl-delay: 3
Ovviamente il numero dei secondi può essere cambiato.
13. I commenti nel file robots.txt
Nel file robots.txt i commenti devono iniziare con il simbolo «#». Tutto ciò che è scritto da quel simbolo fino al termine della riga è considerato un commento e viene dunque ignorato dai robot di ricerca.
Vediamo un esempio pratico dei possibili modi corretti di scrivere i commenti nel file robots.txt:
User-agent: * # Il commento puo' iniziare all'inizio di una riga nuova Disallow: /page # oppure essere la continuazione della riga con una direttiva # I robot # ignorano # i commenti
14. L’esempio di un file robots.txt completo
Un esempio di un file robots.txt completo è impossibile da fare. Infatti, il file deve rispecchiare le necessità concrete dell’amministratore del sito e corrispondere alla organizzazione di quest’ultimo.
Spero che questo paragrafo vi sia d’aiuto nella creazione di un robots.txt ottimale.