Skip to content

1. Introduzione: Cos’è e a Cosa Serve il File robots.txt

Il file robots.txt è una componente fondamentale, sebbene spesso sottovalutata, della strategia tecnica SEO di qualsiasi sito web. Si tratta di un semplice file di testo (.txt) che risiede nella directory principale (root) di un sito e funge da primo punto di contatto per i web crawler (noti anche come robot o spider), come Googlebot, Bingbot e altri.1

Lo scopo primario del robots.txt, definito dal Robot Exclusion Protocol (REP), non è quello di impedire l’indicizzazione dei contenuti nei motori di ricerca, un equivoco comune. Piuttosto, la sua funzione principale è quella di gestire il traffico dei crawler sul sito, fornendo istruzioni su quali aree del sito possono o non possono essere scansionate.1 Questo aiuta a prevenire il sovraccarico del server dovuto a richieste eccessive e a guidare i bot verso i contenuti più importanti, ottimizzando così il cosiddetto “crawl budget”.

È cruciale comprendere fin da subito che robots.txt non è un meccanismo per garantire la privacy o per escludere pagine dall’indice di Google. Le pagine bloccate tramite robots.txt potrebbero comunque essere indicizzate se linkate da altre fonti sul web. Per il controllo dell’indicizzazione, si devono usare metodi più robusti come il meta tag noindex o l’header HTTP X-Robots-Tag, oppure la protezione tramite password per contenuti sensibili.1

Questa guida aggiornata esplorerà in dettaglio la sintassi, le direttive, le best practice e gli errori comuni relativi al file robots.txt, basandosi sulla documentazione ufficiale e sulle pratiche consigliate dai principali motori di ricerca come Google.

2. Anatomia del File robots.txt: Posizione e Accessibilità

Come accennato, il file robots.txt deve trovarsi obbligatoriamente nella directory principale (root) del dominio o sottodominio a cui si applica. Ad esempio, per il sito www.example.com, il file deve essere accessibile all’URL https://www.example.com/robots.txt.1 È fondamentale che il nome del file sia esattamente robots.txt, tutto in minuscolo, poiché il sistema è case-sensitive.1 Ogni sottodominio (es. blog.example.com, shop.example.com) necessita del proprio file robots.txt separato, se si desidera applicare regole specifiche.1

Un aspetto importante da considerare è che il file robots.txt è pubblicamente accessibile. Chiunque può visualizzarlo semplicemente digitando l’URL corrispondente nel browser. Questo significa che non dovrebbe mai essere utilizzato per nascondere percorsi di directory o nomi di file che contengono informazioni sensibili o private.1 Le direttive contenute nel file sono suggerimenti per i crawler; i crawler “beneducati” (come quelli dei principali motori di ricerca) generalmente rispettano queste istruzioni, ma i bot malevoli o meno sofisticati potrebbero ignorarle completamente.1 Pertanto, affidarsi a robots.txt per la sicurezza è un errore.

3. L’Importanza Strategica del robots.txt per la SEO

Sebbene non controlli direttamente l’indicizzazione, un file robots.txt ben configurato gioca un ruolo strategico cruciale per l’ottimizzazione per i motori di ricerca (SEO) per diversi motivi:

  • Gestione del Crawl Budget: I motori di ricerca assegnano un “budget di scansione” (crawl budget) a ciascun sito, che rappresenta approssimativamente quante pagine il crawler può e vuole scansionare. Bloccando l’accesso a sezioni non importanti, duplicate, o a basso valore (come pagine di login, risultati di ricerca interni, carrelli abbandonati, versioni di staging), si evita che i crawler sprechino risorse su queste aree. Questo permette loro di concentrarsi sulla scansione e l’indicizzazione dei contenuti più rilevanti e di valore del sito.1
  • Prevenzione del Sovraccarico del Server: Un sito molto grande o con risorse server limitate potrebbe subire rallentamenti o interruzioni se i crawler effettuano troppe richieste simultanee. Il robots.txt può aiutare a mitigare questo rischio, limitando l’accesso a sezioni specifiche o, in passato, utilizzando la direttiva Crawl-delay (ora ignorata da Google).1
  • Guida alla Scansione Efficiente: Indicando chiaramente quali parti del sito non devono essere esplorate, si aiuta indirettamente i crawler a scoprire più rapidamente i contenuti importanti e le nuove pagine aggiunte, migliorando la freschezza dell’indice.
  • Prevenzione dell’Indicizzazione di Risorse Indesiderate (Indirettamente): Sebbene non sia il metodo primario, impedire la scansione di una pagina tramite robots.txt riduce la probabilità che venga indicizzata, specialmente se la pagina non ha link esterni che puntano ad essa. Tuttavia, per una de-indicizzazione sicura, noindex è la scelta corretta.1
  • Controllo della Scansione di Tipi di File Specifici: È possibile impedire la scansione di file multimediali (immagini, video, PDF) o altri tipi di file che non si desidera vengano processati dai crawler.1

