Guide : Ecommerce XML Sitemaps

Generic sitemap advice breaks bas at catalog scale. Ce is how to segment an ecommerce sitemap by type, stay sous the 50 000-URL/50MB limites with a sitemap index, decide ce que se produit to out-of-stock and discontinued product URLs, garder lastmod honest as inventory turns over daily, and pair sitemaps with IndexNow — plus pourquoi splitting by category is pour monitoring, pas budget d’exploration.

Première publication : 3 juil. 2026 · Dernière mise à jour : 3 août 2026 · Advanced
Langues
1 indice probant sur cette page

An ecommerce XML sitemap listes l’URL canoniques a store veut crawled, split by content type (products, categories, brands, static pages) sous un sitemap index. The hard limites vous design autour: 50 000 URLs / 50MB per fichier, up to 50 000 fichiers per index. Segmentation is pour monitoring in Search Console and Bing Webmaster Outils — pas a crawl-budget or ranking lever (Mueller). Seulement inclure canonical, indexable, 200-status URLs; garder lastmod honest to the dernier significant modifier and ignore priority/changefreq (Google ignores les deux). The differentiator la plupart guides skip is out-of-stock and discontinued products: handle les with a documented decision tree (permanent vs. temporary vs. unknown) and sync sitemap removal with internal-link cleanup, pas blanket 404s. Automate generation so the fichier jamais goes stale, and pair lastmod with IndexNow pour fast price/stock changements.

TL;DR — Segment an ecommerce sitemap by type (products / categories / brands / static) sous un sitemap index, and know pourquoi: it’s a monitoring outil pour Search Console and Bing Webmaster Outils, pas a crawl-budget or ranking lever (Mueller). The limites vous design autour: 50 000 URLs / 50MB per fichier, up to 50 000 fichiers per index, and — pour the enterprise ceiling — GSC accepts up to 500 sitemaps and Bing states its index model scales to billions of URLs. Seulement inclure canonical, indexable, 200-status URLs; exclude facets, tracking params, thin variants, redirections, 4xx, and noindex. lastmod is the seulement attribute les deux engines utiliser — garder it honest to the dernier significant modifier; ignore priority and changefreq (Google explicitly ignores les deux). Automate generation so the fichier jamais goes stale, and pair lastmod with IndexNow pour fast price/stock changements. The differentiator la plupart guides skip: out-of-stock and discontinued products besoin a documented decision tree (permanent vs. temporary vs. unknown), with sitemap removal synced to internal-link cleanup — pas blanket 404s.

Pourquoi generic sitemap advice breaks at catalog scale

Every “how to make a sitemap” article covers the même choses: the 50 000-URL limite, splitting into an index, excluding junk URLs, keeping lastmod accurate. That’s tout vrai, and none of it is où an ecommerce store en réalité struggles. The store-scale problems are operational: a catalog que turns over daily, out-of-stock and discontinued SKUs by the thousand, near-duplicate size/color variants, and automation que quietly arrête running. Ce piece assumes vous déjà have a sitemap and besoin to handle ceux.

The raison sitemaps earn leur garder plus as a store grows is straightforward. Google: “Généralement, on grand sites it’s plus difficult to assurez-vous que every page is lié by au moins un autre page on le site.” A sitemap is how vous assurez-vous a product that’s under-linked internally encore obtient découvert. John Mueller has appelé XML sitemaps “a minimal baseline for any serious website.” The Mueller “minimal baseline” line is relayed via Moteur de recherche Roundtable’s coverage of an X/Twitter reply; treat it as reported, pas a self-fetched principal quote.

The hard limites you’re designing autour

Le sitemap protocol caps a unique fichier and donne vous a sitemap index to obtenir past it:

  • Per fichier: Google — “Tout formats limite a unique sitemap to 50MB (uncompressed) or 50 000 URLs. Si vous have a plus grand fichier or plus URLs, vous doit break votre sitemap into multiple sitemaps.” Evidence for this claim Each Google sitemap file is limited to 50,000 URLs or 50 MB uncompressed. Scope: Protocol and Search Console submission limits are separate constraints. Confidence: high · Verified: Google: Large sitemaps
  • Sitemap index: “A sitemap index file may have up to 50,000 loc tags” — i.e. it peut référence up to 50 000 child sitemaps. Vous pouvez “submit up to 500 sitemap index fichiers pour chaque site in votre Search Console account.”
  • Bing’s stated ceiling is plus generous encore: up to 50 000 URLs per fichier and 50 000 child fichiers per index, so “a unique sitemap index fichier peut référence up to 2,5 billion URLs. At scale, multiple index fichiers peut prise en charge up to 2,5 trillion URLs à travers a domain, making ce approach ideal pour grand, complex sites.”

