Validatore di sitemap XML
Controlla che la sitemap XML del tuo sito sia scritta bene: legge gli URL elencati, segnala quelli che non sono indirizzi assoluti validi e ti dice se il file contiene date lastmod. Una sitemap con un errore di formato viene scartata in blocco dal motore, e tu resti senza quel canale per far scoprire le tue pagine.
Esegui gratis nel browser
A cosa serve validare la sitemap
La sitemap è l'elenco delle pagine che vuoi far conoscere a Google: è il modo più diretto per segnalare gli URL da scansionare, soprattutto su siti grandi o con pagine poco collegate tra loro. Ma basta un errore di sintassi — un carattere speciale non gestito, un tag non chiuso, un URL malformato — perché il motore rifiuti l'intero file o ne salti dei pezzi. Controllarla prima di inviarla in Search Console ti evita di scoprire il problema settimane dopo, quando ti accorgi che certe pagine non vengono mai visitate.
I limiti da rispettare
Una singola sitemap può contenere al massimo 50.000 URL e non superare i 50 MB da decompressa. Oltre quella soglia va divisa in più file raccolti da un indice di sitemap. Lo strumento conta gli URL elencati, così vedi a colpo d'occhio quando ti stai avvicinando alla soglia, e controlla che ogni indirizzo sia un URL assoluto valido — il requisito strutturale che si sbaglia più spesso. Il conteggio e la decisione di spezzare il file restano a te: lo strumento non blocca un file troppo grande.
Date lastmod e sintassi
Il tag lastmod indica l'ultima modifica di una pagina e va scritto nel formato data standard: “2026-07-14” o con orario e fuso; una data all'italiana come 14/07/2026 viene ignorata da Google. Lo strumento ti dice se il file contiene date lastmod, così te ne accorgi quando spariscono del tutto, ma non ne verifica il formato: quello lo rispetti tu. Incolli il contenuto del file XML e la verifica avviene nel browser, gratis e senza limiti; il controllo diretto da URL passa dal servizio a $0.002 a sitemap.
Casi d'uso
Prima di inviarla a Search Console
Chi gestisce un blog genera la sitemap con un plugin e la controlla prima di inviarla: scopre che alcune URL erano relative invece che assolute, un errore che rompe la sitemap, e le corregge così Google accetta il file al primo tentativo.
Sito cresciuto oltre il limite
Un e-commerce con decine di migliaia di prodotti controlla la sitemap e vede dal conteggio che ha superato i 50.000 URL: la divide in più file raccolti da un indice, evitando che Google ne ignori la parte eccedente.
Date lastmod sparite
Un sito rigenera la sitemap e col controllo scopre che le date lastmod non ci sono più: le rimette, così il motore torna a vedere quando ogni pagina è stata modificata.
Domande frequenti
Quanti URL può contenere una sitemap?
Al massimo 50.000 URL e 50 MB da decompressa. Oltre quella soglia va divisa in più sitemap raccolte da un file indice. Lo strumento conta gli URL, ma non blocca né segnala per te un file oltre il limite: il conteggio te lo lascia leggere.
In che formato devono essere le date?
Nel formato standard tipo “2026-07-14”, eventualmente con orario e fuso; una data all'italiana come 14/07/2026 non è valida e viene ignorata. Lo strumento ti dice se le date lastmod ci sono, ma non ne controlla il formato: quello lo rispetti tu.
Cosa succede se la sitemap ha un errore?
A seconda dell'errore, Google può scartare l'intero file o saltare le righe malformate. In entrambi i casi perdi il beneficio della sitemap. Controllarla prima dell'invio evita di accorgersene troppo tardi.
È gratis?
Sì, incollando il contenuto del file XML la verifica gira nel browser, gratis e senza limiti. A pagamento è solo il controllo diretto da URL, a $0.002 a sitemap, comodo quando il file è già online.
Il file della sitemap resta privato?
Nella modalità gratuita sì: l'XML che incolli viene controllato nel tuo browser e non lascia il dispositivo, quindi puoi verificare anche la sitemap di un sito non ancora pubblicato.
Valida anche l'indice delle sitemap?
Legge gli URL elencati nel file. In un file indice questo significa che controlla la sintassi degli URL dei sitemap figli, ma non scarica né verifica ciascun file figlio a sua volta.
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/seo/sitemap-validate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com/sitemap.xml"}'const res = await fetch("https://api.kit.forhosting.com/seo/sitemap-validate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"url": "https://example.com/sitemap.xml"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/seo/sitemap-validate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"url": "https://example.com/sitemap.xml"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/seo/sitemap-validate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"url":"https://example.com/sitemap.xml"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"url":"https://example.com/sitemap.xml"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/seo/sitemap-validate", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"url": "https://example.com/sitemap.xml"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "seo.sitemap_validate",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |