Sitemap XML PrestaShop : la générer et la soumettre à Google

Un sitemap XML PrestaShop est un fichier qui liste les adresses de vos produits, catégories et pages CMS, et qui indique à Google ce que contient votre boutique et quand cela a changé. En bref : générez-le avec le module gratuit gsitemap ou un module dédié, déclarez-le dans le robots.txt, soumettez-le une seule fois dans Google Search Console et faites-le régénérer chaque jour par une tâche CRON. Voici le contenu attendu, les langues, le multiboutique et les erreurs à éviter.

Qu'est-ce qu'un sitemap et une boutique PrestaShop en a-t-elle besoin ?

Un sitemap est un fichier XML (format sitemaps.org). Chaque entrée contient l'adresse d'une page (loc) et, en option, la date de sa dernière modification (lastmod). Google le lit comme une indication : quelles URL vous jugez importantes et lesquelles méritent d'être explorées à nouveau.

Un petit site bien maillé peut s'en passer. Une boutique, non :

  • elle compte des milliers de produits, souvent enfouis loin dans les catégories,
  • les prix, les stocks et les descriptions changent tous les jours,
  • les nouveaux produits n'ont encore aucun lien externe,
  • elle fonctionne souvent en plusieurs langues.

Le sitemap aide alors Google à découvrir les nouveaux produits et à repérer les changements. Mais un sitemap ne garantit pas l'indexation : les pages pauvres ou dupliquées peuvent toujours être ignorées.

Que doit contenir un sitemap XML PrestaShop ?

La règle est simple : n'y mettez que les URL que vous voulez voir dans les résultats de Google. Chacune doit renvoyer un code 200, ne pas rediriger, ne pas porter de balise noindex et être l'adresse canonique.

Type de page Dans le sitemap ? Remarques
Produits actifs oui le cœur du sitemap, avec lastmod et images
Catégories oui sans les URL de filtres et de tri
Pages CMS oui CGV et confidentialité ne gênent pas, mais ne sont pas prioritaires
Marques et fournisseurs selon la boutique seulement si ces pages ont un vrai contenu, pas une simple liste
Panier, connexion, compte, commande non ces pages sont de toute façon bloquées dans le robots.txt
Résultats de recherche, filtres, pagination avec paramètres non ils créent des milliers d'URL presque identiques
Produits désactivés ou supprimés non ils renvoient une 404 ou une redirection

Quelques détails techniques utiles :

  • Un fichier peut contenir au maximum 50 000 URL et 50 Mo non compressés. Les grosses boutiques découpent le sitemap en plusieurs fichiers réunis par un fichier d'index (sitemap index), et c'est ce fichier que l'on soumet à Google.
  • Google ignore les champs priority et changefreq. Inutile de passer du temps à les régler.
  • Le champ lastmod compte, mais seulement s'il est fiable. Si toutes les URL affichent toujours la date du jour, Google cesse de s'y fier.
  • Les photos produits peuvent être ajoutées sous forme de sitemap d'images (image:image), utile pour Google Images. Depuis 2022, Google n'en lit que l'adresse : légendes et titres du sitemap sont ignorés.

Si vous changez le format de vos liens, par exemple en retirant les identifiants, régénérez le sitemap juste après. Notre guide pour supprimer les ID des URL PrestaShop explique comment le faire sans perdre vos positions.

Comment générer un sitemap avec le module gsitemap ?

PrestaShop propose un module gratuit, Google sitemap (nom technique gsitemap). Selon votre version, il se trouve déjà dans le dossier des modules ou se télécharge depuis le dépôt GitHub officiel de PrestaShop.

  1. Allez dans Modules > Gestionnaire de modules, cherchez gsitemap, cliquez sur Installer puis sur Configurer.
  2. Choisissez la fréquence de mise à jour (changefreq) : Google l'ignore, la valeur importe peu.
  3. Décochez les pages que vous ne voulez pas dans le sitemap (par exemple contact, nouveaux produits ou promotions, si elles ne comptent pas pour vous dans la recherche).
  4. Cliquez sur Générer un sitemap. Avec un gros catalogue, cela prend quelques minutes ; le module écrit les fichiers par lots.
  5. Le haut de la page de configuration affiche ensuite l'adresse du fichier principal, par exemple https://votreboutique.fr/1_index_sitemap.xml. C'est cette URL que vous soumettrez à Google.

