Comment créer manuellement un fichier sitemap.xml sur WordPress

Par Xavier Deloffre

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

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 statiques
    • sitemap-articles.xml pour les articles du blog
    • sitemap-produits.xml pour les fiches WooCommerce
    • sitemap-en.xml et sitemap-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 fichier robots.txt comme Disallow 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 :
    • &amp; pour &
    • &quot; pour les guillemets
    • &lt; et &gt; 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 ?

Xavier Deloffre

Xavier Deloffre

Voici une version professionnelle et structurée de ta présentation : --- **Fondateur de Facem Web**, agence implantée à Arras et à Lille (Hauts-de-France), je suis spécialiste du Web Marketing, formateur expérimenté, et blogueur reconnu dans le domaine du Growth Hacking. Passionné par le référencement naturel (SEO) que j'ai découvert en 2009, j'imagine et développe des outils web innovants afin d'optimiser la visibilité de mes clients dans les SERPs. Mon objectif principal : renforcer leur notoriété en ligne par des stratégies digitales efficaces et créatives.

0 commentaires

Soumettre un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Besoin de visibilité ?

☑️ Experts du référencement

☑️ + de 12 ans d’éxpérience

☑️ + 500 clients satisfaits

☑️ Création de sites

☑️ Audit SEO

☑️ Conseil SEO

☑️ Référencement de sites

☑️ Devis gratuit