Robots.txt: guida SEO completa con esempi

Il file robots.txt controlla soprattutto quali URL i crawler possono richiedere. Non è lo strumento corretto per impedire a una pagina web di apparire nell’indice di Google.

Questa distinzione è fondamentale: una pagina bloccata con Disallow può ancora essere conosciuta tramite link interni o esterni, mentre Google non può accedervi per leggere un eventuale noindex, canonical o altri segnali presenti nella pagina.

In questa guida vediamo sintassi, esempi corretti e sbagliati, WordPress, Shopify, staging, filtri, JavaScript e crawler AI. Per un controllo più ampio usa anche la checklist SEO tecnica.

Cos’è il file robots.txt?

robots.txt è un file di testo pubblico che comunica ai crawler quali percorsi di un sito possono o non possono essere richiesti. Fa parte del Robots Exclusion Protocol e serve soprattutto a gestire il crawling.

Può essere utile per ricerche interne, combinazioni di filtri, URL con parametri, aree amministrative o altri spazi che non vuoi far esplorare ai crawler.

Non è una misura di sicurezza. I crawler non affidabili possono ignorarlo e chiunque può leggere il file. Per contenuti privati servono autenticazione, password o controlli lato server.

Dove si trova il file robots.txt?

https://example.com/robots.txt

Il file deve essere nella root dell’host. Un robots.txt in una sottocartella non controlla l’intero sito. Le regole valgono inoltre per lo stesso protocollo, host e porta del file.

  • https://example.com/robots.txt controlla https://example.com/…
  • https://www.example.com/robots.txt è separato da https://example.com/robots.txt.
  • HTTP e HTTPS hanno ambiti distinti.
  • Un sottodominio come shop.example.com ha bisogno del proprio robots.txt.

Sintassi base: User-agent, Disallow, Allow e Sitemap

User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php/

Sitemap: https://example.com/sitemap.xml

L’esempio si applica al gruppo generico, blocca /wp-admin/, riapre un percorso più specifico e dichiara la sitemap.

User-agent

User-agent identifica il crawler a cui si applica un gruppo. L’asterisco * rappresenta il gruppo generico.

User-agent: *
Disallow: /area-interna/

User-agent: Googlebot
Disallow: /test-google/

Per Google, il crawler usa il gruppo con lo user-agent più specifico. Il gruppo specifico Googlebot non viene automaticamente sommato al gruppo *.

Disallow

Disallow indica un percorso che il crawler non dovrebbe richiedere.

User-agent: *
Disallow: /search/
Disallow: /private-preview/

I percorsi sono case-sensitive: /Search/ e /search/ possono essere diversi.

Allow

Allow crea un’eccezione più specifica all’interno di un percorso bloccato.

User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php/

Google applica la regola più specifica in base alla lunghezza del percorso; a parità di specificità usa quella meno restrittiva.

Sitemap

Sitemap: https://example.com/sitemap_index.xml
Sitemap: https://cdn.example.com/video-sitemap.xml

La sitemap deve essere indicata con URL assoluto completo. Puoi dichiararne più di una e la riga Sitemap non è legata a un singolo user-agent.

Se vuoi verificare sitemap, status code e direttive insieme, il servizio di audit SEO include questi controlli tecnici.

Wildcard * e simbolo $

Google supporta una forma limitata di wildcard: * corrisponde a zero o più caratteri; $ indica la fine dell’URL.

Esempio con *

