Tutto quello che devi sapere per controllare la scansione, ottimizzare il crawl budget e massimizzare l'indicizzazione del tuo sito web.
🤖 Cos'è il file robots.txt?
Il file robots.txt è un file di testo in chiaro collocato obbligatoriamente nella root del dominio (es: https://www.tuosito.it/robots.txt).
Fa parte del protocollo Robots Exclusion Standard e comunica ai crawler — come Googlebot, Bingbot o altri spider — quali aree del sito possono o non possono essere visitate.
È la prima cosa che un bot legge prima di iniziare qualsiasi scansione. Non rispettarlo è tecnicamente facoltativo per i bot malintenzionati, ma tutti i motori di ricerca legittimi lo rispettano scrupolosamente.
⚠️ Attenzione critica: robots.txt non è un meccanismo di sicurezza. Non impedisce l'accesso diretto agli URL: blocca solo la scansione, non l'indicizzazione se esistono link esterni alla pagina.
🗺️ Cos'è la Sitemap.xml?
La sitemap.xml è un file strutturato in formato XML che elenca tutte le URL che vuoi far conoscere ai motori di ricerca. È il tuo modo per dire a Google: "Queste sono le pagine che contano, non perdertele."
Il protocollo Sitemap è supportato da Google, Bing, Yahoo e tutti i principali motori. Può contenere metadati aggiuntivi come la data di ultima modifica (lastmod), la frequenza di aggiornamento (changefreq) e la priorità relativa (priority).
Un singolo file sitemap può contenere fino a 50.000 URL e non deve superare i 50 MB non compressi. Per siti grandi si usa una Sitemap Index che referenzia più sitemap figlie.
📈 Perché sono fondamentali per la SEO
🔋 Ottimizzano il crawl budget — ogni sito ha un budget di scansione limitato: robots.txt evita sprechi su pagine inutili
🧭 Guidano i bot verso le pagine corrette — la sitemap segnala le URL prioritarie da indicizzare
⚡ Accelerano l'indicizzazione — specialmente per siti nuovi o con pagine orfane difficili da raggiungere tramite link interni
🚫 Prevengono i contenuti duplicati — bloccare varianti URL inutili (filtri, parametri di tracking) riduce il rischio di duplicate content
📊 Migliorano il monitoraggio — inviare la sitemap in Google Search Console ti permette di tracciare quante URL sono indicizzate rispetto a quelle dichiarate
🔬 Anatomia di un robots.txt professionale
Un robots.txt ben strutturato include direttive specifiche per i diversi bot, non solo per *. Ecco la struttura completa:
User-agent — specifica il bot a cui si applica la regola (* = tutti)
Disallow — percorso che il bot NON deve scansionare
Allow — eccezione esplicita all'interno di un blocco Disallow
Crawl-delay — secondi di attesa tra una richiesta e l'altra (non supportato da Google)
Sitemap — URL assoluta della sitemap (puoi inserirne più di una)
💻 Esempio robots.txt avanzato
# Regole generali per tutti i bot
User-agent: *
Disallow: /admin/
Disallow: /login/
Disallow: /carrello/
Disallow: /checkout/
Disallow: /account/
Disallow: /*?s= # Blocca risultati ricerca interna
Disallow: /*?utm_ # Blocca parametri UTM
Disallow: /wp-json/ # Blocca REST API WordPress
Allow: /wp-admin/admin-ajax.php # Necessario per AJAX
# Regole specifiche per Googlebot
User-agent: Googlebot
Disallow: /staging/
Allow: /
# Blocco completo per bot indesiderati
User-agent: AhrefsBot
Disallow: /
User-agent: SemrushBot
Disallow: /
# Sitemap (puoi dichiararne più di una)
Sitemap: https://www.tuosito.it/sitemap.xml
Sitemap: https://www.tuosito.it/sitemap-news.xml
Il crawl budget è il numero di pagine che Googlebot è disposto a scansionare sul tuo sito in un determinato periodo. È influenzato da due fattori: la crawl rate limit (quanto velocemente il bot può scansionare senza sovraccaricare il server) e la crawl demand (quanto Google ritiene utile scansionare il tuo sito).
Per i siti piccoli (sotto le 1.000 pagine) il crawl budget raramente è un problema. Diventa critico per:
🛒 E-commerce con migliaia di varianti prodotto e pagine filtro
📰 Siti di notizie con archivi storici molto profondi
🏗️ Siti con molti parametri URL generati dinamicamente
🔄 Siti con contenuti duplicati o con thin content
Strategia: usa robots.txt per bloccare i parametri URL inutili, le pagine di ricerca interna, i tag, gli archivi per data — tutto ciò che non porta valore SEO ma consuma budget di scansione.
⚖️ robots.txt vs noindex: differenza cruciale
Uno degli errori più gravi in SEO è confondere questi due strumenti. Hanno scopi completamente diversi:
🚫 robots.txt Disallow — blocca la scansione. Il bot non visita la pagina, ma potrebbe comunque indicizzarla se trova link che la puntano. La pagina può apparire in SERP senza snippet.
🔕 Meta tag noindex — blocca l'indicizzazione. Il bot può visitare la pagina, legge il tag e la rimuove o non la aggiunge all'indice. Richiede che la pagina sia accessibile alla scansione.
⚠️ Il paradosso: se metti Disallow su una pagina con noindex, Googlebot non può leggere il tag noindex e potrebbe comunque indicizzarla. Non bloccare mai con robots.txt le pagine su cui vuoi applicare il noindex.
Regola pratica: vuoi bloccare l'indicizzazione? Usa noindex. Vuoi risparmiare crawl budget su pagine già escluse? Usa robots.txt su pagine che non hanno bisogno di trasmettere segnali SEO.
🔍 Risultati di ricerca interna — i risultati di ricerca del tuo sito non hanno valore SEO autonomo
🏷️ Parametri URL — blocca varianti come ?orderby=, ?color=, ?page= se non gestite tramite canonical
🗓️ Archivi per data — su WordPress, gli archivi per giorno/mese/anno spesso duplicano contenuti
🖨️ Versioni di stampa — URL con parametro ?print=1 o simili
🔗 Link interni di tracking — URL con parametri UTM interni che creano duplicati
🧪 Ambienti di staging — blocca tutto lo staging con un robots.txt dedicato: Disallow: /
✏️ Cosa includere (e cosa escludere) dalla sitemap
✅ Includi:
Tutte le pagine indicizzabili e canoniche
Pagine con contenuto unico e di valore
URL HTTPS (non HTTP)
URL senza parametri di tracking
L'URL esatta usata nel tag canonical
❌ Escludi:
Pagine con meta tag noindex
Pagine bloccate in robots.txt
Pagine con redirect (301, 302)
Pagine con contenuto duplicato o thin content
Pagine di errore (404, 500)
Pagine di admin, carrello, checkout
⚠️ Errori critici da evitare assolutamente
💣 Disallow: / in produzione — blocca l'intero sito. Controlla sempre prima del deploy, specialmente se copi la configurazione dallo staging.
🔀 Confondere noindex e robots.txt — come spiegato sopra, usarli insieme in modo errato può avere effetti opposti a quelli desiderati.
🔗 URL non canoniche nella sitemap — inserire URL con parametri o varianti HTTP invece dell'URL canonical definitivo manda segnali contrastanti a Google.
🕰️ Sitemap non aggiornata — pagine eliminate ancora presenti nella sitemap generano errori in Search Console e sprechi di crawl budget.
🔒 Pagine con noindex nella sitemap — contraddizione che crea confusione per Googlebot.
📭 Non dichiarare la sitemap nel robots.txt — perdi un punto di discovery immediato per tutti i bot che leggono il file.
🌐 URL relative nella sitemap — le URL devono essere sempre assolute e includere il protocollo (https://).
✅ Best practice avanzate da esperto SEO
📌 Dichiara sempre la sitemap nel robots.txt — anche se l'hai già inviata in Search Console, serve a tutti gli altri bot
🔄 Genera la sitemap dinamicamente — su CMS come WordPress usa plugin come Yoast, RankMath o XML Sitemap Generator per tenerla sempre sincronizzata
🕵️ Monitora gli errori in Search Console — la sezione "Copertura dell'indice" e "Sitemap" ti mostra quali URL vengono escluse e perché
🧪 Testa con lo Strumento di Test robots.txt di Google Search Console prima di applicare modifiche in produzione
🔍 Usa il tag canonical come ultima riga di difesa — anche con robots.txt e sitemap ben configurati, il canonical è il segnale più forte per gestire i duplicati
⏱️ Controlla il lastmod con precisione — aggiorna il campo lastmod solo quando ci sono modifiche sostanziali al contenuto, non a ogni deploy tecnico
📐 Separa le sitemap per tipologia — sitemap-prodotti.xml, sitemap-blog.xml, sitemap-categorie.xml: più ordine = più controllo e analisi precisa
🤝 Invia la sitemap anche a Bing Webmaster Tools — non trascurare il secondo motore di ricerca più usato in Italia
🛠️ Strumenti indispensabili per gestirli
🔎 Google Search Console — test robots.txt, invio sitemap, monitoraggio copertura indice
🔎 Bing Webmaster Tools — stesse funzionalità per l'ecosistema Microsoft
🕷️ Screaming Frog SEO Spider — crawla il tuo sito come farebbe Google, individua pagine escluse, duplicati e problemi di canonicalizzazione
🗺️ Yoast SEO / RankMath — generazione automatica di sitemap su WordPress con filtri avanzati
⚡ Ahrefs / Semrush Site Audit — analisi automatica di errori nel robots.txt e nella sitemap
🔬 robots.txt Validator (ryte.com) — validazione sintattica avanzata del file
📋 Checklist SEO robots.txt e sitemap.xml
✅ Il file robots.txt è accessibile all'URL /robots.txt
✅ La sitemap è dichiarata con URL assoluta nel robots.txt
✅ Le aree private sono bloccate in robots.txt
✅ I parametri URL inutili sono bloccati
✅ Nessun blocco accidentale di CSS, JS o risorse importanti
✅ La sitemap contiene solo URL canoniche, HTTPS, senza redirect