On a tendance à l’oublier, mais WordPress n’impose pas nécessairement l’utilisation de plugins pour générer un fichier sitemap. Pourtant, ce petit fichier XML peut être géré à la main, avec une grande précision, pour indiquer aux moteurs de recherche quelles pages de votre site doivent être explorées. C’est une méthode idéale pour ceux qui souhaitent une maîtrise totale de leur SEO technique, sans surcharge de fonctionnalités inutiles.
- Comprendre le rôle et la structure du sitemap.xml
- Où et comment créer son fichier sitemap.xml sur WordPress
- Générer automatiquement un fichier sitemap.xml en PHP avec WordPress
- Structurer correctement son sitemap.xml
- Créer un sitemap index si vous avez plusieurs fichiers
- Soumettre son sitemap aux moteurs de recherche
- Pour conclure avec la création manuelle d’un fichier sitemap sur WP
Comprendre le rôle et la structure du sitemap.xml
Le fichier sitemap.xml
est un plan de site destiné aux robots d’indexation. Il ne sert pas à la navigation des utilisateurs, mais bien à améliorer le crawl d’un site. Son rôle est d’indiquer quelles URLs sont accessibles, quand elles ont été modifiées, et à quelle fréquence elles changent.
Ce format a été normalisé en 2005 par Google, puis adopté par Yahoo, Bing et d’autres moteurs. Il repose sur le XML, un métalangage dérivé du SGML, très utilisé dans les échanges de données.
Voici un exemple de base de fichier sitemap.xml :
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://votresite.com/</loc>
<lastmod>2025-04-20</lastmod>
<changefreq>weekly</changefreq>
<priority>1.0</priority>
</url>
</urlset>
Chaque balise <url>
contient :
<loc>
: l’URL absolue de la page, obligatoire.<lastmod>
: la date de dernière modification (au format W3C :AAAA-MM-JJ
).<changefreq>
: une indication sur la fréquence de mise à jour (daily, weekly, monthly…).<priority>
: une note entre 0.0 et 1.0 indiquant l’importance relative.
Le fichier doit respecter une syntaxe XML stricte : pas de balises mal fermées, pas de guillemets oubliés, et un encodage UTF-8 impératif.
Où et comment créer son fichier sitemap.xml sur WordPress
Pour mettre en place un fichier sitemap.xml
personnalisé sur un site WordPress, vous pouvez opter pour une création manuelle à l’aide d’un éditeur de texte adapté aux fichiers structurés. Parmi les plus populaires : Visual Studio Code, Notepad++ ou Sublime Text. Ces outils offrent notamment une coloration syntaxique utile pour vérifier rapidement la validité de votre XML.
Créez un nouveau fichier texte vierge, copiez-y votre structure de sitemap (générée manuellement ou via un script PHP comme vu plus haut), puis enregistrez-le sous le nom exact sitemap.xml
en vous assurant que l’encodage soit bien en UTF-8
sans BOM.
Où placer le fichier sitemap.xml ?
Une fois votre fichier prêt, il doit être placé à la racine de votre installation WordPress, soit :
/public_html/
(très courant chez les hébergeurs mutualisés)/www/
ou parfois directement à la racine du FTP selon la configuration de votre hébergeur
Cette position est essentielle car elle permet aux moteurs de recherche d’y accéder facilement sans avoir à explorer profondément la structure de votre site.
Une fois en ligne, il doit être accessible à cette adresse :
https://votresite.com/sitemap.xml
Pour faciliter encore l’exploration par les bots, pensez à déclarer son emplacement dans votre fichier robots.txt
à l’aide de cette ligne :
Sitemap: https://votresite.com/sitemap.xml
Vous pouvez également soumettre manuellement votre sitemap à la Google Search Console, à Bing Webmaster Tools ou aux autres outils destinés aux webmasters, afin d’en accélérer la prise en compte par les moteurs.
Générer automatiquement un fichier sitemap.xml en PHP avec WordPress
Si vous souhaitez créer un fichier sitemap.xml
personnalisé sans passer par une extension comme Yoast ou Rank Math, vous pouvez le faire en codant une solution légère et automatisée directement en PHP. Cela permet de garder un contrôle total sur les URLs indexées, tout en respectant la structure exigée par Google et consorts.
1. Où placer votre script ?
Vous pouvez créer un fichier appelé sitemap.php
à la racine de votre site WordPress ou dans un sous-dossier de votre thème enfant. Ce fichier devra être accessible publiquement (par exemple : https://monsite.com/sitemap.php
) et configuré pour renvoyer du XML.
2. Le code PHP pour générer dynamiquement un sitemap
Voici un exemple de script PHP que vous pouvez adapter :
<?php
header('Content-Type: application/xml; charset=utf-8');
// Initialisation du XML
echo '<?xml version="1.0" encoding="UTF-8"?>';
echo '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">';
// Récupération des posts et pages
$args = array(
'post_type' => array('post', 'page'),
'post_status' => 'publish',
'posts_per_page' => -1
);
$posts = get_posts($args);
// Boucle sur les contenus
foreach ($posts as $post) {
$url = get_permalink($post->ID);
$lastmod = get_the_modified_time('c', $post);
echo '<url>';
echo '<loc>' . esc_url($url) . '</loc>';
echo '<lastmod>' . $lastmod . '</lastmod>';
echo '<changefreq>weekly</changefreq>';
echo '<priority>0.8</priority>';
echo '</url>';
}
// Vous pouvez ajouter ici d'autres types de contenus personnalisés (CPT)
echo '</urlset>';
?>
3. Rendez ce fichier accessible depuis robots.txt
Ajoutez cette ligne dans votre robots.txt
pour signaler le fichier aux moteurs :
Sitemap: https://www.monsite.com/sitemap.php
4. Variantes et évolutions possibles
Une fois la base de votre sitemap.xml
posée, plusieurs optimisations avancées peuvent être envisagées pour mieux répondre aux besoins spécifiques de votre site WordPress. Voici les variantes les plus courantes, particulièrement utiles sur les projets multilingues, e-commerce ou éditoriaux :
- Ajouter les
<xhtml:link hreflang
pour les versions multilingues : si vous proposez plusieurs versions linguistiques de vos pages, vous pouvez déclarer explicitement ces variantes dans le sitemap. Cela améliore la compréhension du ciblage géographique et linguistique par Google, surtout si vous utilisez les balises hreflang. Il faudra au préalable spécifier l’espace de noms XHTML dans la balise<urlset> ;
- Inclure les Custom Post Types (CPT) : WordPress permet de créer des types de contenus personnalisés. Si vous gérez un site WooCommerce, vos produits sont un CPT. Il en va de même pour les témoignages clients, les portfolios ou les événements. Un sitemap performant doit aussi intégrer ces contenus, en filtrant ceux ayant le statut
publish
uniquement ; - Filtrer les URLs selon des critères avancés : vous pouvez générer un sitemap contenant uniquement les contenus publiés après une certaine date, appartenant à une catégorie spécifique, ou encore écrits par un auteur donné. Cela peut être utile pour segmenter les sitemaps dans le cas d’un site média ou multi-auteurs. Ce filtrage peut être fait via des requêtes SQL personnalisées ou en PHP avec
WP_Query ;
- Générer plusieurs sitemaps et les indexer : pour les sites de grande taille, il est recommandé de répartir les URLs dans plusieurs fichiers. Par exemple :
sitemap-pages.xml
pour les pages statiquessitemap-articles.xml
pour les articles du blogsitemap-produits.xml
pour les fiches WooCommercesitemap-en.xml
etsitemap-fr.xml
pour chaque langue
Vous créerez alors un fichier index principal nommé
sitemap.xml
qui liste les sous-sitemaps ainsi :<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <sitemap> <loc>https://www.votresite.com/sitemap-pages.xml</loc> </sitemap> <sitemap> <loc>https://www.votresite.com/sitemap-articles.xml</loc> </sitemap> </sitemapindex>
Cela facilite l’exploration pour les bots et respecte la limite des 50 000 URLs ou 50 Mo par fichier.
Pour aller plus loin dans l’automatisation, vous pouvez également planifier la génération des fichiers sitemap via WP-Cron ou une tâche CRON côté serveur, afin qu’ils soient régénérés automatiquement après l’ajout ou la suppression de contenus.
5. Pourquoi cette méthode ?
Cette solution a l’avantage d’être 100 % maîtrisée, sans plugin, rapide à charger et totalement personnalisable. Elle est particulièrement utile pour les développeurs ou les intégrateurs souhaitant garder la main sur le SEO technique de leurs projets WordPress.
Et si vous souhaitez aller encore plus loin, pensez à automatiser la mise à jour régulière de ce fichier via un cron WordPress pour toujours refléter les dernières modifications de vos contenus.
Structurer correctement son sitemap.xml
Un fichier sitemap.xml
bien structuré ne se contente pas d’énumérer des URLs : il respecte un ensemble de règles strictes destinées à optimiser le crawl et éviter les erreurs d’indexation. Voici les bonnes pratiques fondamentales à adopter :
- Limiter le nombre d’URLs à 50 000 par fichier ou 50 Mo (non compressé) : au-delà, les moteurs ne liront pas la suite. En cas de dépassement, il faudra générer plusieurs fichiers et les référencer dans un
sitemap index
. - Respecter les URLs canoniques : ne mélangez pas les versions avec ou sans slash final (
/page
≠/page/
) ou HTTP/HTTPS. Utilisez toujours la version officielle de vos permaliens. La cohérence d’URL est un signal technique de qualité. - Ne pas inclure d’URLs bloquées : les URLs en
noindex
ou désignées dans le fichierrobots.txt
commeDisallow
n’ont pas à figurer ici. Cela crée un conflit logique et gaspille le budget crawl. - Échapper correctement les caractères spéciaux : utilisez toujours les entités XML comme :
&
pour&
"
pour les guillemets<
et>
pour<
et>
Un oubli dans l’encodage XML entraînera l’invalidité totale du fichier.
Créer un sitemap index si vous avez plusieurs fichiers
Un sitemap index
est un fichier XML qui référence d’autres fichiers sitemap.xml
. Il est indispensable dès que vous atteignez un volume élevé de contenus, comme dans les cas suivants :
- Sites e-commerce avec plusieurs milliers de produits,
- Blogs de presse à fort historique éditorial,
- Sites multilingues avec un sitemap par langue ou par catégorie.
Voici un exemple concret :
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap>
<loc>https://votresite.com/sitemap-pages.xml</loc>
<lastmod>2025-04-20</lastmod>
</sitemap>
<sitemap>
<loc>https://votresite.com/sitemap-articles.xml</loc>
<lastmod>2025-04-20</lastmod>
</sitemap>
</sitemapindex>
Chaque fichier enfant (sitemap-pages.xml
, sitemap-articles.xml
, etc.) suit la même structure que le fichier sitemap.xml
principal, avec les balises <url>
, <loc>
, <lastmod>
, etc.
Ces fichiers peuvent être créés manuellement pour les petites structures ou générés dynamiquement via un script PHP, Python ou un plugin sur mesure. Un automatisme avec WP-CLI
ou wp-cron
permettrait même de régénérer ces fichiers à intervalles réguliers.
Soumettre son sitemap aux moteurs de recherche
Une fois vos fichiers hébergés sur le serveur (de préférence à la racine), vous devez en informer les moteurs de recherche. Trois canaux principaux sont à votre disposition :
- Google Search Console : connectez-vous à votre propriété, accédez au menu « Sitemaps » et collez l’URL complète du fichier (par ex.
https://votresite.com/sitemap.xml
). - Bing Webmaster Tools : la logique est identique à celle de Google ; une fois la propriété vérifiée, vous pouvez soumettre un ou plusieurs fichiers.
- Votre fichier
robots.txt
: ajoutez à la fin du fichier la ligne suivante, quel que soit le nombre de sitemaps :Sitemap: https://votresite.com/sitemap.xml
Cela permet à tous les moteurs respectueux de la norme de le détecter automatiquement.
Attention : soumettre un sitemap ne garantit pas que les pages seront indexées. C’est uniquement une invitation au crawl. L’indexation dépendra de la qualité du contenu, de la structure du site et des signaux SEO (liens internes, vitesse de chargement, originalité du texte, etc.).
Pour conclure avec la création manuelle d’un fichier sitemap sur WP
Créer manuellement un fichier sitemap.xml sur WordPress n’est ni complexe ni chronophage si l’on a une vision claire de la structure du site. C’est aussi une excellente occasion de faire un audit rapide de vos pages importantes, de mieux comprendre votre architecture, et de signaler aux moteurs ce qui compte réellement.
Cette méthode évite la dépendance aux plugins, réduit la charge serveur, et garantit un fichier conforme à votre stratégie SEO. Pour aller plus loin, vous pouvez combiner cette technique avec la génération automatique via plugin ou par script Python, selon vos besoins d’automatisation.
Et vous, avez-vous déjà construit votre sitemap à la main ?
0 commentaires