Sitemap XML

Un elenco XML di indirizzi di pagina che consegni ai motori di ricerca per aiutarli a trovare e aggiornare le tue pagine. I siti grandi di solito lo dividono in più file o lo comprimono.

Perché esiste

Le sitemap accelerano la scoperta di URL nuovi o molto annidati e il recupero dopo le migrazioni. Non garantiscono indicizzazione né posizionamento: considerale un suggerimento strutturato per i crawler, non una scorciatoia oltre le soglie di qualità.

Elenca sempre in loc URL assoluti e canonical. Inserire URL non canonical o che reindirizzano crea rumore e spreca capacità di scansione.

Campi di url & sitemapindex

Questi tag appartengono allo schema base di sitemaps.org. Le estensioni (immagini, video, news, hreflang) aggiungono i propri namespace ed elementi figlio dentro ogni url.

Tag figli di url

TagObbligatorioScopo
locSìURL assoluto e canonical della pagina (meglio https; evita il rumore di sessione)
lastmodNoUltima modifica significativa del contenuto (W3C Datetime, con o senza fuso)
changefreqNoSuggerimento: always, hourly, daily, weekly, monthly, yearly, never (spesso ignorato)
priorityNo0,0–1,0 relativo agli altri URL dello stesso sito; non è un segnale di posizionamento

Tag figli di sitemap (dentro sitemapindex)

TagObbligatorioScopo
locSìURL del file sitemap figlio (.xml semplice o .xml.gz)
lastmodNoSuggerimento facoltativo sull'ultima modifica del file figlio

Esempio: urlset standard

La radice urlset dichiara il namespace predefinito http://www.sitemaps.org/schemas/sitemap/0.9. Puoi generare molte voci url; ognuna deve contenere esattamente un loc.

xml
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://www.example.com/</loc>
    <lastmod>2026-05-01</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
  <url>
    <loc>https://www.example.com/blog/sitemap-xml</loc>
    <lastmod>2026-05-01T12:00:00+03:00</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
</urlset>

Esempio: indice sitemap

Un sitemapindex non elenca mai direttamente URL di pagina: punta solo ai file sitemap figli. Suddividere per sezione (blog, catalogo, landing) o per tipo di contenuto mantiene chiara la proprietà.

xml
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <sitemap>
    <loc>https://www.example.com/sitemaps/static.xml</loc>
    <lastmod>2026-05-01</lastmod>
  </sitemap>
  <sitemap>
    <loc>https://www.example.com/sitemaps/blog.xml.gz</loc>
    <lastmod>2026-05-01</lastmod>
  </sitemap>
</sitemapindex>

Esempio: sitemap News

L'estensione news di Google avvolge URL editoriali freschi con metadati news:news (nome della pubblicazione, lingua, data di pubblicazione, titolo). Gli editori spesso isolano gli URL news in una sitemap figlia dedicata: controlla le regole di freschezza e volume di Google.

xml
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
        xmlns:news="http://www.google.com/schemas/sitemap-news/0.9">
  <url>
    <loc>https://www.example.com/news/crawlers-refreshed-the-index</loc>
    <news:news>
      <news:publication>
        <news:name>Example Times</news:name>
        <news:language>en</news:language>
      </news:publication>
      <news:publication_date>2026-05-01T09:15:00+03:00</news:publication_date>
      <news:title>Crawlers refreshed the index</news:title>
    </news:news>
  </url>
</urlset>

Esempio: immagini

Ogni pagina loc può elencare uno o più blocchi image:image. image:loc è obbligatorio; caption/title aggiungono contesto per la ricerca immagini di Google.

xml
<?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">
  <url>
    <loc>https://www.example.com/gallery/moscow-night</loc>
    <image:image>
      <image:loc>https://cdn.example.com/photos/moscow-1600.webp</image:loc>
      <image:caption>Moscow skyline at night</image:caption>
      <image:title>Moscow riverfront</image:title>
    </image:image>
    <image:image>
      <image:loc>https://cdn.example.com/photos/moscow-thumb.webp</image:loc>
    </image:image>
  </url>
