Validateur de sitemap XML
Le sitemap XML liste, à l’intention de Google, les adresses de votre site. Cet outil le contrôle : structure valide, URL absolues bien formées, dates au bon format, limites d’entrées respectées. Utile avant de le soumettre à la Search Console, pour qu’aucune erreur silencieuse ne bloque l’exploration.
Lancer gratuitement
Tout se passe dans votre navigateur : gratuit, sans envoi de vos données.
Ce qu’un sitemap doit respecter
Un sitemap valide suit des règles précises : un en-tête XML correct, chaque adresse dans une balise dédiée, des URL absolues et échappées, une date de dernière modification au format ISO. Il ne doit pas dépasser 50 000 URL ni peser plus de 50 Mo une fois décompressé. L’outil vérifie chacun de ces points et pointe la ligne fautive, là où un simple caractère mal placé peut rendre le fichier entier illisible pour Google.
Les erreurs les plus courantes
La plupart des sitemaps échouent sur des détails : une esperluette non échappée dans une URL, une adresse relative au lieu d’absolue, une date au mauvais format, ou des balises mal imbriquées après un export approximatif. L’outil distingue ces cas et explique, pour chacun, ce qui cloche et comment le corriger, afin que vous ne vous contentiez pas d’un « fichier invalide » sans savoir où chercher.
Collez, c’est gratuit
Collez le contenu de votre sitemap : la validation se fait dans le navigateur, sans rien envoyer ni conserver, gratuitement et sans inscription. Pratique pour contrôler un fichier généré à la main ou par un plugin avant sa mise en ligne. Pour valider un sitemap déjà publié en le chargeant depuis son adresse, la variante par URL passe par l’API et coûte $0.002 par requête.
Cas d’usage
Sitemap généré par un plugin
Menuiserie Rousseau & Fils a un sitemap produit par une extension. En le collant, l’artisan vérifie qu’aucune URL de brouillon n’a filtré et que toutes les adresses sont bien absolues avant de le soumettre.
Fichier édité à la main
Une indépendante maintient un petit sitemap à la main. L’outil repère une esperluette non échappée dans un lien à paramètre, qui rendait le fichier invalide sans message clair côté Search Console.
Contrôle après refonte
Studio Lumen SAS refait le site d’un client et veut être sûr que le nouveau sitemap tient la route. La validation confirme le format et le nombre d’URL attendu avant la remise en ligne.
Questions fréquentes
Combien d’URL un sitemap peut-il contenir ?
Jusqu’à 50 000 adresses et 50 Mo une fois décompressé. Au-delà, il faut découper le site en plusieurs sitemaps regroupés dans un fichier d’index. L’outil vous prévient si votre fichier approche ces limites.
Quel format de date le sitemap attend-il ?
Le format ISO 8601, par exemple 2026-07-14. Une date écrite à la française, 14/07/2026, est refusée par Google. L’outil signale toute date au mauvais standard afin que vous la corrigiez.
Mon sitemap est-il transmis à un serveur ?
Non, en mode collé. La validation s’exécute dans votre navigateur ; le fichier ne quitte pas la page et rien n’est conservé. Seule la validation d’un sitemap en ligne via l’API suppose un traitement à distance.
Un sitemap invalide empêche-t-il l’indexation ?
Il peut la freiner : si Google ne parvient pas à lire le fichier, il ignore les URL qu’il contient et découvre vos pages plus lentement. Valider avant de soumettre évite ce blocage silencieux.
Faut-il payer pour valider ?
Non pour le mode collé : c’est gratuit, sans compte ni limite. Seule la validation d’un sitemap chargé depuis son adresse, via l’API, est facturée $0.002 la requête.
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/seo/sitemap-validate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"input":"…"}'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({
"input": "…"
})
});
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={
"input": "…"
},
)
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" => '{"input":"…"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"input":"…"}`)
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)Exemple de requête
{
"input": "…"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "seo.sitemap_validate",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |