Sitemap WordPress 404 : corriger l’erreur

Pour corriger un sitemap WordPress 404, commencez par ouvrir l’URL exacte déclarée dans Search Console, puis vérifiez si votre site utilise le sitemap natif de WordPress, celui de Rank Math ou une adresse XML personnalisée. Un 404 signifie que cette URL ne correspond à aucune ressource servie par le site. Réactivez le bon module, corrigez l’adresse envoyée à Google, purgez le cache et testez une réponse HTTP 200 avec un XML valide. Dans la plupart des cas, le problème vient d’une confusion entre /wp-sitemap.xml, /sitemap_index.xml et une ancienne URL de plugin.

Un sitemap XML est un fichier qui aide les moteurs à découvrir les URL importantes. Il ne remplace ni les liens internes ni la qualité du contenu, mais il donne une liste déclarée des pages que vous souhaitez faire explorer. L’erreur sitemap WordPress 404 est donc à traiter comme un problème de routage et de configuration avant de modifier les articles.

Pourquoi un sitemap WordPress renvoie une erreur 404

WordPress peut générer un sitemap natif depuis la version 5.5, mais une extension SEO peut aussi publier son propre index. Ces deux systèmes n’utilisent pas toujours la même adresse. Le sitemap natif se trouve généralement à /wp-sitemap.xml. Rank Math utilise souvent /sitemap_index.xml, tandis que d’autres extensions créent une variante avec leur propre préfixe. Si vous désinstallez une extension sans remplacer son adresse dans Search Console, l’ancienne URL peut naturellement devenir introuvable.

Un 404 peut aussi venir d’une règle de réécriture cassée. Les permaliens WordPress reposent sur des règles qui orientent les URL lisibles vers index.php. Une migration, une modification de .htaccess, un changement de serveur Nginx ou une désactivation de PHP peut laisser les articles accessibles tout en cassant les fichiers virtuels du sitemap.

Enfin, le serveur peut répondre 404 à cause du cache, d’une règle de sécurité ou d’un CDN. Il faut donc distinguer l’absence réelle du fichier, une redirection incorrecte et une réponse différente selon l’agent utilisateur. Le navigateur n’est pas une preuve suffisante, car certains caches servent une ancienne réponse.

# Tester les trois adresses les plus courantes
for url in wp-sitemap.xml sitemap_index.xml sitemap.xml; do
  curl -Ls -o /dev/null -w "$url %{http_code} %{content_type}
" "https://exemple.fr/$url"
done

# Afficher la destination finale d’une éventuelle redirection
curl -IL https://exemple.fr/sitemap_index.xml

Identifier le générateur utilisé par votre site

Avant de réparer, vérifiez quelle extension contrôle actuellement le SEO technique. Dans l’administration WordPress, ouvrez la liste des extensions et repérez Rank Math, Yoast SEO, SEOPress ou une extension spécialisée dans les sitemaps. Une seule solution doit être responsable de l’index XML principal. Plusieurs générateurs peuvent coexister, mais ils ne doivent pas se déclarer comme la même ressource ni produire des liens contradictoires.

Inspectez aussi le code source de la page d’accueil. Les balises robots et les liens éventuels vers un sitemap indiquent parfois l’adresse retenue par le thème ou par une extension. Regardez également le fichier robots.txt. La ligne Sitemap: doit utiliser une URL absolue, accessible sans connexion et identique à celle que vous voulez maintenir dans la durée.

Si vous avez accès à WP CLI, la liste des extensions actives permet de confirmer rapidement la configuration. L’objectif est d’éviter une réparation au mauvais endroit, par exemple modifier .htaccess alors que l’extension SEO est simplement désactivée.

# Depuis la racine du site WordPress
wp plugin list --status=active --fields=name,status,version
wp option get permalink_structure
wp rewrite list | head -30

# Vérifier la déclaration dans robots.txt
curl -Ls https://exemple.fr/robots.txt | grep -i sitemap

Si vous ne pouvez pas utiliser WP CLI, le même diagnostic reste possible depuis le tableau de bord. Notez l’adresse du sitemap réellement affichée par l’extension, puis testez-la en navigation privée. Ne déduisez pas le générateur à partir du seul nom du fichier, car un ancien plugin peut avoir laissé des règles après sa suppression.

Réparer le sitemap natif de WordPress

Si vous souhaitez utiliser le générateur natif, vérifiez d’abord que la fonctionnalité n’est pas désactivée par le thème ou une extension. Le fichier attendu est https://votre-domaine.tld/wp-sitemap.xml. Il s’agit souvent d’un index qui renvoie vers plusieurs fichiers, par exemple les sitemaps des articles, pages, catégories et auteurs. Tester uniquement l’index ne suffit pas, chaque URL enfant doit aussi répondre correctement.

Réenregistrez ensuite les permaliens. Dans WordPress, ouvrez Réglages, Permaliens, puis cliquez sur Enregistrer les modifications sans changer la structure. Cette opération régénère les règles de réécriture. Elle ne supprime pas les contenus et constitue une première action réversible pour un 404 du sitemap natif.

Si le sitemap reste introuvable, contrôlez les filtres du thème et les extensions de performance. Une extension de sécurité peut bloquer les fichiers XML, tandis qu’un cache peut servir une réponse ancienne. Désactivez temporairement une seule extension suspecte à la fois, testez, puis réactivez la suivante. Cette méthode évite de perdre la cause réelle.

# Contrôles attendus pour le sitemap natif
curl -Ls -w '
HTTP %{http_code}
' https://exemple.fr/wp-sitemap.xml | head -40

# Chaque loc doit être une URL absolue
curl -Ls https://exemple.fr/wp-sitemap.xml | grep -o '<loc>[^<]*</loc>' | head

Corriger un sitemap d’extension SEO

Avec une extension SEO, ouvrez ses réglages de sitemap et confirmez que la fonction est active. L’index principal doit être généré par cette extension et non par une ancienne configuration. Après une migration entre deux extensions, supprimez les références obsolètes dans Search Console et dans robots.txt, puis déclarez le nouvel index.

Ne téléversez pas manuellement un fichier XML dans le dossier du thème pour masquer le problème. Cette solution peut fonctionner quelques heures, mais elle contourne le contenu dynamique de WordPress et devient fragile dès qu’un article est ajouté ou supprimé. Le sitemap doit rester synchronisé avec les URL canoniques et les statuts de publication.

Dans Rank Math, l’adresse courante est généralement /sitemap_index.xml. Si elle renvoie 404 alors que l’extension est active, régénérez les permaliens, vérifiez les options de sitemap et purgez le cache. Sur un serveur Nginx, demandez aussi au responsable de l’hébergement de confirmer que les URL virtuelles sont envoyées à WordPress. Une règle qui ne transmet pas .xml à PHP peut casser l’index sans toucher aux pages HTML.

# Comparer le sitemap déclaré et la page canonique
curl -Ls https://exemple.fr/robots.txt | grep -i '^sitemap:'
curl -IL https://exemple.fr/sitemap_index.xml
curl -Ls https://exemple.fr/sitemap_index.xml | grep -E '<sitemap>|<loc>' | head -20

La présence d’un XML dans la réponse ne suffit pas. Vérifiez que les URL listées renvoient 200, ne redirigent pas en boucle et ne pointent pas vers des contenus en noindex. Un index techniquement valide mais rempli d’URL mortes transmet un mauvais signal de maintenance.

Réparer les permaliens, le cache et le serveur

Quand plusieurs URL virtuelles renvoient 404, le problème dépasse probablement le sitemap. Contrôlez la structure des permaliens et les règles serveur. Sur Apache, la présence d’un .htaccess WordPress correct est essentielle. Sur Nginx, la configuration doit envoyer les requêtes inconnues vers le contrôleur WordPress, sauf les vrais fichiers statiques. Une règle trop restrictive peut faire fonctionner l’accueil et casser tous les endpoints virtuels.

Purgez ensuite les couches de cache dans l’ordre suivant : cache de l’extension, cache objet, cache serveur, CDN et cache du navigateur. Testez avec une chaîne de requête sans valeur métier, puis avec plusieurs régions si un CDN est utilisé. La chaîne ne doit pas être ajoutée à l’URL envoyée dans Search Console. Elle sert uniquement à vérifier que vous ne regardez pas une ancienne réponse.

Examinez les journaux d’accès et d’erreurs au moment précis du test. Un code 404 généré par WordPress n’a pas la même cause qu’un 404 généré par le proxy. La présence d’un en-tête comme x-cache, server ou via peut aider à situer la couche qui répond. N’effacez pas les journaux avant d’avoir capturé une requête représentative.

# Vérifier les en-têtes et le cache
curl -sS -D - -o /dev/null 'https://exemple.fr/wp-sitemap.xml?check=2026'

# Contrôler une chaîne de redirections
curl -sS -IL https://exemple.fr/wp-sitemap.xml

# Exemple Apache minimal, à adapter à l’installation
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

Corriger l’erreur sitemap 404 dans Google Search Console

Une fois l’URL réparée, ouvrez Search Console, puis Sitemaps. Supprimez l’ancienne déclaration 404 seulement si elle ne correspond plus au générateur actif. Ajoutez ensuite l’index principal, généralement sans le nom de domaine si l’interface le demande. Google tentera de récupérer le fichier et affichera son dernier état de traitement.

Ne soumettez pas toutes les variantes pour accélérer l’indexation. Plusieurs sitemaps identiques ne créent pas de quota supplémentaire et peuvent rendre le diagnostic plus confus. Un seul index principal suffit, éventuellement complété par des fichiers spécialisés si votre architecture le justifie. Les URL listées doivent être canoniques, publiques et utiles.

Le rapport peut rester en erreur après la réparation si Google n’a pas encore effectué une nouvelle récupération. Testez d’abord avec la commande locale, puis consultez le détail de Search Console après quelques heures. Si le sitemap est accepté mais que des pages restent absentes, vous avez un problème d’indexation distinct. Notre guide sur « Détectée, actuellement non indexée » explique ce cas, tandis que l’article sur duplicate without user-selected canonical traite les doublons et les signaux canoniques.

# Vérification d’un XML bien formé avec xmllint
curl -Ls https://exemple.fr/sitemap_index.xml -o /tmp/sitemap.xml
xmllint --noout /tmp/sitemap.xml

# Compter les emplacements déclarés
xmllint --xpath 'count(//*[local-name()="loc"])' /tmp/sitemap.xml

Valider la qualité du sitemap après correction

Un sitemap corrigé doit fournir une réponse 200, un type MIME XML ou texte XML, un document bien formé et des URL absolues. Chaque adresse doit respecter le protocole HTTPS canonique du site. Vérifiez aussi les dates de dernière modification. Une date fiable décrit une modification éditoriale réelle, elle ne doit pas être changée à chaque visite pour forcer un crawl.

Contrôlez un échantillon de pages listées : articles, pages, catégories et éventuellement images. Les réponses doivent être accessibles sans cookie, sans authentification et sans redirection inutile. Une page supprimée ne doit pas rester dans l’index XML. Si elle possède une remplaçante, utilisez une redirection permanente et mettez à jour le maillage.

Pour un contrôle global, l’audit WordPress avec WP Doctor peut compléter les vérifications de configuration, de performance et de SEO. L’important est de traiter le sitemap comme une sortie de votre architecture éditoriale. Il doit refléter les pages que vous assumez, pas toutes les URL que WordPress sait techniquement générer.

# Contrôle simple des URL listées
python3 - <<'PY'
import requests
from bs4 import BeautifulSoup
xml = requests.get('https://exemple.fr/sitemap_index.xml', timeout=15).text
soup = BeautifulSoup(xml, 'xml')
for loc in soup.find_all('loc')[:20]:
    r = requests.get(loc.text, allow_redirects=True, timeout=15)
    print(r.status_code, r.url)
PY

FAQ sur un sitemap WordPress 404

Quelle est l’URL du sitemap natif WordPress ?

L’URL du sitemap natif WordPress est généralement https://votre-domaine.tld/wp-sitemap.xml. Elle peut différer si une extension SEO active génère son propre index, par exemple /sitemap_index.xml. Testez les deux adresses et conservez un seul générateur principal.

Pourquoi sitemap_index.xml renvoie 404 alors que WordPress fonctionne ?

Le site peut fonctionner tout en ayant une règle de réécriture, une extension SEO ou un cache mal configuré. Réenregistrez les permaliens, vérifiez l’extension qui génère le sitemap, purgez les caches et testez la réponse avec curl pour identifier la couche qui produit le 404.

Faut-il créer un fichier sitemap.xml à la main ?

Non, pas dans une installation WordPress standard. Le sitemap natif ou l’extension SEO le génère automatiquement et le maintient à jour. Un fichier statique peut masquer temporairement l’erreur, mais il risque rapidement de contenir des URL obsolètes.

Combien de temps Google met-il à valider un sitemap réparé ?

Google peut récupérer un sitemap corrigé en quelques heures, mais le délai varie selon le site et son rythme de crawl. Vérifiez d’abord que l’URL répond 200 et que le XML est valide, puis consultez le rapport Sitemaps après une nouvelle récupération.

Un sitemap 404 empêche-t-il toutes les pages d’être indexées ?

Non. Google peut découvrir des pages grâce aux liens internes, aux liens externes et à d’autres sources. Un sitemap 404 réduit toutefois la qualité de votre signal de découverte et complique le suivi. Il faut le corriger, sans confondre ce problème avec une garantie d’indexation.

Sources utiles : documentation Google sur les sitemaps, aide Search Console sur les sitemaps, documentation Bing Webmaster Tools, documentation WordPress, documentation WordPress sur le SEO, guide Google sur l’exploration et l’indexation.

G
WP Admin Lab

Architecte web full-stack. WordPress, performance, data et sécurité. Notes de terrain, tests reproductibles et retours d'expérience.