Sitemap XML: cos’è, a cosa serve davvero, e come farla bene

 

La sitemap XML è uno dei primi file che un SEO controlla su un sito nuovo, ed è anche uno dei più fraintesi. Non fa rankare meglio, non è obbligatoria, e avere una sitemap sporca è peggio di non averla. Però, fatta bene, è lo strumento più efficiente per comunicare al motore di ricerca quali sono le URL canoniche del tuo sito e quando sono state aggiornate.

Cos’è una sitemap XML

È un file di testo in formato XML che elenca le URL del tuo sito che vuoi far conoscere ai motori di ricerca. Lo standard è definito da sitemaps.org ed è supportato da Google, Bing, Yandex e tutti i principali crawler.

Struttura minima:

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://esempio.com/</loc>
    <lastmod>2026-04-15</lastmod>
  </url>
  <url>
    <loc>https://esempio.com/prodotti/scarpe-running</loc>
    <lastmod>2026-04-10</lastmod>
  </url>
</urlset>

Limiti tecnici imposti dal protocollo:

  • Massimo 50.000 URL per file
  • Massimo 50 MB non compresso (o 10 MB compresso in gzip)
  • Oltre questi limiti: usi un sitemap index, cioè una sitemap di sitemap

Per siti grandi l’approccio corretto è partizionare per tipo di contenuto: sitemap-products.xml, sitemap-categories.xml, sitemap-posts.xml, tutti referenziati da un sitemap_index.xml.

Cosa fa (e cosa non fa) per la SEO

Cosa fa:

  • Aiuta Google a scoprire URL che altrimenti sarebbero difficili da raggiungere tramite link interni (es. pagine orfane, prodotti molto profondi nella navigazione)
  • Comunica la freshness tramite lastmod: Google può decidere di ricrawlare prima le pagine aggiornate di recente
  • Serve come dichiarazione di canonicità: le URL in sitemap sono un forte segnale di quale versione di una pagina tu consideri quella giusta

Cosa NON fa:

  • Non migliora il ranking di per sé. Una pagina non rankerà meglio perché è in sitemap. Googler ufficiali (John Mueller, Gary Illyes) lo hanno ripetuto decine di volte.
  • Non garantisce l’indicizzazione. Google decide cosa indicizzare in base alla qualità percepita della pagina. Se una URL è in sitemap ma è thin content o duplicata, Google può tranquillamente ignorarla.
  • Non sostituisce i link interni. Una pagina senza link interni che punta a lei è una pagina che Google considera poco importante, sitemap o non sitemap.

Regola pratica: la sitemap è un supporto alla scoperta, non un fattore di ranking.

Tipi di sitemap

Oltre alla sitemap “normale” delle URL, esistono tipi specializzati che uso quasi sempre quando il sito lo giustifica:

Tipo Quando ha senso Note
Sitemap URL standard Sempre Base, obbligatoria di fatto
Sitemap immagini Sito con molte immagini uniche (e-commerce, portfolio, magazine) Aumenta la visibilità in Google Images
Sitemap video Siti con video caricati sul proprio dominio Richiede campi specifici: thumbnail_loc, duration, ecc.
Sitemap Google News Solo se sei approvato come fonte Google News Limite 1000 URL, solo contenuti pubblicati negli ultimi 2 giorni
Sitemap HTML Per utenti, non per motori di ricerca Oggi meno utile: un buon menu + breadcrumb la rendono ridondante

Come si scrive una sitemap XML

I tag principali di ogni <url> sono quattro, ma solo due servono davvero:

<url>
  <loc>https://esempio.com/pagina</loc>         <!-- obbligatorio -->
  <lastmod>2026-04-15T10:30:00+02:00</lastmod>  <!-- utile -->
  <changefreq>weekly</changefreq>               <!-- ignorato da Google -->
  <priority>0.8</priority>                      <!-- ignorato da Google -->
</url>

