Guida Completa a Robots.txt e Sitemap.xml

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

💻 Esempio Sitemap.xml completa

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
        xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"
        xmlns:xhtml="http://www.w3.org/1999/xhtml">

  <!-- Homepage -->
  <url>
    <loc>https://www.tuosito.it/</loc>
    <lastmod>2026-03-01</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>

  <!-- Pagina con immagine dichiarata -->
  <url>
    <loc>https://www.tuosito.it/servizi/</loc>
    <lastmod>2026-02-15</lastmod>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.tuosito.it/img/servizi.jpg</image:loc>
      <image:title>I nostri servizi</image:title>
    </image:image>
  </url>

  <!-- Pagina multilingua con hreflang -->
  <url>
    <loc>https://www.tuosito.it/chi-siamo/</loc>
    <lastmod>2026-01-10</lastmod>
    <priority>0.6</priority>
    <xhtml:link rel="alternate" hreflang="it"
      href="https://www.tuosito.it/chi-siamo/"/>
    <xhtml:link rel="alternate" hreflang="en"
      href="https://www.tuosito.com/about-us/"/>
  </url>

</urlset>

📁 Sitemap Index — per siti di grandi dimensioni

Quando il sito supera 50.000 URL o vuoi separare logicamente le sezioni (blog, prodotti, categorie), usa una Sitemap Index:

<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">

  <sitemap>
    <loc>https://www.tuosito.it/sitemap-pagine.xml</loc>
    <lastmod>2026-03-20</lastmod>
  </sitemap>

  <sitemap>
    <loc>https://www.tuosito.it/sitemap-blog.xml</loc>
    <lastmod>2026-03-25</lastmod>
  </sitemap>

  <sitemap>
    <loc>https://www.tuosito.it/sitemap-prodotti.xml</loc>
    <lastmod>2026-03-24</lastmod>
  </sitemap>

</sitemapindex>

💰 Il Crawl Budget: come gestirlo strategicamente

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 Disallowblocca 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 noindexblocca 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.

⚙️ Quando e come usare robots.txt

  • 🔐 Aree riservate — blocca /admin/, /login/, /dashboard/, /wp-admin/ (tranne admin-ajax.php)
  • 🔍 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
  • ✅ Le pagine noi
    HTTP & SEO Checker — strumento gratuito by Olyvia.it  ·  Agenzia SEO & Digital Marketing · Vicenza  ·  2020 - 2026