Pour nearly every store, the practical takeaway is: 50 000 URLs per fichier, split by type, un index. The billions/trillions figures seulement matter si you’re architecting pour tens of millions of SKUs — but ils tell vous the protocol ne va pas be votre bottleneck.

Segmentation strategy — and ce que it’s en réalité pour

Split the catalog into logical sitemap fichiers — products, categories/collections, brands, static/CMS pages — referenced by a unique index. Here’s the partie la plupart guides obtenir incorrect: ils imply que splitting le sitemap by type improves budget d’exploration or obtient plus pages indexé. It doesn’t. Mueller is explicit que ce is a diagnostic choice, pas a explorer lever:

  • “The size & number of sitemap fichiers généralement won’t affecter the exploration, unless votre serveur is so bogged bas que même fetching a handful of sitemap fichiers voudrait slow it bas…”
  • “I généralement recommend splitting a sitemap fichier into logical parts of votre site so que vous pouvez monitor ceux parts individually…” Les deux relayed via Moteur de recherche Journal’s report of a Reddit AMA; the split-for- monitoring point is the operative un.

So the payoff of a products sitemap separate from a categories sitemap is que GSC’s Sitemaps report and Bing Webmaster Outils montrer vous a submitted-vs-indexed ratio per segment. Quand “product pages” montre 40% indexé but “category pages” montre 95%, vous know exactly où to regarder. Segmentation surfaces the problem; it doesn’t fix it, and it doesn’t buy vous budget d’exploration.

Ce que belongs in le sitemap — and ce que doesn’t

Google’s rule is the whole filter: “Inclure l’URLs in votre sitemap que vous vouloir to voir in Google’s résultats de recherche. Google généralement montre l’URL canoniques in its search results, qui vous pouvez influence with sitemaps.” So a sitemap URL devrait be canonical, indexable, and retourner a 200. Evidence for this claim Google recommends listing the canonical URLs that a site wants shown in Search. Scope: Sitemap inclusion is a canonicalization hint and does not override noindex or response status. Confidence: high · Verified: Google: Build and submit a sitemap

Inclure: canonical product pages (PDPs), category/collection pages vous vouloir ranked, brand pages, indexable static pages.

Exclude:

  • Faceted / filtered / sorted URLs?sort=, ?color=, filter combinations. Ces belong in votre facet strategy (block or canonical), pas le sitemap. Joshua Hardwick’s Ahrefs sitemap guide flags the ecommerce-specific version of ce: it’s “worth checking pour duplicate and near-duplicate pages on ecommerce sites as ces souvent slip via the net.”
  • Session IDs and tracking parameters.
  • Redirections (3xx) and errors (4xx / 410) — a sitemap of redirection URLs is a sitemap of URLs you’re telling Google pas to montrer.
  • noindex pages — contradicting yourself (submit + noindex) simplement wastes crawls.
  • Thin near-duplicate variants. A separate size/color URL with aucun unique content shouldn’t be a separate sitemap entry — liste the canonical product URL. Google’s 2024 product-variants données structurées (ProductGroup / hasVariant / variesBy) is the modern façon to express que a définir of size/color options is un product with variants plutôt que N near-duplicate pages; let que, pas le sitemap, carry the variant relationship.

