CMS e piattaforme

Sitemap XML: un lastmod identico su tutte le URL rende inutile la sitemap

Poster astratto su fondo blu notte: una rete centrale di piccoli cerchi bianchi si disordina progressivamente, a evocare la perdita di informazione di una sitemap in cui tutte le date sono identiche, con linee arancioni che attraversano la composizione.

Una sitemap XML dice ai motori quali URL esistono e quali sono cambiate. La prima funzione è assolta da quasi tutti i CMS. La seconda viene trascurata da buona parte di essi, e in modo invisibile: il file è valido, la Search Console lo legge senza errori, eppure non porta più alcuna informazione su ciò che si è mosso. La causa sta in un solo campo, lastmod, e nel modo in cui viene compilato.

Che cosa fa davvero Google di lastmod

La posizione di Google è scritta nero su bianco nella sua documentazione sulla costruzione di una sitemap: il valore di lastmod viene utilizzato «se è coerente e verificabile», per esempio confrontandolo con l'ultima modifica reale della pagina. Google aggiunge che i campi priority e changefreq vengono ignorati. Dei tre campi opzionali del formato, uno solo conta, e solo se dice la verità.

Dal punto di vista del motore, il calcolo è questo. Un robot dispone di un crawl budget limitato per ogni sito. Quando rilegge una sitemap, confronta le date annunciate con quelle che ha memorizzato. Una URL la cui data è avanzata merita una nuova visita; una URL la cui data non si è mossa può aspettare. Se tutte le date avanzano insieme a ogni lettura, il motore non riesce più a distinguere una pagina davvero aggiornata da una pagina immutata. Finisce per non fidarsi più del campo e torna alle proprie euristiche, in genere più lente.

Il difetto tipico: la data del build

Molti generatori di siti statici, e un certo numero di CMS, scrivono in lastmod la data in cui il sito è stato rigenerato. Su un sito pubblicato ogni giorno, tutte le URL portano allora la data del giorno, compresi articoli vecchi di tre anni che nessuno ha toccato. La sitemap annuncia continuamente che tutto è cambiato.

Abbiamo verificato questo difetto su diversi siti in produzione nel corso dell'estate 2026, su più di trecento URL in totale: in ogni caso, un solo valore di lastmod per l'intera sitemap, pari all'ora dell'ultimo build. Nessuno di questi siti inviava peraltro un'intestazione HTTP Last-Modified né un ETag sulle proprie pagine, e nessuno rispondeva alle richieste condizionali dei robot. Il motore non aveva dunque alcun modo di sapere che cosa ricaricare.

Punti allineati che formano una griglia regolare, tutti identici, suggeriscono l'assenza di distinzione o di evoluzione in un insieme di dati, con una texture di stampa che accentua la monotonia.

Diagnosi in tre controlli

La verifica richiede pochi minuti, con un semplice terminale.

  1. Contare i valori distinti di lastmod. Recuperare la sitemap, estrarre i tag lastmod e contare i valori unici. Una sitemap sana su un sito di diverse centinaia di pagine ne conta decine. Un valore solo, o una manciata di valori tutti datati allo stesso giorno, denuncia il difetto.
  2. Confrontare lastmod con la pagina. Prendere una URL vecchia dalla sitemap, aprire la pagina e confrontare la data di modifica mostrata nell'articolo, o nei suoi dati strutturati, con il valore di lastmod. Uno scarto di diversi mesi conferma che lastmod non descrive la pagina.
  3. Testare le intestazioni HTTP. Chiedere una pagina con una richiesta HEAD e guardare se il server restituisce Last-Modified o ETag. Poi rimandare la stessa richiesta con If-Modified-Since alla data ricevuta. Un server che risponde 304 Not Modified sa dire che una pagina non è cambiata; un server che restituisce 200 ogni volta obbliga il robot a riscaricare tutto.

Questi tre test non richiedono alcuno strumento a pagamento. Fanno parte dei controlli che raccomandiamo prima di qualsiasi discussione sull'indicizzazione di una testata.