In sintesi, un robots.txt ottimizzato contribuisce alla salute tecnica del sito, all’efficienza della scansione e, di conseguenza, supporta le performance SEO complessive.

4. Come Funziona il Processo di Scansione con robots.txt

Il processo attraverso cui i web crawler interagiscono con il file robots.txt è standardizzato:

  1. Richiesta del File: Prima di scansionare qualsiasi URL su un host (dominio o sottodominio), un crawler “educato” tenta di scaricare il file robots.txt situato alla radice di quell’host (es. https://www.example.com/robots.txt).
  2. Verifica Esistenza e Accessibilità:
    • Se il file esiste e viene restituito con uno status code HTTP 200 OK, il crawler lo analizza.
    • Se il file non esiste (status 404 Not Found o altri 4xx), il crawler assume che non ci siano restrizioni e procede a scansionare l’intero sito.1
    • Se si verifica un errore del server (status 5xx) durante il tentativo di accesso al robots.txt, il crawler solitamente interrompe la scansione del sito per evitare di causare ulteriori problemi, ritentando in seguito. Google, in particolare, tende a non scansionare il sito finché non riesce ad accedere al robots.txt o a ricevere un 4xx.
  3. Analisi delle Direttive: Se il file viene letto con successo, il crawler cerca un blocco di direttive che corrisponda al proprio User-agent (il nome identificativo del bot, es. Googlebot). Se trova un blocco specifico, segue le regole (Allow/Disallow) contenute in quel blocco.
  4. Ricerca del Blocco Generico (*): Se non trova un blocco specifico per il proprio User-agent, cerca il blocco generico identificato da User-agent: *. Se presente, segue le regole di questo blocco.1
  5. Comportamento Predefinito: Se non viene trovato né un blocco specifico né un blocco generico, o se il file è vuoto, il crawler assume che tutto il contenuto sia scansionabile.1
  6. Applicazione delle Regole: Il crawler confronta l’URL che intende visitare con le regole Disallow e Allow applicabili. La regola più specifica (basata sulla lunghezza del percorso) ha la precedenza.
  7. Caching: I motori di ricerca come Google mettono in cache il contenuto del file robots.txt, solitamente aggiornandolo almeno una volta al giorno. Modifiche apportate al file potrebbero quindi non avere effetto immediato. È possibile richiedere un aggiornamento più rapido tramite Google Search Console.1

5. Sintassi e Direttive Fondamentali del File robots.txt

La corretta sintassi è essenziale per garantire che i crawler interpretino correttamente le istruzioni. Il file robots.txt segue regole precise:

  • Formato File: Deve essere un file di testo semplice, codificato in UTF-8. È importante assicurarsi che il file venga salvato senza un Byte Order Mark (BOM), poiché alcuni crawler, incluso Googlebot, potrebbero avere problemi a interpretare un file che inizia con un BOM.
  • Struttura: Il file è composto da uno o più “gruppi” di record. Ogni gruppo inizia con una o più righe User-agent e contiene una o più direttive Disallow o Allow. I gruppi sono separati da righe vuote.
  • Direttive per Riga: Ogni direttiva (es. User-agent:, Disallow:, Allow:, Sitemap:) deve stare su una riga separata.
  • Commenti: È possibile aggiungere commenti utilizzando il carattere cancelletto (#). Tutto ciò che segue # sulla stessa riga viene ignorato dai crawler. Utile per spiegare le regole. # Questa è una riga di commento ignorata dai crawler User-agent: * # Applica le regole seguenti a tutti i bot Disallow: /private/ # Blocca questa directory
  • Posizione: Come già detto, deve trovarsi nella root del dominio/sottodominio e chiamarsi robots.txt (minuscolo).1
  • Case Sensitivity: Il nome del file (robots.txt) e i nomi delle direttive (User-agent, Disallow, etc.) non sono case-sensitive, ma i valori dei percorsi nelle direttive Allow e Disallow sono case-sensitive. Ad esempio, /Pagina.html è diverso da /pagina.html.

Direttive Principali:

  • User-agent:
    • Specifica a quale crawler si applicano le regole del gruppo che segue. 1
    • User-agent: * si applica a tutti i crawler che non hanno un blocco specifico. È buona norma includere sempre un blocco generico.
    • User-agent: Googlebot si applica specificamente al crawler principale di Google.
    • User-agent: Googlebot-Image si applica al crawler di Google Immagini.
    • È possibile specificare più User-agent all’inizio di un gruppo se le regole sono identiche per tutti.
  • Disallow:
    • Specifica un percorso (relativo alla root del dominio) che il User-agent indicato non dovrebbe scansionare. 1
    • Disallow: / blocca l’intero sito.
    • Disallow: /private/ blocca la directory /private/ e tutto il suo contenuto.
    • Disallow: (con valore vuoto) non blocca nulla, permettendo la scansione completa (utile in un blocco specifico se il blocco generico * è restrittivo).
  • Allow:
    • Specifica un percorso che il User-agent indicato può scansionare, anche se si trova all’interno di una directory bloccata da una regola Disallow. 1
    • Questa direttiva è parte delle estensioni introdotte da Google e supportata anche da altri motori principali.
    • È particolarmente utile per consentire l’accesso a file specifici all’interno di una directory altrimenti bloccata. Esempio: User-agent: * Disallow: /private/ Allow: /private/public-file.html
  • Sitemap:
    • Indica la posizione di una sitemap XML. 1
    • Questa direttiva non è legata a un User-agent specifico e può essere posizionata ovunque nel file (convenzionalmente alla fine).
    • È possibile specificare più sitemap ripetendo la direttiva: Sitemap: https://www.example.com/sitemap1.xml Sitemap: https://www.example.com/sitemap2.xml
    • Supportata da Google, Bing, Yahoo, Ask.
  • Crawl-delay:
    • Direttiva storica usata per specificare un ritardo minimo (in secondi) tra le richieste di un crawler. 1
    • Importante: Googlebot non supporta più questa direttiva. Google regola automaticamente la velocità di scansione in base alla risposta del server. Altri crawler potrebbero ancora rispettarla. L’uso è generalmente sconsigliato.

6. Pattern Matching e Ordine di Precedenza

Per rendere le regole più flessibili, robots.txt supporta alcuni caratteri speciali per il pattern matching, principalmente interpretati da Google e Bing:

  • * (Asterisco): Funziona come wildcard e rappresenta qualsiasi sequenza di caratteri (anche zero caratteri). 1
    • Disallow: /private/*.pdf blocca tutti i file PDF nella directory /private/.
    • Disallow: /*?sessionid= blocca tutti gli URL che contengono il parametro sessionid.
  • $ (Dollaro): Indica la fine dell’URL. Utile per specificare regole che si applicano solo a un determinato tipo di file o a URL che terminano esattamente in un certo modo, senza bloccare URL che iniziano con lo stesso percorso ma continuano (es. directory con nomi simili). 1
    • Disallow: /*.pdf$ blocca tutti gli URL che terminano esattamente con .pdf. Non bloccherebbe /document.pdf/pagina-extra.
    • Disallow: /private/$ bloccherebbe l’accesso alla pagina della directory /private/ ma non ai file o sottodirectory al suo interno (es. /private/file.html).

Ordine di Precedenza delle Regole (Google)

Quando più regole potrebbero applicarsi a un URL specifico, Google utilizza un sistema basato sulla specificità del percorso per determinare quale regola ha la precedenza:

  1. Corrispondenza User-Agent: Il crawler cerca prima il blocco User-agent più specifico che corrisponde al suo nome. Se non lo trova, usa il blocco User-agent: *.
  2. Precedenza Basata sulla Lunghezza del Percorso: All’interno del blocco User-agent selezionato, Google confronta l’URL con tutte le regole Allow e Disallow. La regola con il percorso più lungo (più specifico) vince.
  3. Prevalenza di Allow in caso di Parità: Se una regola Allow e una regola Disallow hanno la stessa lunghezza di percorso e corrispondono entrambe all’URL, la direttiva Allow ha la precedenza.

Esempio:

User-agent: Googlebot
Disallow: /folder/
Allow: /folder/page.html
  • URL: /folder/page.html
    • Corrisponde a Disallow: /folder/ (lunghezza percorso: 8)
    • Corrisponde a Allow: /folder/page.html (lunghezza percorso: 18)
    • Vince Allow perché il percorso è più lungo (più specifico). L’URL è scansionabile.

Esempio 2:

User-agent: Googlebot
Disallow: /file.php$
Allow: /file.php
  • URL: /file.php
    • Corrisponde a Disallow: /file.php$ (lunghezza percorso: 10)
    • Corrisponde a Allow: /file.php (lunghezza percorso: 9)
    • Sebbene Allow sia presente, la regola Disallow con $ è più specifica perché corrisponde esattamente alla fine dell’URL. In questo caso, la specificità data dal $ può essere considerata equivalente a una lunghezza maggiore in termini pratici di matching. L’URL è bloccato. (Nota: l’interpretazione esatta della specificità con $ può variare leggermente, testare è sempre consigliato).

Esempio 3 (Parità di Lunghezza):

User-agent: Googlebot
Disallow: /page
Allow: /page
  • URL: /page
    • Corrisponde a Disallow: /page (lunghezza percorso: 5)
    • Corrisponde a Allow: /page (lunghezza percorso: 5)
    • Le lunghezze sono uguali. Vince Allow. L’URL è scansionabile.

Comprendere questa logica è fondamentale per evitare di bloccare o permettere accidentalmente l’accesso a contenuti.

7. Esempi Pratici di File robots.txt

Di seguito sono riportati alcuni esempi comuni e avanzati di configurazioni robots.txt.

Esempi Base:

  • Permettere la scansione completa a tutti i crawler: Code snippetUser-agent: * Disallow: (Nota: Un file robots.txt vuoto o assente ha lo stesso effetto)
  • Bloccare la scansione completa a tutti i crawler: Code snippetUser-agent: * Disallow: / 1
  • Bloccare una specifica directory e il suo contenuto a tutti i crawler: Code snippetUser-agent: * Disallow: /private/ Disallow: /temp/ Disallow: /cgi-bin/ 1
  • Bloccare un singolo file a tutti i crawler: Code snippetUser-agent: * Disallow: /documento-riservato.html 1
  • Permettere la scansione solo a Googlebot, bloccando tutti gli altri: Code snippetUser-agent: Googlebot Disallow: User-agent: * Disallow: / (L’ordine qui è importante: prima la regola specifica, poi quella generica) 1
  • Bloccare un crawler specifico (es. un bot “cattivo” o non necessario): Code snippetUser-agent: BadBot Disallow: / User-agent: * Disallow: 1

Esempi Avanzati:

  • Bloccare specifici tipi di file (es. PDF e DOCX) a tutti i crawler: Code snippetUser-agent: * Disallow: /*.pdf$ Disallow: /*.docx$ 1
  • Bloccare una directory ma permettere l’accesso a un file specifico al suo interno (per Googlebot): Code snippetUser-agent: Googlebot Disallow: /private-area/ Allow: /private-area/public-info.pdf
  • Bloccare URL con parametri specifici (es. ID di sessione): Code snippetUser-agent: * Disallow: /*?sessionid= Disallow: /*&utm_source= (Blocca qualsiasi URL contenente ?sessionid= o &utm_source=. Attenzione: questo può bloccare anche URL utili se i parametri sono usati legittimamente per contenuti unici)
  • Bloccare Google Immagini dalla scansione di tutte le immagini del sito: Code snippetUser-agent: Googlebot-Image Disallow: / 1
  • Bloccare Google Immagini dalla scansione di un’immagine specifica: Code snippetUser-agent: Googlebot-Image Disallow: /images/logo-vecchio.png 1
  • Permettere la scansione ad AdSense per la verifica del sito, anche se il resto è bloccato: Code snippetUser-agent: Mediapartners-Google Allow: / User-agent: * Disallow: / 1ATTENZIONE: Bloccare l’intero sito con Disallow: / impedirà a Google di scansionare e indicizzare le pagine, il che è generalmente dannoso per la SEO. Questo esempio è valido solo in scenari molto specifici e temporanei, o se si utilizza AdSense su un sito che non si desidera indicizzare. Per la maggior parte dei siti, è necessario permettere la scansione delle pagine dove appaiono gli annunci.
  • Includere più sitemap: Code snippetUser-agent: * Disallow: /admin/ Disallow: /cart/ Sitemap: https://www.example.com/sitemap-pages.xml Sitemap: https://www.example.com/sitemap-posts.xml Sitemap: https://www.example.com/sitemap-images.xml
  • Bloccare specifici tipi di file solo a Googlebot usando $ per precisione: Code snippetUser-agent: Googlebot Disallow: /*.xls$ Disallow: /*.docx$ 1

8. Errori Comuni nel File robots.txt e Come Evitarli

Errori nel file robots.txt possono avere conseguenze negative significative sulla visibilità del sito nei motori di ricerca. Ecco alcuni degli errori più comuni e come prevenirli:

  • Errori di Sintassi Comuni:
    • Nome File Errato: Usare Robot.txt, robots.TXT o altri nomi diversi da robots.txt (tutto minuscolo) impedirà ai crawler di trovarlo.1
    • Posizionamento Errato: Il file deve trovarsi nella directory root, non in sottodirectory (es. /blog/robots.txt).1
    • Errori di Battitura nelle Direttive: Scrivere Disalow: invece di Disallow: o Useragent: invece di User-agent: invaliderà la regola.
    • Mancanza del / Iniziale nei Percorsi: I percorsi devono iniziare con / per indicare la root del sito. Disallow: private/ è errato; corretto è Disallow: /private/.
    • Una Sola Direttiva per Riga: Combinare direttive sulla stessa riga non è valido (es. Disallow: /dir1/ Disallow: /dir2/).
  • Usare robots.txt per Nascondere Contenuti o Prevenire l’Indicizzazione:
    • Questo è uno degli equivoci più diffusi. Bloccare un URL in robots.txt non garantisce che non venga indicizzato. Se Google trova link verso quella pagina da altre parti del web, potrebbe comunque indicizzare l’URL, pur senza scansionarne il contenuto (mostrando spesso un risultato con “Nessuna informazione disponibile per questa pagina.”). Per impedire l’indicizzazione in modo affidabile, usare il meta tag robots con valore noindex o l’header HTTP X-Robots-Tag: noindex. Per contenuti sensibili, usare l’autenticazione (password protection).1
  • Bloccare Accidentalmente Risorse Critiche (CSS/JS):
    • Bloccare file CSS o JavaScript necessari per il rendering corretto della pagina impedisce a Googlebot di “vedere” la pagina come la vedrebbe un utente. Questo può portare a una valutazione errata della pagina, problemi di usabilità mobile e potenziali penalizzazioni o ranking inferiori. È fondamentale assicurarsi che tutte le risorse necessarie per il rendering siano accessibili ai crawler.1 Testare sempre le modifiche con lo Strumento di test del file robots.txt di Google Search Console e la funzione “Visualizza come Google”.
  • Problemi di Maiuscole/Minuscole (Case Sensitivity):
    • Ricordare che i percorsi nelle direttive Allow/Disallow sono case-sensitive. Se la struttura URL del sito usa lettere maiuscole (es. /Prodotti/ScarpaModelloX.html), le regole in robots.txt devono rispettare esattamente quelle maiuscole/minuscole. Disallow: /prodotti/ non bloccherà /Prodotti/.1
  • Ordine Errato delle Direttive o Comprensione della Specificità:
    • Non comprendere come viene determinata la precedenza (specificità del percorso, Allow vs Disallow) può portare a bloccare contenuti che si volevano accessibili o viceversa. Testare le regole su URL specifici è cruciale.
  • Byte Order Mark (BOM) in UTF-8:
    • Alcuni editor di testo, specialmente su Windows, possono aggiungere un carattere invisibile (BOM) all’inizio dei file UTF-8. Googlebot potrebbe avere problemi a interpretare un robots.txt che inizia con un BOM, potenzialmente ignorando tutte le direttive. Salvare sempre il file robots.txt con codifica UTF-8 senza BOM.

Come Evitare Errori:

  1. Validare: Usare lo Strumento di test del file robots.txt in Google Search Console per verificare la sintassi e testare le regole su URL specifici prima di caricare il file sul server.
  2. Testare: Dopo aver caricato o modificato il file, usare la funzione “Ispeziona URL” (precedentemente “Visualizza come Google”) in Search Console per assicurarsi che Googlebot possa accedere e renderizzare correttamente le pagine importanti.
  3. Mantenere Semplice: Evitare regole eccessivamente complesse se non strettamente necessario.
  4. Revisionare Periodicamente: Controllare il file robots.txt regolarmente, specialmente dopo modifiche alla struttura del sito o migrazioni.

9. Conclusione: Il Ruolo Strategico di robots.txt nella SEO Moderna

Il file robots.txt rimane uno strumento essenziale nell’arsenale della SEO tecnica. Sebbene la sua funzione primaria sia la gestione della scansione e non il controllo diretto dell’indicizzazione, il suo impatto sulle performance complessive di un sito web non può essere sottovalutato.

Riepilogo dei Punti Chiave:

  • Gestione del Crawl, Non dell’Indice: robots.txt dice ai crawler dove possono e non possono andare, ma non impedisce l’indicizzazione di URL scoperti tramite link esterni. Per il controllo dell’indice, si usano noindex o X-Robots-Tag.1
  • Sintassi e Posizione Cruciali: Errori nel nome (robots.txt minuscolo), nella posizione (root directory) o nella sintassi delle direttive possono rendere il file inefficace o causare problemi imprevisti.1
  • Interpretazione Specifica (Google): Comprendere le estensioni di Google (Allow) e l’ordine di precedenza basato sulla specificità del percorso è fondamentale per creare regole efficaci.1
  • Non Bloccare Risorse Critiche: Impedire l’accesso a CSS e JS essenziali può danneggiare la capacità di Google di comprendere e valutare correttamente le pagine.1
  • Testare Sempre: Utilizzare gli strumenti forniti da Google Search Console è indispensabile per validare la sintassi e verificare l’impatto delle regole prima e dopo l’implementazione.1

L’Importanza Strategica: Un file robots.txt correttamente configurato e gestito attivamente contribuisce direttamente a:

  • Salute Tecnica del Sito: Previene il sovraccarico del server causato da scansioni eccessive.1
  • Efficienza della Scansione: Ottimizza l’uso del crawl budget, assicurando che i crawler dedichino tempo alle pagine più importanti.2
  • Scoperta dei Contenuti: Guida i crawler verso i contenuti di valore, facilitandone la scoperta e l’aggiornamento nell’indice.
  • Fondamenta SEO Solide: Costituisce una base tecnica necessaria per una strategia SEO di successo a lungo termine.

In conclusione, dedicare tempo alla creazione, alla verifica e alla manutenzione di un file robots.txt ottimizzato non è un compito secondario, ma un investimento strategico per garantire che i motori di ricerca possano interagire in modo efficiente ed efficace con il proprio sito web. Si raccomanda una verifica e un’eventuale ottimizzazione periodica del file robots.txt come parte integrante delle attività di manutenzione SEO.

Fonti

Autore

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Ultimi articoli aggiornati

Richiedi un preventivo SEO e Google Ads

Porta il tuo sito web al livello successivo con l’esperienza di EVE Milano. La nostra agenzia di Search Marketing ha ricevuto oltre 1155 richieste di preventivo, un segnale chiaro della fiducia che imprenditori e manager, come te, ripongono nella nostra specializzazione tecnica e verticale nella SEO e PPC. Se la tua organizzazione cerca competenze specifiche per emergere nei risultati di Google, noi siamo pronti a fornire quel valore aggiunto. Richiedi un preventivo ora e scopri la differenza tra noi e gli altri.
Richiedi un preventivo

Vuoi ricevere un avviso al mese con le nuove guide pubblicate?

Iscriviti alla newsletter!

Invia una richiesta a EVE Milano