Product images ride on the owning page entry, pas a separate liste. Don’t construire a standalone sitemap of image URLs — ajouter an <image:image> block to the canonical product URL’s propre <url> entry en utilisant the image sitemap extension. Google: “Each <url> tag can contain up to 1,000 <image:image> tags” — plenty pour a PDP’s gallery. Evidence for this claim Product images can be added to an existing product URL entry with the image sitemap extension instead of a separate image sitemap. Scope: Each <url> entry can carry up to 1,000 <image:image> tags, and the images still have to be crawlable (not blocked by robots.txt) and, if served from another domain, verified in Search Console. Confidence: high · Verified: Google: Image sitemaps Two crawlability requirements que are facile to miss at catalog scale: don’t disallow the image paths in robots.txt, and si product images are served from a separate domain or CDN, vérifier que host in Search Console or the images won’t be picked up. Qui variant’s image obtient the entry follows the même canonical-architecture appel as l’URL itself — attach images to the canonical product entry, pas to every thin variant URL you’ve déjà excluded ci-dessus.

The out-of-stock and discontinued product decision tree

Ce is où an ecommerce sitemap article peut en réalité differentiate, parce que almost none of les handle it with quelconque nuance — and it’s the exact decision que determines si une URL belongs in le sitemap. I’ve written the complet framework on the Ahrefs blog (How Devrait Vous Handle Out-of-Stock Products? It Dépend), and there’s a raison it’s appelé “it depends.” There’s aucun perfect solution — the job is to establish consistent rules aligned with votre business goals, pas to memorize un réponse.

The decision splits on two axes: is it gone permanently or temporarily, and fait lune page encore have valeur (trafic, reviews, utile info)?

  • Temporarily out, confirmed returning → garder lune page live and in le sitemap. Offer a restock estimate, a waitlist, a notify-me. Don’t churn it in and out of the sitemap on every stock toggle — that’s noise.
  • Temporarily out, status unknown → deprioritize it in the UI and maillage interne (reorder, filter it bas) plutôt que pulling it from le sitemap immédiatement. Premature removal risks Google treating lune page as abandoned and losing rankings que are hard to win back.
  • Permanently gone, bon replacement exists → 301 redirection to a similaire product to preserve popularité des liens, and supprimer it from le sitemap.
  • Permanently gone, aucun replacement, but lune page encore earns trafic or has utile content (reviews, a buying guide) → it peut stay live and in le sitemap.
  • Permanently gone, aucun valeur → delete and retourner 404/410, and supprimer it from le sitemap.

A critical operational point: removal is a coordinated cleanup, pas a unique sitemap edit. As I put it in que article, “quand redirecting une page, nombreux systems va automatically supprimer lien internes from categories, facets, sitemaps, and internal search pages” — so pull l’URL from le sitemap and clean up the lien internes que point at it (category modules, related-product widgets, internal search) in the même workflow. A dead URL that’s gone from le sitemap but encore lié from twenty category pages hasn’t really been cleaned up.

And the chose Google’s propre guidance warns contre: don’t reflexively mass-404 every discontinued product. Google favors keeping l’URL live with alternatives, or redirecting to a relevant category, over blanket 404s — and it warns contre generating grand numbers of soft 404s. A wall of newly-404’d product pages is exactly the pattern que triggers que.

Mettre à jour frequency, lastmod, and automation

Automate generation. Ce is non-negotiable on a catalog que changements daily. My standing advice on enterprise sites is: “Ajouter sitemaps. I voudrait assurez-vous ce is automated. Si vous are asked to manually créer les, vous pouvez do it, but simplement know que si it’s manual ces va rarely be kept up-to-date.” Bing has documented the exact échec mode — “Aussi souvent, Bing discovers stalled sitemaps qui have the même URLs listed pour months – parfois années” — and recommends the sitemap “devrait ideally be automatically generated au moins une fois a day.”

lastmod is the un attribute que matters. Les deux Google and Bing actively utiliser it; nobody uses the others. Garder it honest:

  • Google: “Google uses the <lastmod> valeur si it’s consistently and verifiably (pour exemple by comparing to the dernier modification of lune page) accurate.” And it devrait “reflect the date and temps of the dernier significant mettre à jour to lune page… an mettre à jour to the principal content, the données structurées, or liens on lune page is généralement considéré significant, cependant an mettre à jour to the copyright date n’est pas.”
  • Bing is blunt à propos de the anti-pattern: “Ne faites pas définir the <lastmod> valeur définir to the temps vous generate le sitemap. <lastmod> devrait be the date of the dernier modification of le contenu.” Utiliser ISO 8601 with a temps component.

