technical
Sitemap in robots.txt
MetricSpot verifica che robots.txt abbia una riga Sitemap:. È così che Google, Bing e i crawler IA scoprono automaticamente la tua sitemap.
Cosa verifica questo controllo
Recupera /robots.txt e cerca una o più direttive Sitemap:. Verifica che l’URL sia assoluto (gli URL relativi non sono ammessi per spec) e raggiungibile.
Perché è importante
La maggior parte dei crawler scopre la tua sitemap in uno di tre modi:
- La invii in Google Search Console / Bing Webmaster Tools.
- La dichiari in
robots.txttramiteSitemap:. - Il crawler indovina
/sitemap.xmlcome ultima risorsa.
Il metodo 2 è quello che scala ai crawler con cui non hai un account — Googlebot, Bingbot, GPTBot, ClaudeBot, PerplexityBot, Applebot, Yandex, Baidu e dozzine di indicizzatori minori leggono tutti robots.txt prima di crawlare qualsiasi cosa. Dichiarare lì la tua sitemap è una riga di configurazione che trasmette la posizione a tutti contemporaneamente.
Se la salti, una sitemap generata dal CMS a un URL non standard (/sitemap_index.xml, /wp-sitemap.xml, /sitemap-0.xml) potrebbe non essere mai scoperta dai crawler minori che non provano path alternativi.
Come sistemarlo
Aggiungi una riga Sitemap: a /robots.txt. Usa l’URL assoluto e canonico — stesso schema (https), stesso hostname (con o senza www, corrispondente al tuo canonico), nessun redirect finale.
User-agent: *
Allow: /
Sitemap: https://example.com/sitemap.xml
Più sitemap sono ammesse. Elencale tutte, o elenca un sitemap index che riferisce le altre:
Sitemap: https://example.com/sitemap-pages.xml
Sitemap: https://example.com/sitemap-posts.xml
Sitemap: https://example.com/sitemap-products.xml
Regole:
- Solo URL assoluto.
Sitemap: /sitemap.xmlnon è valido per spec. Alcuni crawler lo tollerano, altri ignorano la direttiva del tutto. - Corrisponde allo schema/host canonico. Se il tuo sito è
https://www.example.com, non dichiararehttps://example.com/sitemap.xml. Google tratta la sitemap come appartenente all’host su cui è dichiarata. - La direttiva
Sitemap:è globale, non riferita a un bloccoUser-agent:. Mettila su una riga sua, in cima o in fondo al file — la posizione non conta.
nginx (servire un robots.txt statico):
location = /robots.txt {
alias /var/www/example.com/robots.txt;
}
Next.js (App Router) — robots.txt dinamico:
// app/robots.ts
import type { MetadataRoute } from "next";
export default function robots(): MetadataRoute.Robots {
return {
rules: [{ userAgent: "*", allow: "/" }],
sitemap: "https://example.com/sitemap.xml",
};
}
Astro: metti un public/robots.txt letterale nel tuo progetto, o generalo in src/pages/robots.txt.ts:
// src/pages/robots.txt.ts
import type { APIRoute } from "astro";
export const GET: APIRoute = ({ site }) => {
const body = `User-agent: *
Allow: /
Sitemap: ${new URL("sitemap-index.xml", site).href}
`;
return new Response(body, { headers: { "Content-Type": "text/plain" } });
};
Se usi @astrojs/sitemap, emette sitemap-index.xml — punta la direttiva all’indice, non alle singole sitemap.
WordPress: Yoast SEO e Rank Math aggiungono entrambi la riga Sitemap: al robots.txt virtuale automaticamente. Se hai un file /robots.txt reale su disco, il plugin non può sovrascriverlo — o cancella il file o aggiungi la riga Sitemap: manualmente.
Cloudflare Workers / Pages: robots.txt è solo testo statico — mettilo nella tua directory public/. Se lo generi tramite un Worker, imposta content-type: text/plain così i crawler lo parsano correttamente.
Combinalo con File robots.txt, Sitemap XML, e Permettere crawler IA — i tre insieme impostano l’intera superficie di scoperta per il crawl.
Domande frequenti
Devo comunque inviare la sitemap in Search Console se è in robots.txt?
Sì, per Google. La submission in Search Console ti dà statistiche di indicizzazione per sitemap, report degli errori e diagnostiche “scoperta, non indicizzata” che la scoperta automatica non offre. Usa entrambi — robots.txt per il resto del web, Search Console per la visibilità specifica su Google.
Posso avere più di una riga Sitemap:?
Sì. La spec permette più dichiarazioni sitemap. O elencale tutte, o elenca un file sitemap index che riferisce le altre (più pulito, più facile da mantenere).
E se l’URL della mia sitemap cambia?
Aggiorna la riga Sitemap: e Googlebot la raccoglierà la prossima volta che legge robots.txt (di solito entro 24 ore). Se hai una vecchia sitemap inviata in Search Console, rimuovila manualmente — robots.txt dice solo ai crawler dov’è quella nuova, non fa scadere la vecchia.
Fonti
Ultimo aggiornamento 2026-05-11