← Torna al blog

Come monitorare i cambiamenti della sitemap in automatico

Come monitorare i cambiamenti della sitemap in automatico

Per monitorare i cambiamenti della sitemap devi salvare una copia dell'elenco di URL a intervalli fissi e confrontare ogni copia con la precedente. Le differenze su cui vale la pena intervenire sono gli URL che compaiono, quelli che spariscono e le date lastmod che cambiano in blocco.

La sitemap è l'unico file in cui un CMS elenca, in chiaro, le pagine che secondo lui dovrebbero esistere. Quando una migrazione o un cambio di plugin fa sparire una sezione, la sitemap lo riflette il giorno stesso, mentre le posizioni possono metterci settimane a mostrare qualcosa. Quasi tutti la controllano al lancio e poi non la aprono più.

Come leggere il diff di una sitemap

Ogni tipo di cambiamento ha una spiegazione innocua frequente e un guasto che devi escludere.

Cambiamento Spesso innocuo perché Da escludere
URL aggiunti Sono stati pubblicati nuovi articoli o prodotti Generazione di archivi di tag, parametri di filtro, pagine allegato o URL di staging
URL rimossi Il contenuto è stato eliminato o accorpato di proposito Pagine tolte per errore, messe in noindex o perse in una migrazione
lastmod cambiato su pochi URL Quelle pagine sono state modificate Di solito niente
lastmod cambiato su tutti gli URL Raramente è una modifica reale Un deploy o una ricostruzione della cache che riscrive i timestamp

Gli URL rimossi meritano l'attenzione maggiore. Google tiene una pagina nell'indice ancora per un po' dopo che è uscita dalla sitemap, quindi il traffico non ti avvisa. Le aggiunte contano soprattutto sugli e-commerce, dove un aggiornamento che attiva le pagine per attributi o filtri può aggiungere in una notte un gran numero di URL con poco contenuto.

I lastmod cambiati in massa sono meno urgenti ma vanno comunque sistemati. La documentazione di Google sulle sitemap dice che il lastmod viene usato solo se il valore è accurato in modo costante e verificabile, quindi una sitemap che mette la data di oggi su tutto insegna a Google a ignorare quel campo. Come scrivere bene il file lo trovi nelle best practice per la sitemap XML.

Un diff manuale che puoi lanciare oggi

Per una sitemap semplice, senza indice:

curl -s https://example.com/sitemap.xml \
  | grep -o '<loc>[^<]*' | cut -c6- | sort > oggi.txt
comm -3 ieri.txt oggi.txt

comm -3 stampa nella prima colonna gli URL presenti solo nel file di ieri e, rientrati nella seconda, quelli presenti solo nel file di oggi. È più facile da scorrere dell'output di diff.

La maggior parte dei siti reali però serve un sitemap index. Yoast serve /sitemap_index.xml, che punta a post-sitemap.xml, page-sitemap.xml e file simili. WordPress senza plugin SEO serve /wp-sitemap.xml. Su Shopify /sitemap.xml è un indice di sitemap figlie per prodotti, collezioni, pagine e blog. Se lanci il comando qui sopra su uno di questi ottieni un elenco di sitemap figlie, non di pagine. Un breve ciclo risolve:

curl -s https://example.com/sitemap_index.xml \
  | grep -o '<loc>[^<]*' | cut -c6- \
  | while read child; do
      curl -s "$child" | grep -o '<loc>[^<]*' | cut -c6-
    done | sort -u > oggi.txt

Due avvertenze. Le sitemap compresse (.xml.gz) richiedono gunzip -c nella pipe, e un <loc> racchiuso in CDATA o spezzato su più righe sfugge a grep: se pensi di tenere lo script a lungo, un vero parser XML è più sicuro. Se non sai dove si trova la sitemap di un sito, di solito lo dice la riga Sitemap: nel suo robots.txt.

Dove lo script non basta più

Il primo punto debole è la pianificazione. Un cron sul portatile si ferma quando chiudi il coperchio, e uno script per ogni sito cliente è una cosa in più che nessuno mantiene.

Search Console non copre il buco. Il report Sitemap mostra lo stato di ogni file inviato ("Completata", "Presenta errori" o "Impossibile recuperare") e il numero di pagine rilevate, ma non elenca quali URL sono spariti e non manda nessuna notifica quando quel numero cala. Filtrare il report Indicizzazione delle pagine per sitemap mostra lo stato di indicizzazione degli URL contenuti in un file, il che aiuta nella diagnosi quando sai già che qualcosa non va.

L'ultimo limite è che un elenco di URL non dice nulla sulle pagine. /prezzi/ può essere ancora nella sitemap dopo che lo stesso deploy le ha tolto il title o ha aggiunto un noindex.

Monitorare i cambiamenti della sitemap in automatico con Deltio

Deltio controlla ogni giorno la sitemap di ciascun sito e la confronta con il controllo precedente. Quando ci sono URL aggiunti o rimossi invia un alert su Slack ed email per quel sito con l'elenco degli URL coinvolti, non un numero netto. Nello stesso ciclo controlla le pagine per modifiche a noindex, canonical, title, meta description e H1, così un cambiamento nella sitemap e una regressione a livello di pagina causati dallo stesso rilascio arrivano insieme. Si affianca agli alert sui cambiamenti SEO e al lavoro più ampio di monitorare i siti dei clienti.

Un ciclo giornaliero ha un punto cieco: una sitemap che si rompe e si ripristina nel giro di poche ore potrebbe non comparire mai. Per la maggior parte dei siti è un compromesso accettabile, e nel giorno di un lancio puoi far girare anche lo script qui sopra. Con la prova gratuita di 14 giorni hai due settimane di diff sul sito cliente che ti preoccupa di più.

Domande frequenti

Devo inviare di nuovo la sitemap in Search Console ogni volta che cambia?
No. Google riscarica le sitemap che conosce già secondo i suoi tempi. Inviarla di nuovo dal report Sitemap può sollecitare un recupero dopo un cambiamento importante, ma non è necessario. Il vecchio endpoint di ping delle sitemap è stato deprecato da Google nel 2023, quindi gli script che lo chiamano ancora non servono a niente.
Le pagine in noindex vanno inserite nella sitemap?
No. Una sitemap dovrebbe elencare URL canonici e indicizzabili. Un URL in noindex nella sitemap manda un segnale contraddittorio e compare come escluso quando filtri il report Indicizzazione delle pagine per quella sitemap. Se un URL è in noindex di proposito, toglilo dal file.
Ogni quanto conviene controllare una sitemap?
Una volta al giorno va bene per la maggior parte dei siti aziendali e degli e-commerce. I siti che pubblicano molte volte al giorno, come le testate giornalistiche, generano così tante aggiunte che il segnale utile sta nelle rimozioni, quindi conviene guardare prima quelle.
Posso monitorare la sitemap di un concorrente?
Le sitemap sono file pubblici, quindi lo stesso script funziona su qualsiasi sito. Per trovare il file cerca la riga Sitemap nel robots.txt del sito. È un modo ragionevole per vedere quando un concorrente lancia una nuova sezione o un blocco di schede prodotto.
Quanto costa il monitoraggio della sitemap con Deltio?
È incluso in tutti i piani. Starter costa 29 € al mese, oppure 24 € al mese con fatturazione annuale, per un massimo di 50 siti e 5.000 URL. Professional costa 59 € al mese (49 € con fatturazione annuale) per un massimo di 200 siti ed Enterprise 139 € al mese (116 € con fatturazione annuale) per un massimo di 500 siti. Ogni piano ha una prova gratuita di 14 giorni.