Regole assolute che, se violate, rendono la sitemap parzialmente o totalmente inutile:

  1. Solo URL canoniche. Niente URL con parametri di tracking (?utm_*), niente URL con rel=”canonical” verso altre pagine, niente varianti http/https o www/non-www diverse dal dominio di riferimento.
  2. Solo URL indicizzabili. Niente pagine in noindex, niente pagine bloccate da robots.txt, niente 3xx, niente 4xx, niente 5xx. Ogni URL della sitemap deve restituire 200 OK ed essere indicizzabile.
  3. URL assolute, non relative. Sempre con schema (https://) e dominio.
  4. Encoding UTF-8 e caratteri speciali escapati (&&amp;).

Priority e changefreq: perché li puoi ignorare

Gary Illyes di Google ha dichiarato pubblicamente (nel podcast Search Off The Record e in vari post) che Google ignora completamente sia <priority> che <changefreq>.

Motivazione: sono stati compilati in modo talmente inaccurato e inflazionato dai webmaster (mezzo sito a priority 1.0) che Google ha smesso di considerarli. Oggi sono “rumore”.

Cosa fare in pratica:

  • Se usi un plugin che li genera automaticamente: lasciali stare, non fanno danno
  • Se li compili a mano: non perdere tempo, ometterli è meglio
  • Se proprio li vuoi: usa una scala coerente e stabile (1.0 per homepage e pillar, 0.5 per il resto), ma sappi che è lavoro che Google non leggerà

Lastmod: l’unico tag che conta davvero

<lastmod> è l’unico segnale della sitemap che Google dichiara esplicitamente di usare, a condizione che sia credibile.

“Credibile” significa:

  • Si aggiorna solo quando il contenuto della pagina cambia davvero
  • Non si aggiorna a ogni rigenerazione del file (errore classico di CMS mal configurati)
  • Non si aggiorna a ogni modifica irrilevante (es. update di un plugin, cambio footer)

Se Google rileva che tutte le URL del tuo sito hanno lastmod = oggi ogni volta che rilegge la sitemap, smette di fidarsi del segnale e lo ignora. Ho visto questo pattern su WordPress con plugin mal configurati: il risultato è zero beneficio di freshness.

Formato raccomandato: W3C Datetime, es. 2026-04-15T10:30:00+02:00. La data sola (2026-04-15) è comunque valida.

Come generarla

WordPress — Rank Math, Yoast SEO e The SEO Framework generano sitemap index automatiche, divise per post type. Rank Math è quello che preferisco perché l’output è pulito di default. Verifica sempre che:

  • Pagine/post in noindex siano esclusi
  • Categorie vuote siano escluse
  • Tag siano inclusi solo se hanno contenuto unico (altrimenti escludili)

Magento 2 — Sitemap nativa in Marketing > SEO & Search > Site Map. Problema comune: include di default tutte le pagine di prodotto, anche quelle disabilitate o con status = "not visible individually". Controlla.

Shopify — Sitemap generata automaticamente a /sitemap.xml. Non modificabile. Accetta il compromesso o usa un’app di terze parti.

Next.js / siti custom — Genera al build time (statica) o dinamicamente tramite una route handler. Esempio Next.js App Router:

// app/sitemap.xml/route.ts
import { getAllPosts } from '@/lib/posts'

export async function GET() {
  const posts = await getAllPosts()

  const urls = posts.map(p => `
    <url>
      <loc>https://esempio.com/${p.slug}</loc>
      <lastmod>${p.updatedAt}</lastmod>
    </url>`).join('')

  const xml = `<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  ${urls}
</urlset>`

  return new Response(xml, {
    headers: { 'Content-Type': 'application/xml' }
  })
}

Come inviarla a Google

Due canali, entrambi da usare:

1. Google Search Console → Sitemap → inserisci la URL (es. sitemap_index.xml) → Invia. Verifica dopo 24-48 ore: stato “Operazione riuscita”, numero di URL trovate coerente con quello reale, nessun errore di parsing.

2. Nel file robots.txt, riga finale:

Sitemap: https://esempio.com/sitemap_index.xml

Funziona per tutti i crawler che rispettano lo standard (Googlebot, Bingbot, ecc.).

Cosa non fare più: il “ping” via URL GET (https://www.google.com/ping?sitemap=...) è stato deprecato da Google nel giugno 2023. Non serve più, non funziona più.

Errori comuni che vedo sempre

Checklist in ordine di frequenza:

  • [ ] URL in sitemap che restituiscono 404 o 301. Passale in Screaming Frog con modalità “List” sul file sitemap: qualsiasi riga non 200 è da pulire.
  • [ ] URL in sitemap con noindex. Tipicamente pagine di ringraziamento, archivi autore, tag. Segnale contraddittorio per Google: “voglio che la indicizzi / non voglio che la indicizzi”.
  • [ ] URL in sitemap canonicalizzate altrove. Stesso problema al contrario.
  • [ ] lastmod uguale per tutte le URL e aggiornato a ogni rigenerazione. Perde totalmente di significato.
  • [ ] Più sitemap per lo stesso contenuto (es. sitemap nativa del CMS + sitemap di un plugin). Decidi quale tenere, disabilita l’altra.
  • [ ] Sitemap non linkata in robots.txt e non inviata in GSC. Esiste ma nessuno sa che esiste.
  • [ ] Sitemap con URL in www quando il dominio canonico è non-www (o viceversa). Controllo di 10 secondi che risolve problemi di crawl budget reali.

Takeaway

  • La sitemap serve alla scoperta, non al ranking
  • Tieni dentro solo URL canoniche, indicizzabili, 200 OK
  • Ignora priority e changefreq, cura lastmod
  • Per siti sopra i 50.000 URL: sitemap index + partizione per tipo di contenuto
  • Controlla lo stato in Search Console ogni 2-4 settimane: una sitemap sporca peggiora il segnale, non lo migliora

 

Torna in alto