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:

  1. La invii in Google Search Console / Bing Webmaster Tools.
  2. La dichiari in robots.txt tramite Sitemap:.
  3. Il crawler indovina /sitemap.xml come 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.xml non è 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 dichiarare https://example.com/sitemap.xml. Google tratta la sitemap come appartenente all’host su cui è dichiarata.
  • La direttiva Sitemap: è globale, non riferita a un blocco User-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