User-agent: Googlebot
Disallow: /*?sessionid=

Può bloccare URL che contengono un certo pattern. Prima di usarlo, verifica che quel parametro non identifichi anche pagine utili.

Esempio con $

User-agent: Googlebot
Disallow: /*.pdf$

Qui la regola corrisponde agli URL che terminano con .pdf.

Gestire più crawler nello stesso robots.txt

User-agent: Googlebot
User-agent: Googlebot-Image
Disallow: /archivio-privato/

User-agent: *
Disallow: /ricerca-interna/

Puoi associare più user-agent allo stesso gruppo oppure creare gruppi separati. Per Google, più gruppi specifici dello stesso user-agent vengono combinati; il gruppo specifico e quello globale * non vengono fusi.

Googlebot e Googlebot-Image

Google usa crawler diversi per prodotti e tipi di contenuto. Googlebot è il crawler principale per Search; Googlebot-Image è usato per le immagini.

Bloccare Googlebot non è una scorciatoia SEO. Se impedisci il crawling delle pagine importanti, Google non può leggere contenuto, link, canonical, meta robots o aggiornamenti presenti sulla pagina.

robots.txt può anche controllare il crawling di immagini, ma non bloccare CSS, JavaScript o media necessari per rendere e comprendere la pagina.

Perché Disallow non significa noindex

Disallow controlla il crawling. noindex controlla la presenza nell’indice.

Un URL bloccato può essere scoperto attraverso link, vecchie sitemap o altre fonti. Google può quindi conoscere l’indirizzo anche senza poter leggere il contenuto.

Se sulla pagina hai inserito <meta name=”robots” content=”noindex”> ma la blocchi in robots.txt, Google può non riuscire a leggere il noindex.

Esempio sbagliato: usare Disallow per deindicizzare

# SBAGLIATO se l’obiettivo è rimuovere la pagina da Google
User-agent: Googlebot
Disallow: /pagina-da-rimuovere/

La regola impedisce il crawl; non garantisce la rimozione dell’URL dai risultati.

Esempio corretto: noindex su una pagina pubblica

<meta name=”robots” content=”noindex, follow”>

La pagina deve restare accessibile al crawler perché il noindex possa essere letto. Per contenuti davvero privati usa autenticazione o password.

Se stai diagnosticando pagine assenti dai risultati, consulta anche Il tuo sito non appare su Google? 12 cause e come diagnosticarle.

Robots.txt vs meta robots

ControlloDove si trovaCosa controllaServe accesso alla pagina?
robots.txt/robots.txtCrawling dei percorsiNo
Meta robotsHTML della paginaIndicizzazione e presentazione
X-Robots-TagHeader HTTPIndicizzazione anche di file non HTML

Robots.txt vs noindex

Se vuoi ridurre il crawling di uno spazio URL inutile, robots.txt può essere appropriato. Se vuoi tenere una pagina pubblicamente accessibile fuori dai risultati, usa noindex.

Non usare Disallow + noindex pensando di ottenere un blocco più forte: il Disallow può impedire al crawler di leggere il noindex.

Robots.txt vs canonical

Canonical e robots.txt risolvono problemi diversi. Il canonical comunica quale URL preferisci tra duplicati o quasi duplicati; robots.txt controlla se il crawler può richiedere un percorso.

Bloccare un duplicato può rendere più difficile leggere il canonical presente su quella pagina. Prima di bloccare filtri o parametri, decidi se vuoi consolidarli, lasciarli scansionare o escluderli dal crawl.

Bloccare JavaScript e CSS: quando diventa un problema

Google può aver bisogno di CSS e JavaScript per rendere la pagina come un browser moderno. Se blocchi risorse necessarie, il crawler può vedere una pagina incompleta.

Esempio volutamente sbagliato

# POTENZIALMENTE SBAGLIATO
User-agent: Googlebot
Disallow: /assets/
Disallow: /wp-content/

Se queste cartelle contengono CSS, JavaScript, immagini o file necessari al rendering, la regola è troppo ampia.

Cosa controllare

  • Il contenuto principale è visibile nel test live di Search Console?
  • Le risorse JS/CSS essenziali restituiscono 200?
  • robots.txt blocca cartelle del tema o del framework?
  • Il rendering dipende da API o endpoint bloccati?

Robots.txt WordPress: esempio pratico

WordPress può esporre un robots.txt virtuale anche senza un file fisico. Plugin SEO, hosting o configurazioni server possono modificarne il contenuto.

User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php/

Sitemap: https://example.com/sitemap_index.xml

È una base, non un template universale. Non bloccare automaticamente /wp-content/ o intere cartelle tecniche senza controllare cosa serve al rendering.

Errore WordPress frequente

# SBAGLIATO sul sito live
User-agent: *
Disallow: /

Può accadere quando una regola di staging viene portata online durante una migrazione.

Robots.txt Shopify: cosa sapere

Shopify genera un robots.txt predefinito adatto alla maggior parte degli store. Le personalizzazioni avanzate passano dal template robots.txt.liquid.

Shopify avverte che una modifica errata può causare perdita di traffico e raccomanda, quando possibile, di mantenere le regole predefinite generate dalla piattaforma invece di sostituire tutto con testo statico.

Cosa gestisce normalmente Shopify

  • Percorsi amministrativi.
  • Cart e checkout.
  • Ricerca interna.
  • Alcune combinazioni di collection/filter che possono creare duplicazioni.

Quando personalizzare

Solo con un motivo misurabile: app che generano nuovi pattern, faceted navigation anomala, percorsi duplicati o crawler specifici da gestire. Valuta la modifica insieme a canonical, filtri, collezioni e sitemap.

Staging: perché Disallow: / non basta

Lo staging non dovrebbe affidarsi soltanto a robots.txt. Se l’URL viene scoperto, Disallow non garantisce che resti fuori dall’indice.

Protezione corretta dello staging

  • HTTP Basic Auth o login obbligatorio.
  • Restrizioni di rete/IP quando appropriate.
  • Rimozione di link pubblici e sitemap di staging.
  • Controllo pre-go-live per eliminare blocchi rimasti sul sito live.

Ricerca interna

Le pagine di ricerca interna possono creare un numero quasi illimitato di URL di scarso valore.

User-agent: Googlebot
Disallow: /search/

Il percorso reale dipende dal CMS. Prima di bloccare, verifica che non esistano landing page strategiche che condividono lo stesso pattern.

Navigazione a faccette e filtri

Filtri di colore, taglia, prezzo, brand e ordinamento possono generare moltissime combinazioni. robots.txt può controllare il crawling, ma non deve sostituire una decisione sull’architettura.

Alcune faccette possono avere domanda organica e meritare pagine indicizzabili. Altre sono puro rumore tecnico. Se il problema coinvolge migliaia di URL, approfondisci la guida sul crawl budget.

Percorsi admin

User-agent: *
Disallow: /admin/
Disallow: /wp-admin/

Bloccare aree amministrative può ridurre crawl inutile, ma non protegge quei percorsi. La sicurezza va gestita lato applicazione/server.

Parametri URL

# ESEMPIO: parametro puramente tecnico
User-agent: Googlebot
Disallow: /*?sessionid=

Non copiare una regola del genere senza mappare i parametri reali: un parametro inutile su un sito può identificare contenuti importanti su un altro.

Come testare robots.txt

Checklist di test

  • Apri /robots.txt e verifica che risponda con contenuto testuale valido.
  • Controlla host, protocollo e porta.
  • Cerca regole molto ampie, soprattutto Disallow: /.
  • Testa URL reali: homepage, categorie, prodotti, articoli, immagini e risorse JS/CSS.
  • Confronta il gruppo generico con gli user-agent specifici.
  • Usa URL Inspection per verificare l’accesso di Googlebot.
  • Dopo la modifica monitora Crawl Stats, Page Indexing e log server.

Google può mettere in cache robots.txt per circa 24 ore, quindi una modifica non viene necessariamente recepita in tempo reale da ogni crawler.

Provare anche le URL che non vuoi bloccare

Una regola Disallow: /search/ riguarda quel percorso, ma non equivale a bloccare qualsiasi URL che contenga una ricerca. Prepara una tabella con URL esatta, user-agent, risultato atteso e risultato del test. Includi pagina commerciale, ricerca interna, parametro in posizioni diverse, risorsa CSS e sottodominio: un test soltanto sulla URL da escludere non scopre i falsi positivi.

Per Google, controlla anche la selezione del gruppo: un gruppo specifico non eredita automaticamente le regole del gruppo *. Verifica la specifica ufficiale robots.txt prima di generalizzare una regola. Dopo il rilascio rileggi il file pubblico, inclusa l’eventuale cache CDN, e conserva la versione precedente. Non modificare il file del sito usando un esempio senza adattarlo ai percorsi reali.

Errori robots.txt durante una migrazione

  • Disallow: / copiato dallo staging al dominio live.
  • Vecchi percorsi bloccati anche se ora ospitano pagine valide.
  • JS/CSS del nuovo tema accidentalmente bloccati.
  • Sitemap dichiarata ancora sul vecchio dominio.
  • Regole parametriche obsolete che intercettano i nuovi URL.
  • Blocchi su cartelle che hanno cambiato significato nel nuovo CMS.

Dopo una migrazione, controlla robots.txt insieme a redirect, sitemap, canonical e rendering.

Robots.txt e crawler AI

Non esiste un solo ‘crawler AI’. I provider usano bot diversi per ricerca, training e richieste attivate direttamente dagli utenti.

Search crawler, training crawler e user-triggered crawler

CategoriaEsempiScopoSe lo blocchi
Search crawlerGooglebot, OAI-SearchBot, Claude-SearchBotScoperta per esperienze di ricercaPuò ridurre o impedire la presenza del contenuto nelle relative funzioni di ricerca
Training/data controlGPTBot, ClaudeBot, Google-Extended come tokenGestire uso del contenuto per modelli/servizi AIDipende dal provider; non equivale automaticamente a bloccare la ricerca classica
User-triggeredChatGPT-User, Claude-UserRecupero su richiesta dell’utentePuò impedire il fetch diretto in quelle richieste

OpenAI: OAI-SearchBot non è GPTBot

OpenAI separa OAI-SearchBot, usato per la ricerca di ChatGPT, da GPTBot, associato al possibile utilizzo del contenuto per l’addestramento dei modelli.

# ESEMPIO: consentire ChatGPT Search e bloccare GPTBot
User-agent: OAI-SearchBot
Allow: /

User-agent: GPTBot
Disallow: /

Consentire OAI-SearchBot non garantisce una citazione. Consente l’accesso per la ricerca dove applicabile; selezione, ranking e citazione dipendono da sistemi separati.

Anthropic: search, training e richieste utente

Anthropic documenta Claude-SearchBot per la ricerca, ClaudeBot per contenuti che possono contribuire al training e Claude-User per recuperi attivati dalle richieste degli utenti.

Google: Search e Google-Extended

Googlebot gestisce il crawling per Search; Google-Extended riguarda gli usi di training descritti da Google e non sostituisce i controlli di inclusione. Per AI Overviews e AI Mode verifica anche Search generative AI nelle impostazioni di Search Console, inclusa l’eredità dalla proprietà principale. Bloccare Googlebot non equivale a escludere soltanto le risposte AI.

Non bloccare tutti i bot AI copiando una lista generica. Prima definisci se il tuo obiettivo è visibilità in Search, controllo del training, accesso user-triggered o riduzione del crawl.

Per la strategia più ampia su visibilità e crawler AI, consulta il servizio Generative Engine Optimization (GEO).

Esempi robots.txt sbagliati da evitare

Errore 1: bloccare tutto sul sito live

# SBAGLIATO
User-agent: *
Disallow: /

Errore 2: usare noindex dentro robots.txt

# NON SUPPORTATO DA GOOGLE
User-agent: *
Noindex: /pagina/

Google non supporta noindex dentro robots.txt. Usa meta robots o X-Robots-Tag.

Errore 3: bloccare risorse di rendering

# TROPPO AMPIO
User-agent: Googlebot
Disallow: /assets/
Disallow: /scripts/
Disallow: /styles/

Errore 4: pensare che robots.txt protegga dati sensibili

# NON È SICUREZZA
User-agent: *
Disallow: /fatture-clienti/

La cartella resta raggiungibile se il server non richiede autenticazione.

Errore 5: usare Crawl-delay per Googlebot

# GOOGLE NON SUPPORTA crawl-delay IN robots.txt
User-agent: Googlebot
Crawl-delay: 10

Google non supporta crawl-delay in robots.txt. Altri crawler possono supportarlo: verifica sempre la documentazione del provider specifico.

Checklist pratica prima di modificare robots.txt

  • Qual è il problema reale: crawl, indicizzazione, duplicazione, sicurezza o AI access?
  • La regola si applica al giusto host e protocollo?
  • Il path corrisponde davvero agli URL target ed è case-sensitive?
  • Esistono URL importanti che condividono lo stesso pattern?
  • Stai bloccando CSS, JavaScript, immagini o API necessarie al rendering?
  • Stai usando Disallow per un problema che richiede noindex?
  • Il canonical o altri meta tag devono essere letti sulla pagina bloccata?
  • La sitemap dichiarata è corretta?
  • Hai valutato separatamente Googlebot, image crawler e crawler AI?
  • Hai un piano di monitoraggio dopo la modifica?

Quando serve un controllo professionale

Su un sito piccolo robots.txt può essere molto semplice. Il rischio aumenta quando una singola regola intercetta migliaia di URL o il sito usa CMS, filtri, JavaScript e più crawler con obiettivi diversi.

  • E-commerce con faceted navigation.
  • Marketplace o siti con ricerca interna su larga scala.
  • Migrazione o redesign.
  • Sito JavaScript/headless.
  • Molti URL bloccati in Search Console.
  • Conflitti tra robots.txt, noindex e canonical.
  • Strategia distinta per Google Search e crawler AI.

Un robots.txt sbagliato può rendere invisibili intere sezioni del sito ai crawler. Se non sei sicuro delle direttive presenti, includile nella tua verifica tecnica SEO.

Richiedi una verifica tecnica SEO

Domande frequenti su robots.txt

A cosa serve robots.txt?

Serve soprattutto a controllare quali URL o risorse i crawler possono richiedere. È utile per gestire il crawling, ma non è lo strumento corretto per tenere una pagina web fuori dall’indice.

Disallow impedisce l’indicizzazione?

No. Un URL bloccato può ancora essere scoperto tramite link e comparire nei risultati. Se vuoi evitare l’indicizzazione di una pagina pubblica, usa noindex e lascia che il crawler possa leggerlo.

Come bloccare Googlebot?

Puoi usare User-agent: Googlebot seguito da Disallow. Fallo solo per percorsi che non vuoi far scansionare: bloccare pagine importanti impedisce a Google di leggerne contenuto e segnali.

Dove si trova il file robots.txt?

Nella root dell’host, per esempio https://example.com/robots.txt. Un file dentro una sottocartella non controlla l’intero sito.

Posso inserire la sitemap nel robots.txt?

Sì. Usa Sitemap: seguito dall’URL assoluto della sitemap o del sitemap index. Puoi dichiararne più di una.

Devo bloccare wp-admin su WordPress?

È comune bloccare /wp-admin/ e consentire admin-ajax.php quando necessario. Non usare però un template copiato alla cieca: plugin, tema e architettura possono richiedere controlli specifici.

Devo modificare il robots.txt di Shopify?

Di solito no. Shopify genera regole predefinite adatte alla maggior parte degli store. Personalizza robots.txt.liquid solo quando hai un’esigenza concreta e dopo aver valutato l’impatto.

Consentire un crawler AI garantisce una citazione?

No. Consentire il crawler permette l’accesso dove il provider usa quel bot, ma citazioni, ranking e risposte dipendono da sistemi separati e non sono garantiti.


Picture of Author : Miad.G
Author : Miad.G

Hi, I'm Miad Ghazi, an SEO Consultant and the founder of Boost My SEO. I'm passionate about helping businesses grow through Technical SEO, content strategy, Local SEO, International SEO, and the latest AI search optimization techniques. I enjoy simplifying complex SEO concepts into practical strategies that help websites achieve long-term organic growth and stay competitive as search evolves.

Come possiamo aiutarla?