Here’s a genuine gray area worth flagging: is a price modifier or a stock-status flip a “significant” mettre à jour? By Google’s definition (principal content / données structurées / liens), a bare price modifier is arguably pas — but si it changements votre Product données structurées (availability, price), that’s closer to significant. My honest lire: don’t essayer to be clever à propos de it. Don’t bump lastmod on every trivial toggle (que simplement adds noise), and don’t rely on lastmod alone to propagate a time-sensitive price drop fast.

Pair lastmod with IndexNow pour fast-moving changements. Bing frames the two as complementary, pas soit/or: “Pendant que real-time URL submission protocols tel as IndexNow aider notify moteur de recherches of immediate content changements, sitemaps remain a foundational signal pour ensuring comprehensive URL coverage à travers votre site.” And pour AI-powered surfaces specifically: “The lastmod field in votre sitemap remains a clé signal, helping Bing prioritize URLs pour recrawling and reindexing, or skip les entirely si le contenu hasn’t modifié since the dernier explorer.” So: sitemap pour coverage and daily freshness, IndexNow (Bing/Yandex/others — pas Google) to push individual price/stock flips sans waiting pour the suivant recrawl cycle.

Ignore priority and changefreq

Don’t spend engineering temps maintaining ces. Google is unambiguous: “Google ignores <priority> and <changefreq> valeurs.” Gary Illyes reportedly appelé the priority field “essentially a bag of noise.” The Illyes line is relayed via Moteur de recherche Roundtable’s SMX Avancé 2017 coverage, pas a self-fetched principal source; the point stands regardless parce que Google’s docs now dire les deux fields are ignored. Whatever valeur votre platform auto-populates pour ces is harmless; simplement don’t construire logic to compute les.

Monitoring and diagnosis

Ce is ce que the segmentation was pour:

  • GSC Sitemaps report — per-segment submitted-vs-indexed. A product-sitemap ratio that’s beaucoup worse que votre category sitemap points vous straight at a product-page problem (contenu pauvre, blocked variants, canonical problèmes).
  • Bing Webmaster Outils — the même segment-level view on Bing’s side, plus IndexNow submission status.
  • GSC Page Indexation report — watch the excluded buckets pour facet/parameter URLs ballooning, qui signifie votre facet strategy is leaking into discovery.
  • Site explorer / audit (Ahrefs Site Audit, Screaming Frog) — catch products encore showing an out-of-stock message, orphaned products ne … plus lié from anywhere, and the broken lien internes left behind après a redirection or removal.

Enterprise-scale architecture — a worked shape

Pour a catalog in the millions of SKUs, plan the hierarchy autour votre réel volume and the submission ceilings plutôt que bolting on fichiers reactively:

/sitemap-index.xml            ← the one index you submit to GSC + BWT
  ├── /sitemaps/products-1.xml      (URLs 1–50,000)
  ├── /sitemaps/products-2.xml      (50,001–100,000)
  ├── … products-N.xml              (chunk every 50,000 canonical PDPs)
  ├── /sitemaps/categories.xml      (all category / collection pages)
  ├── /sitemaps/brands.xml          (all brand pages)
  └── /sitemaps/static.xml          (homepage, guides, policy pages)

At 5M products that’s ~100 product sitemap fichiers plus a handful of others — bien dans the 50 000-files-per-index limite and GSC’s 500-sitemap acceptance. Si vous somehow exceed a unique index (50 000 × 50 000 = 2,5B URLs), vous split into multiple index fichiers and submit chaque. The point is to size the chunks up front so daily regeneration simplement rewrites chaque file’s contents, and vous jamais have to re-architect the tree parce que vous outgrew a guess.

Où ce sits

Ecommerce sitemaps overlap heavily with lune pages ils liste. Ce que belongs in the sitemap is decided by votre category-page and faceted-navigation strategy (qui filtered URLs are canonical and indexable). Ce que se produit to une URL quand a product sells out is the out-of-stock and discontinued-product decision. And le sitemap is un of several façons robots d’exploration découvrir a store — alongside lien internes, IndexNow, and (pour Google Shopping) a Merchant Center product feed. Le sitemap doesn’t replace quelconque of ceux; it’s the coverage backstop que rend certain nothing obtient stranded.

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.