</urlset>

Esempio: video

Un blocco video:video descrive il clip: thumbnail, titolo, descrizione, file multimediale o pagina player, durata in secondi. Le combinazioni obbligatorie dipendono dallo stile di hosting: vedi il riferimento sitemap video di Google.

xml
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
        xmlns:video="http://www.google.com/schemas/sitemap-video/1.1">
  <url>
    <loc>https://www.example.com/watch/seo-audit-intro</loc>
    <video:video>
      <video:thumbnail_loc>https://cdn.example.com/thumbs/audit-intro.jpg</video:thumbnail_loc>
      <video:title>Technical SEO audit intro</video:title>
      <video:description>A short overview of audit deliverables.</video:description>
      <video:content_loc>https://cdn.example.com/video/audit-intro.mp4</video:content_loc>
      <video:duration>612</video:duration>
    </video:video>
  </url>
</urlset>

Esempio: multilingua (hreflang)

Gli URL nelle lingue alternative possono essere elencati dentro la stessa voce url tramite xhtml:link con rel="alternate" e hreflang. Molti team replicano il cluster completo su ogni URL localizzato; l'hreflang nella sitemap deve coincidere con le annotazioni on-page.

xml
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
        xmlns:xhtml="http://www.w3.org/1999/xhtml">
  <url>
    <loc>https://www.example.com/ru/services/seo-audit</loc>
    <xhtml:link rel="alternate" hreflang="ru" href="https://www.example.com/ru/services/seo-audit"/>
    <xhtml:link rel="alternate" hreflang="en" href="https://www.example.com/en/services/seo-audit"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://www.example.com/en/services/seo-audit"/>
  </url>
  <url>
    <loc>https://www.example.com/en/services/seo-audit</loc>
    <xhtml:link rel="alternate" hreflang="ru" href="https://www.example.com/ru/services/seo-audit"/>
    <xhtml:link rel="alternate" hreflang="en" href="https://www.example.com/en/services/seo-audit"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://www.example.com/en/services/seo-audit"/>
  </url>
</urlset>

Formato e limiti

Ogni sitemap non compressa può contenere fino a 50.000 URL e pesare al massimo circa 50 MB; i siti più grandi generano più sitemap figlie referenziate da un indice. Il trasporto gzip va bene, ma i tetti di URL restano per file logico.

  • Le estensioni news/image/video/xhtml aumentano le dimensioni del payload: occhio ai tetti di 50 MB / 50.000 URL.
  • Mantieni lastmod affidabile: gli aggiornamenti falsi di massa erodono la fiducia.
  • Tratta changefreq/priority come suggerimenti facoltativi; i motori possono ignorarli.
  • Valida la codifica UTF-8 e la correttezza XML in CI.

Igiene della sitemap

  • Butta i target 4xx/5xx, le catene di redirect e gli URL duplicati.
  • Allinea le voci con i tag canonical e il contenuto scansionabile.
  • Monitora la copertura di Search Console e i log del server per le sezioni ignorate.

FAQ

Le sitemap sono obbligatorie?
No, ma sono una best practice per i siti grandi o in rapida evoluzione. I siti piccoli e ben linkati possono farne a meno.
Priority migliora il posizionamento?
No: priority al massimo influenza i suggerimenti di pianificazione della scansione, non il ranking.
Ogni quanto rigenerarla?
Ogni volta che cambiano la struttura o gli URL importanti; automatizza la generazione così le sitemap non divergono mai dalla produzione.
Devono comparire gli URL in noindex?
Evita i segnali in conflitto: ometti gli URL che non vuoi far scansionare per l'indicizzazione.
Serve una sitemap news dedicata?
Non strettamente, ma gli editori spesso isolano le voci Google News così le regole di freschezza e le dimensioni del file restano gestibili.