All guides
sitemap index

Sitemap Indexes for Large Websites

How to organize millions of URLs into stable child sitemaps that are easier to generate, crawl, and diagnose.

8 min readUpdated

Key takeaways

  • Split sitemaps by stable operational boundaries, not arbitrary daily batches.
  • Keep child files below protocol limits with predictable headroom.
  • Separate child-file processing and discovery counts from page-indexing diagnostics.
  • Do not nest indexes recursively for convenience; keep discovery simple.

When a sitemap index becomes necessary

Use an index when the canonical URL inventory exceeds a single file's 50,000-URL or 50-MB uncompressed limit. An index is also valuable earlier when separate sections have different publishing workflows, owners, or indexation patterns.

Choose stable partitions

Good boundaries match how the site operates: products, categories, articles, locations, videos, or locales. Within a large section, stable ID ranges or hash buckets can keep membership predictable. Numeric chunks are not inherently wrong; repacking every file whenever a page is added makes changes harder to isolate.

  • Keep the same URL in one child sitemap at a time
  • Leave headroom for growth instead of filling every file to the limit
  • Use predictable names that describe the content type
  • Regenerate only the child files whose inventory changed

A valid index document

Each sitemap element points to a child sitemap. The optional lastmod belongs to the child file itself: it should change when that sitemap's contents change, not whenever the application deploys.

<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <sitemap>
    <loc>https://example.com/sitemaps/products-1.xml</loc>
    <lastmod>2026-07-18</lastmod>
  </sitemap>
  <sitemap>
    <loc>https://example.com/sitemaps/guides.xml</loc>
    <lastmod>2026-07-16</lastmod>
  </sitemap>
</sitemapindex>

Monitor sections independently

Submit the index, then inspect each child's processing status and discovered-page count. Use the Page indexing report filtered by sitemap for indexing differences. A drop in product-page coverage is a reason to check publication state, templates, canonicals, and rendering—not proof that one of those caused it.

Pair sitemap counts with database counts and response validation. Alert when the difference exceeds a known publishing delay, when a child file stops updating, or when error and redirect rates rise.

Apply index limits separately from page limits

Each child allows at most 50,000 page URLs and 52,428,800 uncompressed bytes. The index allows at most 50,000 sitemap locations and the same uncompressed byte limit. Gzip changes neither limit. Google allows up to 500 submitted sitemap index files per site in Search Console.

An index at https://example.com/sitemap_index.xml can reference /sitemaps/products-1.xml on that host. An index under /public/ should reference children in /public/ or deeper, not sibling directories. Files normally belong on the same site; Google documents an exception for properly configured cross-site submission. Do not mix hosts accidentally or expect a checker to infer verified ownership.

For Google's submission workflow, list sitemap files rather than other indexes. SitemapKit's nested-index traversal is a parser capability, not evidence that Google supports the same hierarchy.

Publish children before switching the index

Generate and validate children first, make them publicly accessible, then publish the index. Keep a manifest with each child's URL, entry count, uncompressed bytes, and content version. An index pointing to not-yet-deployed files fails even when its own XML is valid.

Check every child after deployment. A 200 index with a missing product shard is not a complete inventory. Compare raw entries and unique page URLs; confirm removals disappeared and additions reached the intended partition. Update index lastmod when the child file changes, not by copying a page timestamp without checking the generated file.

Audit large indexes in bounded batches

SitemapKit direct extraction has a 50-location ceiling; discovery has a 200-location ceiling and traversal is capped at depth 5. Its 10 MiB transport response limit is below the protocol's 50 MB ceiling. A protocol-valid index can therefore exceed the tool's operational limits. Split audits by known children rather than treating a short export as the whole site.

Keep partial, truncated, stopReason, and the requested budget with each export. Failed children can be skipped without a partial flag, so reconcile against your manifest even on success. Checker validates the supplied index document; it does not recursively certify children. Treat each child as its own validation target.

Large-site failure modes

Avoid generating huge files during the request that serves them. Build or stream from a reliable URL source, cache the result, and refresh it after content changes. A sitemap endpoint that times out under crawler load defeats the discovery mechanism it is supposed to provide.

Crawl a sitemap index

Map child sitemap files and inspect their URL counts.

Open the free tool

Frequently asked questions

How many URLs can one sitemap contain?

Up to 50,000 URLs and 50 MB uncompressed. Use multiple files before either limit is reached.

How should large sitemaps be split?

Prefer stable content types, locales, or application partitions that help you diagnose coverage and regenerate only changed sections.

What does lastmod mean in a sitemap index?

It describes the last meaningful modification of the referenced child sitemap file, not the deployment time of the website.

Primary references

Technical content: SitemapKit Engineering. Maintained by Clément Chaal.

See our technical methodology and editorial policy.

A practical reference for building, validating, submitting, and maintaining XML sitemaps without sending search engines misleading signals.

A precise lastmod implementation guide for content, ecommerce, and programmatic pages—without fake freshness signals.

A practical extraction workflow for turning nested XML sitemaps into a clean, deduplicated dataset you can audit or import.