Le module écrit ses fichiers à la racine de la boutique (PHP doit pouvoir y écrire), nommés par boutique et par langue, par exemple 1_fr_0_sitemap.xml. Il reprend les produits actifs et visibles, les catégories actives, les pages CMS indexables et les images des produits.

Module gsitemap ou module de sitemap dédié ?

Pour une petite boutique monolingue, gsitemap suffit généralement. Ses limites apparaissent avec un gros catalogue ou plusieurs marchés :

Besoin gsitemap Module dédié
Produits, catégories, CMS, images oui oui
Sitemaps séparés par langue oui, dans les noms de fichiers oui, et par type de contenu
Sitemaps séparés par boutique en multiboutique oui, une génération par boutique oui
Découpage par type de contenu (produits, catégories, CMS) non, tout dans une même série de fichiers selon le module
Gros catalogues (des dizaines de milliers de produits) génère par lots via des redirections, parfois lent selon le module

Des sitemaps séparés par type de contenu montrent dans la Search Console quelle part de vos seuls produits est indexée.

Si gsitemap ne suffit plus pour votre catalogue, choisissez un module dédié avec soin : vérifiez qu'il sépare les sitemaps par type de contenu, qu'il tourne par CRON et qu'il tient la charge avec votre nombre de produits.

Comment gérer plusieurs langues et le multiboutique ?

Plusieurs langues dans une boutique. Chaque version linguistique a ses propres URL (par exemple /fr/, /en/) et doit donc avoir ses propres entrées dans le sitemap. gsitemap comme les modules dédiés créent des fichiers séparés par langue et les regroupent dans un fichier d'index. Les liens entre versions linguistiques (hreflang) sont placés dans l'en-tête des pages par les thèmes Classic et Hummingbird : inutile de les répéter dans le sitemap. Vérifiez quand même que votre thème n'a pas supprimé ce bloc.

Multiboutique. Chaque boutique a son propre fichier d'index (1_index_sitemap.xml, 2_index_sitemap.xml, etc.). Si les boutiques tournent sur des domaines différents, chaque domaine est une propriété distincte dans Google Search Console, et dans chacune vous soumettez uniquement le sitemap de la boutique concernée, sur son propre domaine. Dans gsitemap, sélectionnez la bonne boutique (sélecteur en haut du back-office) avant de générer, car le module travaille sur la boutique courante.

