{"id":758,"date":"2023-06-05T16:41:13","date_gmt":"2023-06-05T13:41:13","guid":{"rendered":"https:\/\/presta.site\/blog\/?p=758"},"modified":"2026-07-21T21:14:35","modified_gmt":"2026-07-21T18:14:35","slug":"what-is-sitemap-and-how-to-work-with-it-in-prestashop","status":"publish","type":"post","link":"https:\/\/presta.site\/blog\/en\/what-is-sitemap-and-how-to-work-with-it-in-prestashop\/","title":{"rendered":"PrestaShop Sitemap: Easy 6-Step Guide to Generate and Submit XML"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">A <strong>PrestaShop sitemap<\/strong> tells search engines which product, category, and CMS URLs matter on your store. Without one, Google still crawls links it finds, but larger catalogs and new pages often get discovered slower. This guide covers the XML sitemap for crawlers and the public Sitemap page for shoppers, plus how to generate, submit, and maintain the file.<\/p>\n\n\n<!--more-->\n\n\n<p class=\"wp-block-paragraph\">PrestaShop supports two different \u201csitemaps,\u201d and mixing them up causes confusion:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>XML sitemap<\/strong> &#8211; a machine-readable file (usually from the native Google Sitemap \/ gsitemap module) meant for Google, Bing, and other crawlers.<\/li>\n<li><strong>Sitemap page<\/strong> &#8211; an HTML page on the storefront that lists categories and CMS links for visitors. Useful for navigation; it does <em>not<\/em> replace the XML file.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">If crawl coverage is your goal, focus on the XML file first. Pair it with a clean <a href=\"https:\/\/presta.site\/blog\/en\/a-simple-guide-to-configuring-robots-txt-in-prestashop\/\">robots.txt setup in PrestaShop<\/a> so crawlers can reach the sitemap URL and the pages you want indexed.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Working with the XML PrestaShop sitemap<\/h2>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1679\" height=\"704\" src=\"https:\/\/presta.site\/blog\/wp-content\/uploads\/2023\/06\/Screenshot_2-2.png\" alt=\"PrestaShop sitemap module configuration for XML generation\" class=\"wp-image-759\" srcset=\"https:\/\/presta.site\/blog\/wp-content\/uploads\/2023\/06\/Screenshot_2-2.png 1679w, https:\/\/presta.site\/blog\/wp-content\/uploads\/2023\/06\/Screenshot_2-2-300x126.png 300w, https:\/\/presta.site\/blog\/wp-content\/uploads\/2023\/06\/Screenshot_2-2-1024x429.png 1024w, https:\/\/presta.site\/blog\/wp-content\/uploads\/2023\/06\/Screenshot_2-2-768x322.png 768w, https:\/\/presta.site\/blog\/wp-content\/uploads\/2023\/06\/Screenshot_2-2-1536x644.png 1536w\" sizes=\"auto, (max-width: 1679px) 100vw, 1679px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Generate the XML PrestaShop sitemap with the standard <strong>Google Sitemap<\/strong> module (technical name: <code class=\"codecolorer text default\"><span class=\"text\">gsitemap<\/span><\/code>). Steps:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Install<\/strong> Google Sitemap in the Back Office. If it is missing from the catalog, download a release from the official <a href=\"https:\/\/github.com\/PrestaShop\/gsitemap\/releases\" target=\"_blank\" rel=\"noopener noreferrer\">gsitemap GitHub releases<\/a>.<\/li>\n<li>Open the module configuration. On save or cron, it builds an XML file listing products, categories, manufacturers, CMS pages, and (when supported) module-created pages.<\/li>\n<li><strong>Submit<\/strong> the sitemap URL in <a href=\"https:\/\/developers.google.com\/search\/docs\/crawling-indexing\/sitemaps\/overview\" target=\"_blank\" rel=\"noopener noreferrer\">Google Search Console<\/a> (Sitemaps report), or reference it from robots.txt with a <code class=\"codecolorer text default\"><span class=\"text\">Sitemap:<\/span><\/code> line.<\/li>\n<li>On large catalogs, generating everything in one browser request can time out. Use the module\u2019s <strong>cron<\/strong> option so regeneration runs on a schedule instead of blocking the BO.<\/li>\n<li>In <strong>Configure your sitemap<\/strong>, include or exclude page types you do not want crawled (for example thin CMS pages or duplicate brand pages).<\/li>\n<li>If third-party modules add custom pages, check whether they hook into gsitemap or ship their own sitemap. Orphan URLs never appear in Search Console coverage if nothing lists them.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Where to find the sitemap URL<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">After generation, the module shows the sitemap index URL (often something like <code class=\"codecolorer text default\"><span class=\"text\">https:\/\/your-shop.com\/1_index_sitemap.xml<\/span><\/code> &#8211; the exact path depends on shop ID and module version). Copy that exact URL into Search Console. Re-submit only when the URL changes; daily regenerations do not require a new manual submit every time.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Friendly URLs and rewriting also affect whether listed links resolve cleanly. If products return 404 after a server move, fix rewriting before you chase sitemap settings &#8211; see <a href=\"https:\/\/presta.site\/blog\/en\/solving-prestashop-seo-url-rewriting-problems\/\">solving PrestaShop SEO URL rewriting problems<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The HTML Sitemap page in PrestaShop<\/h2>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1125\" height=\"467\" src=\"https:\/\/presta.site\/blog\/wp-content\/uploads\/2023\/06\/Screenshot_3-2.png\" alt=\"PrestaShop HTML sitemap page for storefront navigation\" class=\"wp-image-760\" srcset=\"https:\/\/presta.site\/blog\/wp-content\/uploads\/2023\/06\/Screenshot_3-2.png 1125w, https:\/\/presta.site\/blog\/wp-content\/uploads\/2023\/06\/Screenshot_3-2-300x125.png 300w, https:\/\/presta.site\/blog\/wp-content\/uploads\/2023\/06\/Screenshot_3-2-1024x425.png 1024w, https:\/\/presta.site\/blog\/wp-content\/uploads\/2023\/06\/Screenshot_3-2-768x319.png 768w\" sizes=\"auto, (max-width: 1125px) 100vw, 1125px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Besides XML, PrestaShop ships a public <strong>Sitemap<\/strong> CMS-style page that shows categories, account links, and CMS pages. It helps humans browse; it is not a substitute for the XML PrestaShop sitemap used by crawlers.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>You cannot fully redesign that page from the BO alone. Defaults usually group \u201cOur offers,\u201d categories, account links, and CMS pages. Deeper layout changes go in the theme template, typically <code class=\"codecolorer text default\"><span class=\"text\">\/themes\/YOUR_THEME_NAME\/templates\/cms\/sitemap.tpl<\/span><\/code>.<\/li>\n<li>Keep both: HTML for navigation, XML for discovery. Improving one does not remove the need for the other.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Maintenance checklist<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A one-time generate-and-forget habit is why many stores keep a stale PrestaShop sitemap full of outdated URLs. A short routine works better:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Regenerate on a schedule (cron) after catalog imports or bulk price\/status changes.<\/li>\n<li>Exclude noindex or private pages so the file stays honest.<\/li>\n<li>After major URL changes, confirm rewriting and then check Search Console for sitemap errors (not found, redirected, excluded).<\/li>\n<li>When you move hosts or change the domain, update the sitemap URL in Search Console and robots.txt.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">That is the practical loop: generate XML with gsitemap, submit the index URL once, keep cron + exclusions sane, and treat the HTML Sitemap page as a separate navigation aid &#8211; not as your crawling strategy.<\/p>\n\n","protected":false},"excerpt":{"rendered":"<p>Generate a PrestaShop sitemap with the Google Sitemap module, submit the XML URL in Search Console, and keep product and category pages discoverable.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[25],"tags":[],"class_list":["post-758","post","type-post","status-publish","format-standard","hentry","category-development"],"_links":{"self":[{"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/posts\/758","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/comments?post=758"}],"version-history":[{"count":8,"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/posts\/758\/revisions"}],"predecessor-version":[{"id":1903,"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/posts\/758\/revisions\/1903"}],"wp:attachment":[{"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/media?parent=758"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/categories?post=758"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/tags?post=758"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}