Advanced SEO Sitemap Builder – Documentation
Advanced SEO Sitemap Builder crée des sitemaps XML à partir de votre véritable catalogue PrestaShop et vérifie les URLs avant leur envoi aux moteurs de recherche. Il aide à concentrer l’indexation sur des pages actives et explorables, plutôt que sur des pages cassées, redirigées, canonicalisées ou marquées noindex.
Fonctionnalités
- Découverte des URLs du catalogue. Ajoute la page d’accueil, les produits actifs, les catégories actives, les pages CMS actives, ainsi que les URLs de fabricants, fournisseurs et pages core en option.
- Vérification des URLs. Vérifie le statut HTTP,
X-Robots-Tag, les balises meta robots et les balises canonical avant d’écrire une URL dans le sitemap XML. - Entrées sitemap pour les images produit. Ajoute des entrées
<image:image>pour les images produit lorsque la prise en charge des sitemaps d’images est activée. - Sortie hreflang multilingue. Écrit des entrées
xhtml:link rel="alternate"pour les entités correspondantes dans les langues actives de la boutique. - Règles personnalisées d’inclusion et d’exclusion. Vous permet d’ajouter manuellement des landing pages ou d’exclure du sitemap des URLs exactes et des motifs wildcard par préfixe.
- Fichiers sitemap fractionnés. Écrit des fichiers sitemap numérotés et un index de sitemap, avec une valeur par défaut de 50 000 URLs par fichier et une limite de taille de 50 Mo.
- Tableau de bord de génération dans le Back Office. Affiche le dernier statut de génération, les URLs incluses, les URLs ignorées, les erreurs, les fichiers générés, la durée, l’URL du sitemap et l’URL cron.
- Écrans d’audit des URLs et des logs. Enregistre chaque URL avec son statut, son code HTTP, son URL canonical, son indicateur noindex, la raison d’exclusion et la date de vérification.
- Régénération cron sécurisée. Fournit un front controller protégé par token afin que le planificateur de votre serveur puisse régénérer le sitemap.
- Sitemap HTML et flux RSS optionnel. Peut afficher un sitemap HTML en front-office à partir des URLs vérifiées et générer un flux RSS avec les dernières URLs vérifiées.
- Hooks d’intégration. Lit les URLs fournies par des modules via
gSitemapAppendUrlset déclenche des hooks de génération de sitemap pour les intégrations personnalisées.
Options de configuration
Définissez ces options dans les onglets de configuration du module : Content, Options, Crawler et Security.
- Products (
MPRSITEMAPBUILDER_INCLUDE_PRODUCTS). Inclut les produits actifs dont la visibilité estboth,searchoucatalog; valeur par défaut :1. - Categories (
MPRSITEMAPBUILDER_INCLUDE_CATEGORIES). Inclut les catégories actives, à l’exception de la catégorie racine et de la catégorie d’accueil ; valeur par défaut :1. - CMS Pages (
MPRSITEMAPBUILDER_INCLUDE_CMS). Inclut les pages CMS actives ; valeur par défaut :1. - Manufacturers (
MPRSITEMAPBUILDER_INCLUDE_MANUFACTURERS). Inclut les pages de fabricants actives ; valeur par défaut :0. - Suppliers (
MPRSITEMAPBUILDER_INCLUDE_SUPPLIERS). Inclut les pages de fournisseurs actives ; valeur par défaut :0. - Core Pages (
MPRSITEMAPBUILDER_INCLUDE_CORE_PAGES). Inclut les pages core PrestaShop prises en charge ; dans la source actuelle, ce fournisseur émet la page de contact ; valeur par défaut :1. - Homepage priority (
MPRSITEMAPBUILDER_PRIORITY_HOME). Définit la priorité sitemap de la page d’accueil ; valeur par défaut :1.0. - Product priority (
MPRSITEMAPBUILDER_PRIORITY_PRODUCT). Définit la priorité sitemap des URLs produit ; valeur par défaut :0.8. - Category priority (
MPRSITEMAPBUILDER_PRIORITY_CATEGORY). Définit la priorité sitemap des URLs de catégorie ; valeur par défaut :0.7. - CMS priority (
MPRSITEMAPBUILDER_PRIORITY_CMS). Définit la priorité sitemap des URLs CMS ; valeur par défaut :0.5. - Manufacturer priority (
MPRSITEMAPBUILDER_PRIORITY_MANUFACTURER). Définit la priorité sitemap des URLs de fabricant ; valeur par défaut :0.4. - Supplier priority (
MPRSITEMAPBUILDER_PRIORITY_SUPPLIER). Définit la priorité sitemap des URLs de fournisseur ; valeur par défaut :0.3. - Core page priority (
MPRSITEMAPBUILDER_PRIORITY_CORE_PAGE). Définit la priorité sitemap des URLs de pages core prises en charge ; valeur par défaut :0.3. - Homepage frequency (
MPRSITEMAPBUILDER_FREQUENCY_HOME). Définit la valeurchangefreqde la page d’accueil ; valeur par défaut :daily. - Product frequency (
MPRSITEMAPBUILDER_FREQUENCY_PRODUCT). Définit la valeurchangefreqdes produits ; valeur par défaut :weekly. - Category frequency (
MPRSITEMAPBUILDER_FREQUENCY_CATEGORY). Définit la valeurchangefreqdes catégories ; valeur par défaut :weekly. - CMS frequency (
MPRSITEMAPBUILDER_FREQUENCY_CMS). Définit la valeurchangefreqdes pages CMS ; valeur par défaut :monthly. - Manufacturer frequency (
MPRSITEMAPBUILDER_FREQUENCY_MANUFACTURER). Définit la valeurchangefreqdes pages fabricant ; valeur par défaut :monthly. - Supplier frequency (
MPRSITEMAPBUILDER_FREQUENCY_SUPPLIER). Définit la valeurchangefreqdes pages fournisseur ; valeur par défaut :monthly. - Core page frequency (
MPRSITEMAPBUILDER_FREQUENCY_CORE_PAGE). Définit la valeurchangefreqdes pages core ; valeur par défaut :monthly. - Include image sitemaps (
MPRSITEMAPBUILDER_INCLUDE_IMAGES). Ajoute des entrées d’images produit aux enregistrements d’URLs produit et à la sortie XML ; valeur par défaut :1. - Include hreflang links (
MPRSITEMAPBUILDER_INCLUDE_HREFLANG). Ajoute des liens de langues alternatives pour les entités multilingues correspondantes ; valeur par défaut :1. - Verify URLs (
MPRSITEMAPBUILDER_VERIFY_URLS). Explore chaque URL candidate avant inclusion afin de détecter les réponses non-200, les directives noindex et les incohérences canonical ; valeur par défaut :1. - Split into multiple files (
MPRSITEMAPBUILDER_SPLIT_FILES). Affiché comme option de sortie fractionnée ; le writer actuel crée des fichiers sitemap numérotés selon les limites de fichiers ; valeur par défaut :1. - Generate HTML sitemap (
MPRSITEMAPBUILDER_GENERATE_HTML). Active la page de sitemap HTML en front-office à partir des URLs vérifiées ; valeur par défaut :1. - Generate RSS feed (
MPRSITEMAPBUILDER_GENERATE_RSS). Génère un fichier XML RSS à partir de 100 URLs vérifiées récemment modifiées au maximum ; valeur par défaut :0. - Ping Google after generation (
MPRSITEMAPBUILDER_PING_GOOGLE). Envoie l’URL de l’index du sitemap au point de terminaison ping de Google après la génération ; valeur par défaut :1. - Ping Bing after generation (
MPRSITEMAPBUILDER_PING_BING). Envoie l’URL de l’index du sitemap au point de terminaison ping de Bing après la génération ; valeur par défaut :1. - Concurrent Requests (
MPRSITEMAPBUILDER_CONCURRENT_REQUESTS). Définit les vérifications HTTP parallèles pendant la vérification, limitées en interne à 3 ; valeur par défaut :3. - Batch Delay (ms) (
MPRSITEMAPBUILDER_BATCH_DELAY_MS). Définit la pause entre les lots de vérification, avec un minimum imposé de 500 ms ; valeur par défaut :500. - Request Timeout (s) (
MPRSITEMAPBUILDER_REQUEST_TIMEOUT). Définit le timeout HTTP pour chaque requête de vérification, avec un minimum imposé de 3 secondes ; valeur par défaut :10. - Reuse Validation For (
MPRSITEMAPBUILDER_VALIDATION_REUSE_DAYS). Réutilise les résultats de validation récents pour les URLs inchangées lorsque le prevalidator partagé est disponible ; valeur par défaut :30. - HTTP Spot-check Sample (
MPRSITEMAPBUILDER_VALIDATION_SAMPLE_PERCENT). Garde ce pourcentage d’URLs autrement réutilisables en attente pour une vraie validation HTTP ; valeur par défaut :2. - Max URLs per File (
MPRSITEMAPBUILDER_MAX_URLS_PER_FILE). Définit le nombre maximal d’URLs par fichier sitemap généré ; valeur par défaut :50000. - Minimum Interval Between Generations (s) (
MPRSITEMAPBUILDER_MIN_INTERVAL). Ignore les requêtes cron déclenchées trop tôt après la dernière génération terminée ; valeur par défaut :3600. - Cron Token (
MPRSITEMAPBUILDER_CRON_TOKEN). Protège le point de terminaison cron et peut être régénéré depuis l’onglet Security ; valeur par défaut :generated random 32-character hex token.
Exemples de personnalisation
Ajoutez une ligne sitemap standard à robots.txt :
Sitemap: https://your-store.com/module/mprsitemapbuilder/sitemap
Redirigez une requête racine /sitemap.xml vers l’URL du sitemap du module si vous souhaitez utiliser le chemin racine habituel :
RewriteRule ^sitemap\.xml$ /module/mprsitemapbuilder/sitemap [R=302,L]
Utilisez une tâche cron serveur pour régénérer le sitemap avec l’URL protégée par token affichée dans le tableau de bord du module :
0 * * * * curl -fsS "https://your-store.com/module/mprsitemapbuilder/cron?token=YOUR_CRON_TOKEN" >/dev/null
Ajoutez des URLs depuis un autre module avec le format de hook sitemap natif de PrestaShop :
public function hookGSitemapAppendUrls(array $params)
{
return [
[
'link' => $this->context->link->getModuleLink($this->name, 'post', ['id_post' => 123]),
'lastmod' => date('Y-m-d H:i:s'),
'priority' => 0.5,
'changefreq' => 'weekly',
],
];
}
Réagissez après la génération d’un sitemap :
public function hookActionMprSitemapGenerated(array $params)
{
$generationId = (int) $params['id_generation'];
$included = (int) $params['total_included'];
$skipped = (int) $params['total_skipped'];
// Store your own report, notify your team, or trigger an external job.
}
Utilisez des règles d’URL personnalisées dans Sitemap URLs pour les inclusions et exclusions manuelles :
Include: https://your-store.com/landing-page
Exclude: https://your-store.com/private-page
Exclude: https://your-store.com/search?*
Exclude: https://your-store.com/module/example/*
Exemples d’entrées XML générées par le module :
<url>
<loc>https://your-store.com/example-product.html</loc>
<lastmod>2026-06-16</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
<image:image>
<image:loc>https://your-store.com/123-large_default/product.jpg</image:loc>
<image:title>Product name</image:title>
</image:image>
<xhtml:link rel="alternate" hreflang="en" href="https://your-store.com/en/example-product.html" />
<xhtml:link rel="alternate" hreflang="fr" href="https://your-store.com/fr/exemple-produit.html" />
</url>
Installation
- Dans votre Back Office PrestaShop, allez dans Modules → Module Manager.
- Cliquez sur Upload a module et sélectionnez le fichier ZIP du module.
- Après l’installation, cliquez sur Configure.
- Ouvrez Sitemap Builder dans le menu du Back Office.
- Vérifiez les types de contenu inclus et les paramètres du crawler.
- Cliquez sur Generate Sitemap pour créer le premier sitemap.
- Soumettez l’URL du sitemap affichée dans le tableau de bord à Google Search Console et Bing Webmaster Tools.
Fonctionnement
Lorsque vous générez un sitemap, le module crée un enregistrement de génération, découvre les URLs candidates pour la boutique actuelle et les langues actives, vérifie les URLs en attente si la vérification est activée, écrit les fichiers XML dans /modules/mprsitemapbuilder/sitemaps/, puis exécute les actions post-génération comme les pings aux moteurs de recherche et la création du RSS.
Dans le Back Office, vous voyez le dernier statut de génération, le nombre d’URLs par statut, le nombre de fichiers générés, la durée, l’URL publique du sitemap, l’URL cron, les règles d’URL personnalisées, la liste actuelle des URLs et les logs d’exclusion ou d’erreur.
L’URL principale publique du sitemap est :
https://your-store.com/module/mprsitemapbuilder/sitemap
Le module peut aussi servir les fichiers générés individuellement depuis le même front controller et ajoute cette balise d’en-tête lorsqu’un index de sitemap existe :
<link rel="sitemap" type="application/xml" title="Sitemap" href="https://your-store.com/module/mprsitemapbuilder/sitemap" />