Attention : le sitemap d'une boutique ne doit pas contenir d'URL du domaine d'une autre boutique. Google n'accepte un sitemap que si ses URL appartiennent à la propriété dans laquelle vous le soumettez (sauf s'il est déclaré dans le robots.txt du domaine concerné).

Comment soumettre son sitemap dans Google Search Console ?

  1. Ajoutez votre boutique dans Google Search Console comme propriété de type domaine (tous les protocoles et sous-domaines) ou préfixe d'URL, puis validez la propriété.
  2. Allez dans Indexation > Sitemaps.
  3. Dans Ajouter un sitemap, saisissez l'adresse du fichier d'index, par exemple 1_index_sitemap.xml, et cliquez sur Envoyer.
  4. Après un moment, vous verrez un état et le nombre de pages découvertes. En cas d'échec de récupération, ouvrez l'URL en navigation privée et vérifiez qu'elle renvoie du XML, pas une erreur ni une redirection.
  5. Dans le rapport Pages, filtrez par votre sitemap pour voir quelles URL soumises ne sont pas indexées et pourquoi.

Un sitemap se soumet une seule fois. Google y revient de lui-même et lit les fichiers mis à jour lors de ses passages suivants. Déclarez-le aussi dans le robots.txt : dans Paramètres de la boutique > Trafic et SEO, section Génération du fichier robots.txt, cliquez sur Générer le fichier robots.txt. Dans PrestaShop 8 et 9, la boutique ajoute alors une ligne Sitemap: avec l'adresse du fichier d'index, à condition que le sitemap existe déjà. Bing le trouvera aussi ; vous pouvez également le soumettre dans Bing Webmaster Tools.

Et le « ping » à Google ? En 2023, Google a retiré son point d'accès de ping des sitemaps. Si un module ou un tutoriel vous demande de « pinger Google », sautez cette étape : elle ne sert plus à rien. Ce qui compte : un fichier à jour, des lastmod fiables et un sitemap soumis dans la Search Console ou déclaré dans le robots.txt.

Comment régénérer le sitemap automatiquement par CRON ?

Un sitemap généré une fois contient vite des produits supprimés et oublie les nouveaux : automatisez sa mise à jour.

La page de configuration de gsitemap affiche une URL CRON prête à l'emploi, avec un jeton, du type https://votreboutique.fr/module/gsitemap/cron?token=…. Dans le panneau de votre hébergement, ajoutez une tâche qui appelle cette URL une fois par jour, de préférence la nuit :

0 3 * * * curl -sL "https://votreboutique.fr/module/gsitemap/cron?token=VOTRE_JETON&id_shop=1" > /dev/null

  • L'option -L est importante : le module génère les gros sitemaps par lots et passe de l'un à l'autre par des redirections.
  • En multiboutique, ajoutez une tâche par boutique avec son propre id_shop.

Les erreurs fréquentes dans un sitemap PrestaShop

  • D'anciennes URL dans le sitemap. Après un changement de format des liens (par exemple après avoir supprimé les ID des URL), le sitemap pointe encore vers les anciennes URL redirigées. Régénérez-le dès le changement.
  • Des URL de filtres et de paramètres. Des milliers de variantes de catégories diluent le sitemap et font perdre du temps à Googlebot.
  • Un sitemap bloqué dans le robots.txt, ou un fichier inaccessible à cause d'une protection par mot de passe ou du mode maintenance.
  • Aucune mise à jour. Un vieux sitemap est plein de 404.
  • Attendre du sitemap qu'il positionne la boutique. Il aide Google à trouver les pages, mais leur apparence dans les résultats dépend du contenu et des données structurées. Les prix et les étoiles dans Google sont expliqués dans notre guide des données structurées PrestaShop.

Nous pouvons aussi configurer sitemaps, CRON et Search Console pour vous dans le cadre de travaux de développement.

Questions fréquentes

Où se trouve le sitemap de ma boutique PrestaShop ?

Avec le module gsitemap, le fichier d'index se trouve à la racine de la boutique et s'appelle 1_index_sitemap.xml (le chiffre est le numéro de la boutique). La configuration du module affiche l'URL exacte.

À quelle fréquence régénérer le sitemap ?

Une fois par jour par CRON suffit à la plupart des boutiques. L'essentiel : les dates lastmod ne doivent changer que si le produit a réellement changé.

Faut-il soumettre à nouveau le sitemap après chaque modification ?

Non. Vous le soumettez une fois et Google y revient seul. Une nouvelle soumission n'a de sens que si l'adresse du fichier change, par exemple après un changement de module.

Pourquoi Google indexe-t-il moins de pages que mon sitemap n'en contient ?

Le sitemap n'est qu'une indication. Google écarte les pages dupliquées, très semblables ou de faible valeur, ainsi que les URL redirigées ou en noindex. Vous trouverez les raisons pour chaque URL dans le rapport Pages filtré par votre sitemap.

Boutique multilingue ou multiboutique ? Contactez-nous, nous vous aiderons à configurer vos sitemaps.

Produits de cet article

Retour : Blog

Chargement...
Retour en haut