A cosa serve il Robots.txt e come ottimizzarlo
Cosa troverai in questo articolo. Il file Robots.txt è un documento che viene usato per regolare l’accesso dei crawler dei diversi motori ricerca a un dato sito web. Compilabile anche da chi non abbia competenze di programmazione, permette di bloccare la scansione di particolari pagine o cartelle all’interno di un dominio o sottodominio per ragioni che vanno dall’ottimizzazione del crawl budget e delle risorse del server, alla tutela della privacy degli utenti per finire con ragioni squisitamente SEO. La sintassi del Robots.txt prevede poche e semplici direttive che devono però essere combinate con accortezza in modo da evitare di fornire indicazioni conflittuali al motore di ricerca, nascondendogli aree importanti o, per converso, rendergliene visibili altre che non apportano alcun beneficio al posizionamento organico del sito.
Il file Robots.txt può rappresentare un’area strategica di intervento all’interno di un progetto SEO. Quanto ne sapete su questo documento, sulla sua sintassi, sugli errori da evitare e le ottimizzazioni possibili? Leggete il nostro articolo per scoprirlo!
Che cos’è, a cosa serve e dove si trova il file Robots.txt
Il file Robots.txt è un semplice documento di testo in grado di indicare ai crawler dei motori di ricerca (non solamente Google!) i percorsi che essi possono o non possono seguire all’interno di un sito web. La sua funzione primaria è quella di nascondere alla radice all’algoritmo del motore di ricerca determinati contenuti; nel caso, poi, di motori diversi da Google, il Robots.txt può anche indicare il modo in cui i contenuti accessibili debbano essere scansionati.
In quali casi potreste voler bloccare la scansione di un contenuto da parte degli spider? Ecco gli scenari più comuni:
- Contenuti privati o sensibili che non debbano essere indicizzati per proteggere la privacy degli utenti;
- Pagine duplicate, con thin content o comunque a basso valore SEO la cui scansione non apporterebbe alcun vantaggio dal punto di vista SEO al sito o, anzi, potrebbe comportarne la penalizzazione; rientrano in questa macrocategoria anche le pagine di servizio, ad esempio quelle di login, il carrello degli acquisti o la pagina di conferma ordine;
- Aree di staging con pagine ancora in fase di sviluppo o aggiornamento, non pronte per essere visualizzate dai motori di ricerca;
- Pagine create per eventi o promozioni temporanee con limitata rilevanza nel tempo o di pubblico o ancora non pertinenti rispetto alla tematica del sito nel suo complesso, dunque non utili ai fini SEO.
Talvolta può anche essere utile inserire nel Robots.txt blocchi a specifiche aree del sito per ridurre il carico sul server, soprattutto se si gestisce un sito di grandi dimensioni, con molte pagine. Il Robots.txt viene in ogni caso caricato nella root (la cartella principale) di un dominio o sottodominio web e da questo momento in poi è liberamente accessibile per chiunque, utenti e spider dei motori di ricerca, dall’indirizzo dominio.xyz/robots.txt.
Notate bene che non è sempre essenziale avere un file Robots.txt, specialmente se si gestisce un sito di poche pagine. Tuttavia, anche in questa specifica istanza, è facile immaginare il concretizzarsi di almeno uno degli scenari descritti più sopra, come la necessità di impedire l’accesso alle aree riservate o di staging, diminuire il sovraccarico per il server, ottimizzare il crawl budget e così via.
Gli elementi principali del file Robots.txt
Oltre al tipico aspetto basic di un qualsiasi documento in formato .txt, il Robots.txt presenta anche una grammatica piuttosto semplice. Il meccanismo di base con cui si assegnano ai bot determinate regole da seguire è quello di indicare il loro user-agent seguito dalle direttive necessarie. Lo user-agent è il nome con cui lo spider del motore di ricerca si “riconosce” all’interno del file Robots.txt; la grafia è importante dal momento che tutte le indicazioni inserite all’interno del documento sono case-sensitive. Ecco un elenco dei motori di ricerca principali con i relativi user-agent così come possono essere inseriti in un file robots.txt:
- Google: Googlebot
- Bing: bingbot
- Yahoo: Slurp
- Baidu: Baiduspider
- Yandex: Yandex
- DuckDuckGo: DuckDuckBot
- com: Ask Jeeves
Se si desidera invece comunicare la stessa direttiva a tutti gli spider, occorre sostituire il nome dello user-agent con un asterisco, che si comporta quindi come una wildcard, secondo questa grammatica:
- User-agent: *
In presenza sia dell’indicazione con asterisco sia di un’indicazione specifica per un singolo motore di ricerca, il motore di ricerca in questione seguirà la direttiva che lo riguarda più accuratamente. Vale a dire che in presenza di un Robots.txt del tipo che segue:
User-agent: *
Disallow: /
User-agent: Googlebot
Allow: /
dove il simbolo “/” indica la totalità del sito web, Googlebot scansionerà liberamente il dominio seguendo la direttiva “Allow” che lo riguarda individualmente, mentre tutti gli altri motori di ricerca risulteranno bloccati grazie al “Disallow” precedente, esteso invece a tutti gli user-agent attraverso l’uso del simbolo “*”. Quando si scrivono le direttive Disallow e Allow è importante prestare molta attenzione all’esattezza delle informazioni che contengono per evitare conflitti generati, ad esempio, da uno slash finale di troppo o di meno.
Vale la pena sottolineare a tal proposito che Google e Bing sovrascrivono sempre la direttiva più breve con quella più lunga: nell’esempio precedente, la versione con slash finale andrebbe dunque a prevaricare quella priva di slash. Altri motori di ricerca si comportano tuttavia in modo differente, ad esempio privilegiando la prima direttiva che compare nel Robots.txt scorrendolo dall’alto verso il basso; di conseguenza è importante verificare sempre la correttezza e coerenza delle informazioni che vi si inseriscono affinché funzionino al meglio per tutti i search engine.
Oltre alle due direttive Allow e Disallow, che possono essere usate rispettivamente, anche in combinazione fra loro, per consentire o bloccare l’accesso di un crawler a un intero dominio (/), cartella (/nome-cartella/) o pagina (/nome-cartella/nome-pagina), è possibile e consigliabile inserire all’interno del Robots.txt anche la direttiva Sitemap:.
Attraverso questa direttiva, si segnala al motore di ricerca l’ubicazione della/e Sitemap in formato XML del sito: questi elenchi includono tutte le pagine, fra quelle presenti su un sito web, che si desidera far scansionare e indicizzare al motore di ricerca e forniscono quindi un’indicazione rapida e chiara agli spider sui percorsi da seguire e l’architettura generale delle informazioni.
Se avete già sottoposto le vostre Sitemap.xml a Google tramite Search Console, inserire la direttiva Sitemap: all’interno del Robots.txt potrebbe essere superfluo nell’ottica di Googlebot, ma ciò non si applica agli altri motori di ricerca che la supportano (Bing, Ask, Yahoo). In ogni caso, questa direttiva non deve essere ripetuta per tutti gli user-agent contemplati dal vostro Robots.txt, ma può essere dichiarata una sola volta all’interno del file, preferibilmente all’inizio o alla fine.
Fra le direttive che invece NON sono supportate da Google menzioniamo:
- Crawl-delay: precedentemente utilizzato per specificare al motore di ricerca un lasso di tempo che doveva trascorrere prima che esso potesse effettuare la scansione del sito/cartella/pagina; questa direttiva è attualmente ancora supportata da Bing e Yandex;
- Noindex: inefficacemente utilizzato per escludere una pagina o un file dai motori di ricerca; a questo scopo è invece necessario ricorrere all’apposito metatag robots o inserire un’indicazione nell’header HTTP della specifica pagina;
- Nofollow: inefficacemente utilizzato per impedire al motore di ricerca di seguire determinati link all’interno del sito; ribadiamo qui le stesse considerazioni fatte al punto precedente.
Le migliori pratiche per l’uso del file Robots.txt
Adesso che abbiamo visto la grammatica di base del file Robots.txt, vi diamo anche qualche consiglio per ottimizzarlo evitando di confondere i bot dei motori di ricerca con indicazioni contrastanti. Ecco uno specchietto riassuntivo con le migliori pratiche per l’uso del file Robots.txt che potete utilizzare come checklist:
- Utilizzare una riga per ciascuna direttiva, andando sempre a capo per scrivere la successiva;
- Usare l’asterisco per raggruppare le regole con una sintassi simile: ad esempio, per bloccare tutti gli URL parametrici in un’ipotetica cartella ‘/prodotti/’, potreste inserire la direttiva Disallow: /prodotti/*?, dove il punto interrogativo è il carattere condiviso fra tutti gli URL parametrici;
- Usare il simbolo “$” per indicare la fine di un URL: in questo modo si consente o blocca l’accesso a tutti i percorsi terminanti con l’espressione che precede il simbolo, ad esempio tutti i file PDF;
- Specificare una sola volta lo stesso user-agent: non succederà niente se non lo farete, ma ha più senso raggruppare sotto un’unica occorrenza del medesimo user-agent tutte le direttive che lo riguardano in modo da rendere la sintassi più pulita e dunque scevra di errori;
- Ricordare di specificare il trailing slash nelle direttive Allow/Disallow, in modo da evitare che la direttiva venga applicata a tutte le cartelle che iniziano con gli stessi caratteri e non alla sola cartella scritta con quei SOLI caratteri (ad es.: /de/ per la versione del vostro sito di abbigliamento in lingua tedesca vs. /denim/, /desigual/, /deha/, cioè alcune delle ipotetiche cartelle del vostro sito che inizino con la sillaba ‘de’).
La regola aurea per la scrittura di un buon file Robots.txt, che metta cioè il più possibile al riparo da errori involontari, è pertanto quella di ridurre al minimo le ridondanze. Un altro consiglio utile è quello di fare ricorso ai commenti, così come si fa normalmente in qualsiasi ambito di programmazione: i commenti possono essere inseriti nel Robots.txt aprendo la relativa riga con il simbolo “#” più spazio.
Mentre i crawler ignoreranno completamente quanto scriverete dopo il cancelletto, il contenuto dei vostri commenti potrà risultare utile ai voi stessi del futuro o ad altri sviluppatori che lavorano sul progetto per comprendere la ratio delle vostre scelte, non sempre immediatamente deducibile da stringate righe di codice. Ricordiamo ancora che il file Robots.txt è accessibile a chiunque, quindi occhio a quello che ci scrivete!
Robots.txt: errori comuni e risoluzione dei problemi
Come abbiamo ripetuto molte volte, compiere sviste nella compilazione del file Robots.txt è più semplice di quanto si creda. A seconda del CMS utilizzato, inoltre, è possibile che la gestione del Robots.txt sia almeno in parte automatizzata: nonostante gli indubbi vantaggi che ciò comporta, si tratta di un meccanismo naturalmente foriero di errori.
Per evitare che una vostra disattenzione o inaccuratezza, così come un aggiornamento automatico del CMS comprometta inavvertitamente la visibilità del vostro sito o parti di esso, è dunque importante tenere monitorato il Robots.txt nel relativo rapporto nell’area Impostazioni di Search Console. Il sistema vi segnalerà e spiegherà qualsiasi problema registrato, fornendovi indicazioni puntuali sulla sua risoluzione. Di seguito vi forniamo un riepilogo dei problemi principali che potrebbe segnalarvi Search Console per quanto riguarda il Robots.txt:
- L’URL sottoposto a Google è bloccato da robots.txt: questo errore si verifica in presenza di due indicazioni contrastanti, ovvero un URL presente in Sitemap (il documento che indica al motore di ricerca gli URL da scansionare) e un Disallow per lo stesso URL nel Robots.txt; il report di Search Console vi indicherà l’esatta direttiva del Robots.txt in conflitto con la vostra Sitemap, permettendovi così di correggerla o eliminarla velocemente;
- L’URL è bloccato da robots.txt: in questo caso, il contenuto segnalato non è ancora indicizzato su Google; se si tratta di una decisione intenzionale, ovvero se non volete che quella pagina venga indicizzata, rimuovete il blocco dal Robots.txt e inserite invece un metatag noindex (o x-robots-header) al suo interno;
- L’URL è indicizzato, ma bloccato da robots.txt: qui si ha l’inverso della situazione precedente, ossia la situazione in cui un contenuto bloccato dal Robots.txt sia ancora indicizzato su Google; la soluzione in questo caso è la medesima di quella suggerita al punto precedente. Se invece il blocco è stato inserito per sbaglio, limitatevi a rimuoverlo.
Riassumendo: le domande più comuni sul Robots.txt
Concludiamo questo approfondimento con una serie di FAQ sul file Robots.txt e la sua corretta gestione. Se non trovate risposta alla vostra domanda, scriveteci: saremo felici di chiarire tutti i vostri dubbi e arricchire ulteriormente questo contenuto grazie alle vostre segnalazioni.
Che programma serve per creare un file Robots.txt?
È sufficiente aprire un nuovo documento del blocco note e scrivere al suo interno le direttive desiderate. Il file dovrà essere salvato con il nome robots.txt e caricato nella root del dominio. Online esistono anche generatori automatici di file Robots.txt che permettono di minimizzare gli errori di sintassi, ma i file così ottenuti devono essere comunque integrati con le personalizzazioni necessarie al proprio specifico sito web.
Che cosa succede se il file Robots.txt contiene errori di sintassi?
Gli errori di sintassi possono portare a risultati imprevisti come il blocco involontario di intere sezioni del sito o l’accesso non desiderato a pagine riservate.
È possibile creare un file Robots.txt su WordPress?
Sì. Con appositi plugin, ad esempio Yoast su WordPress, è possibile creare un file Robots.txt su qualsiasi CMS.
Dove va caricato il file Robots.txt?
Nella cartella principale del dominio o sottodominio al quale si riferisce. A prescindere da come è stato sviluppato il sito, il file si trova sempre all’indirizzo dominio.xyz/robots.txt.
È obbligatorio inserire il Robots.txt su un sito web?
No, ma è fortemente consigliato perché permette di avere maggiore controllo su ciò che i motori di ricerca possono e non possono fare. Inoltre, aiuta a evitare i sovraccarichi del server e le dispersioni di crawl budget.
Il file Robots.txt influisce sul posizionamento SEO del sito?
Sì, un file robots.txt mal configurato può impedire la scansione di pagine importanti, influenzando negativamente il posizionamento SEO. Una configurazione ottimale aiuta a migliorare l’efficienza della scansione e l’indicizzazione delle pagine rilevanti.
È possibile avere più di un file Robots.txt su un sito?
No, è possibile avere un solo file robots.txt per dominio. Tuttavia, è possibile specificare direttive diverse per diversi user-agent all’interno dello stesso file.
Il Robots.txt ha limiti di peso?
Sì, circa 500 kilobyte.
È possibile creare un file Robots.txt senza competenze di programmazione?
Una volta comprese le principali direttive del documento, è possibile crearne uno da zero anche senza possedere competenze di programmazione. È comunque sempre raccomandato verificare la funzionalità del Robots.txt attraverso gli strumenti offerti gratuitamente da Google.
Quali sono i comandi principali da inserire nel Robots.txt?
Si usa la direttiva User-agent per specificare il bot di riferimento e poi Allow:/Disallow: per specificare cartelle e/o domini a cui si vuole garantire/negare l’accesso. La direttiva Sitemap: serve invece per segnalare al crawler l’ubicazione della Sitemap XML del sito e dunque l’elenco completo delle pagine che si desidera vengano scansionate.
Che cosa sono le wildcard e come si usano nel file Robots.txt?
Le wildcard (* e $) sono “jolly” che permettono di specificare pattern più flessibili nel file Robots.txt. Ad esempio, un comando Disallow: /*.pdf$ bloccherà tutti i file PDF il cui nome file termini con l’estensione “.pdf”.
È possibile bloccare un singolo file con il file Robots.txt?
Sì, è possibile bloccare l’accesso a un singolo file specifico. Ad esempio: Disallow: /cartella/pagina.html. Tuttavia, se si desidera evitare che Google indicizzi una pagina specifica è meglio utilizzare il metatag noindex. Invece, è possibile specificare una direttiva Allow relativamente a una specifica pagina come eccezione a una direttiva di Disallow che riguardi la cartella di livello superiore.
Le pagine bloccate tramite Robots.txt possono comunque apparire sul web?
Sì. Sebbene Google eviti di indicizzare le pagine web bloccate attraverso Robots.txt, qualora il contenuto riceva backlink da altri domini web potrebbe comunque comparire fra i risultati del motore di ricerca.
Qual è la differenza tra Disallow e noindex?
Un Disallow nel file robots.txt impedisce ai bot di accedere a specifici URL, mentre la direttiva noindex (che deve essere inserita nei meta tag delle pagine) permette ai bot di accedere alla pagina ma impedisce che venga indicizzata nei risultati di ricerca.
Si può bloccare una pagina con noindex tramite Robots.txt?
Tecnicamente sì, ma si tratta di una prassi deprecata: Google non potrà mai vedere la direttiva noindex se non può scansionare la pagina.
Cosa fare con il Robots.txt se si fa una migrazione?
È necessario caricare il file Robots.txt sul nuovo dominio e assicurarsi che rifletta accuratamente qualsiasi cambiamento intercorso nell’architettura del sito e nelle direttive di scansione che lo riguardano. Inoltre, occorre assicurarsi che l’URL nella direttiva Sitemap punti alla nuova posizione della sitemap XML.
Come si gestiscono i contenuti multilingua nel file Robots.txt?
Ogni versione linguistica del sito può essere gestita con direttive specifiche all’interno dello stesso file Robots.txt, assicurandosi che le sezioni dedicate a ciascuna lingua siano ben definite.
Coming soon:
Il blog di Seed torna fra due settimane con un approfondimento dedicato ai contenuti generati con l’IA e all’approccio di Google nei loro confronti. Tornate a leggerci!