Perché è più grave per una testata che per un sito vetrina

Un sito vetrina di venti pagine viene ricrawlato per intero in ogni caso. Una testata che pubblica più articoli a settimana e ne corregge altri vive di un segnale di freschezza affidabile: è quello che fa risalire un articolo aggiornato, ed è quello che evita al robot di spendere il proprio budget su pagine ferme. Quando il segnale è rotto, dopo qualche settimana compaiono due sintomi:

  • I nuovi articoli impiegano più tempo a essere indicizzati, perché annegano in una sitemap dove tutto sembra nuovo.
  • Le correzioni di articoli vecchi non vengono prese in considerazione, perché nulla distingue una pagina corretta da una pagina semplicemente ricostruita da un build.

Su una testata che punta anche ai motori generativi, il problema si paga una seconda volta: i robot delle IA di ricerca, che si appoggiano alle stesse sitemap, lo ereditano. Un contenuto rivisto per correggere una cifra resta servito nella sua versione precedente per settimane.

Motivo centrale di bande parallele arancioni su fondo blu-verde, qua e là interrotte e frammentate, con una linea gialla in evidenza spezzata al centro, a suggerire flussi irregolari in un sistema editoriale.

Il criterio di correzione

Correggere il difetto significa far portare a lastmod la data dell'ultima modifica editoriale di ogni pagina, e nient'altro. In concreto:

Eventolastmod deve cambiare?
Correzione del testo, aggiunta di un paragrafo, aggiornamento di una cifraSì
Cambio di titolo, di meta description o di immagine in evidenzaSì
Rigenerazione del sito senza modifica della paginaNo
Cambio di tema o di modello applicato a tutte le pagineNo, salvo se cambia il contenuto visibile
Nuovo commento, nuovo blocco «articoli correlati» calcolato automaticamenteNo

Il criterio di collaudo è lo stesso della diagnosi: dopo la correzione, il numero di valori distinti di lastmod deve riflettere la storia reale della testata, e due build successivi senza modifica editoriale devono produrre due sitemap identiche. Se la sitemap cambia mentre non è stato scritto nulla, la correzione non è fatta.

Il caso particolare della testata in sottodirectory

Quando una testata è ospitata sotto un percorso del sito principale, per esempio un blog servito sotto /blog/ da un'altra piattaforma, si aggiunge una seconda difficoltà: il file robots.txt che dichiara la sitemap viene letto soltanto alla radice dell'host. Un robots.txt collocato nella sottodirectory non viene mai consultato, e le righe Sitemap che contiene non esistono per i motori, come ricorda la documentazione di Google su robots.txt. Occorre allora dichiarare la sitemap della testata nel robots.txt del sito principale, oppure inviarla direttamente nella Search Console. Nel 2023 Google ha eliminato la possibilità di «pingare» una sitemap con una semplice richiesta HTTP: senza dichiarazione esplicita, una testata in sottopercorso non ha alcun canale di scoperta.

Questi due difetti, lastmod uniforme e sitemap non scoperta, si correggono una volta per tutte a livello dello strumento di pubblicazione. È il tipo di dettaglio che un CMS pensato per una testata deve risolvere per costruzione, perché nessuna redazione lo verificherà a mano a ogni pubblicazione. Sugli altri segnali di freschezza, la data di revisione mostrata e i dati strutturati, rimandiamo al nostro articolo «Freschezza: datare, rivedere, dimostrare».

Una trama regolare di punti ciano, fitta al centro e improvvisamente interrotta da una linea arancione, suggerisce un accesso bloccato o un confine in un contesto di interconnessione.
Yann Léguillon

Scritto da

Yann Léguillon

Presidente di Mazette, l'editore di Joornal. Accompagna le aziende che costruiscono la propria testata: strutturazione editoriale, visibilità nei motori di ricerca e nelle IA, produzione su larga scala.