robots.txt e sitemap.xml hanno ruoli diversi
| Meccanismo | Obiettivo | Ambito | Effetto principale |
|---|---|---|---|
| robots.txt | Controllare crawling | Path per crawler | Non garantisce deindicizzazione |
| sitemap.xml | Segnalare URL importanti | URL e metadati | Indicazione, non garanzia |
| noindex | Escludere dall'indice | URL o risorsa | Funziona dopo il crawling |
| rel="canonical" | Indicare versione preferita | URL o risorsa | Segnale forte, non direttiva assoluta |
robots.txt fa parte del Robots Exclusion Protocol e controlla l'accesso dei crawler ai path. RFC 9309 chiarisce che non è un sistema di autorizzazione. [4]
Una sitemap comunica ai motori pagine, video e altri file importanti, con relazioni e metadati. [6]
Posizione e ambito di robots.txt
Il file deve chiamarsi `robots.txt` e stare nella root dell'host, per esempio `https://example.com/robots.txt`. [2][4]
L'ambito dipende da protocollo, host e porta. Google applica anche un limite di 500 KiB. [2][3]
Sintassi di base
User-agent: *
Disallow: /admin/
Allow: /admin/public/
Sitemap: https://example.com/sitemap.xml
Google supporta `user-agent`, `allow`, `disallow` e `sitemap`. `crawl-delay` non è supportato. [3]
Il campo `sitemap` deve contenere una URL assoluta e può essere ripetuto. [2][3]
Corrispondenza delle regole, maiuscole e wildcard
Google usa la regola più specifica. Se `allow` e `disallow` hanno la stessa specificità, prevale la regola meno restrittiva, cioè `allow`. [3][4]
I path sono case-sensitive. Google supporta `*` come wildcard e `$` come fine URL. [3]
robots.txt non sostituisce noindex
Una URL bloccata in robots.txt può comunque apparire nei risultati se Google la scopre tramite altri link. [1][3]
Per escluderla dall'indice usa `noindex` tramite robots meta o `X-Robots-Tag`. Google deve poter eseguire il crawling per leggere la regola. [5][16]
Errori HTTP e cache di robots.txt
| Status | Comportamento Google |
|---|---|
| 2xx | Elabora il file robots.txt |
| 3xx | Segue almeno 5 redirect |
| 4xx except 429 | Lo tratta come assenza di restrizioni |
| 5xx / network | Può sospendere crawling e usare l'ultima versione valida |
Google elabora `2xx`, segue almeno cinque redirect con `3xx` e tratta la maggior parte dei `4xx`, tranne `429`, come assenza di restrizioni. [3]
Con `5xx` o errori di rete può sospendere temporaneamente il crawling e riutilizzare l'ultima versione valida. In genere mantiene robots.txt in cache fino a 24 ore. [3]
A cosa serve sitemap.xml
Una sitemap facilita la scoperta delle URL importanti e può includere date di modifica, versioni linguistiche, immagini, video e news. [6][7]
Google indica che un piccolo sito di circa 500 pagine o meno, con buon linking interno, può non averne bisogno. [6]
Formati sitemap supportati
Google supporta XML, RSS, mRSS, Atom 1.0 e sitemap di testo. XML è il formato più versatile. [7]
Google non dichiara una preferenza generale tra i formati supportati. [7]
Limiti di sitemap e sitemap index
| File | Voci massime | Dimensione massima | Nota |
|---|---|---|---|
| Sitemap singola | 50,000 | 50 MB | Limite non compresso; gzip consentito |
| Sitemap index | 50,000 sitemaps | 50 MB | Limite non compresso; gzip consentito |
Una sitemap è limitata a 50.000 URL o 50 MB non compressi. Se supera uno dei limiti deve essere suddivisa. [7][8]
Un sitemap index può contenere fino a 50.000 sitemap ed è anch'esso limitato a 50 MB. gzip è consentito. [8]
Quali URL includere
Google consiglia URL assolute che desideri vedere nei risultati di ricerca. [7]
Per contenuti duplicati conviene includere la URL canonical preferita. L'inclusione in sitemap è un segnale canonical debole rispetto a redirect o `rel="canonical"`. [7][9]
`<lastmod>`, `<priority>` e `<changefreq>`
Google ignora `<priority>` e `<changefreq>`. [7]
Può usare `<lastmod>` quando è accurato, verificabile e rappresenta una modifica significativa di contenuto, dati strutturati o link. [7]
Come inviare una sitemap a Google
La sitemap può essere inviata con Search Console, tramite Search Console API oppure indicata in robots.txt con `Sitemap:`. [7][11][12]
L'invio è solo un'indicazione e non garantisce download, crawling o indicizzazione. [7]
Siti multilingue e sitemap specializzate
Google supporta relazioni `hreflang` nelle sitemap XML. Ogni variante deve indicare tutte le versioni, inclusa se stessa. [10]
Sono disponibili estensioni specifiche per immagini, video e news. [13][14][15]
Errori comuni di SEO tecnica
Bloccare una pagina in robots.txt e aspettarsi che Google legga il suo `noindex` è un errore grave. [5][16]
Vanno evitati anche segnali incoerenti tra sitemap e `rel="canonical"`. [9]
- Non usare robots.txt al posto di `noindex`.
- Non inserire deliberatamente redirect, 404 o duplicati inutili nella sitemap.
- Non aggiornare `<lastmod>` a ogni deploy senza un cambiamento reale.
- Mantieni canonical e sitemap coerenti.
- Controlla separatamente sottodomini e protocolli.
Checklist di deploy
Controlla le risposte HTTP reali. robots.txt deve essere servito come testo e la sitemap in un formato supportato. [2][7]
Dopo la pubblicazione verifica il report Sitemaps in Search Console. Durante una migrazione la sitemap può aiutare Google a scoprire le nuove URL. [11][17]
- `/robots.txt` è raggiungibile?
- URL importanti sono bloccate per errore?
- Le pagine noindex restano crawlable?
- La sitemap contiene solo URL assolute preferite?
- Ogni file resta sotto 50.000 URL e 50 MB?
- Canonical e sitemap sono coerenti?
- Le relazioni hreflang sono corrette?
- Search Console segnala errori?