Limites en toute transparence
- Le module ne crée pas automatiquement de fichier physique racine
/sitemap.xml; utilisez une redirection ou une entréerobots.txtsi vous souhaitez ce chemin. - Le fournisseur actuel de pages core inclut la page de contact, pas toutes les pages natives de PrestaShop.
- Si la vérification des URLs est désactivée, les URLs en attente sont marquées comme vérifiées sans contrôles HTTP, canonical ou noindex.
- Le cron n’est pas planifié automatiquement ; vous devez ajouter l’URL cron au planificateur de votre serveur ou à un planificateur externe.
- La page de sitemap HTML est marquée
noindex: elle sert à la navigation, pas de landing page SEO indexable. - Les pings aux moteurs de recherche ne sont que des notifications ; ils ne remplacent pas la soumission du sitemap dans Google Search Console et Bing Webmaster Tools.
- Les entrées d’images produit utilisent les images issues du fournisseur de produits ; les images CMS, catégories, fabricants et fournisseurs ne sont pas ajoutées comme entrées de sitemap d’images.
- La vérification effectue des requêtes HTTP depuis le serveur de votre boutique, donc les gros catalogues peuvent prendre du temps ; la concurrence est limitée et des pauses par lot sont imposées pour réduire la charge.
Questions fréquentes
Où se trouve mon sitemap après la génération ?
Le tableau de bord affiche l’URL publique. Elle est généralement :
https://your-store.com/module/mprsitemapbuilder/sitemap
Les fichiers XML générés sont stockés dans :
/modules/mprsitemapbuilder/sitemaps/
Le module crée-t-il /sitemap.xml ?
Non. Il sert le sitemap via son front controller de module. Vous pouvez ajouter une redirection ou une ligne sitemap dans robots.txt si vous voulez que les moteurs de recherche trouvent une URL de type racine.
Les produits en rupture de stock seront-ils inclus ?
La quantité en stock n’est pas utilisée comme condition d’exclusion. Les produits sont inclus lorsqu’ils sont actifs et que leur visibilité est both, search ou catalog.
Puis-je exclure une page du sitemap ?
Oui. Ajoutez une règle Exclude dans Sitemap URLs. Les URLs exactes sont prises en charge, ainsi que les wildcards par préfixe lorsque la règle se termine par *.
Puis-je inclure une landing page qui n’est pas découverte automatiquement ?
Oui. Ajoutez-la comme règle Include dans Sitemap URLs. Les URLs incluses manuellement utilisent une fréquence de changement hebdomadaire et la priorité sélectionnée dans le formulaire.
Pourquoi une URL a-t-elle été ignorée ?
Ouvrez Sitemap URLs ou Sitemap Logs. Le module enregistre des raisons telles que non_200, canonical_mismatch, noindex_meta, noindex_header, timeout et curl_error.
Que se passe-t-il avec plus de 50 000 URLs ?
Le writer crée des fichiers sitemap numérotés et un index de sitemap. Il vérifie aussi la limite de taille de fichier sitemap de 50 Mo pendant l’écriture.
Dois-je soumettre à nouveau le sitemap après chaque génération ?
Non. Soumettez l’URL du sitemap une seule fois, puis gardez la tâche cron active afin que les fichiers XML soient actualisés selon votre planning.
Compatibilité : PrestaShop 1.6 à 9.0 (dernière version), PHP 7.1+. Nous continuons à prendre en charge les futures versions de PrestaShop.