Sitemap Index Generator
Paste your child sitemap URLs, one per line, and get a valid sitemap_index.xml back with optional lastmod dates. Copy it or download it, ready to upload to your root and submit to Search Console.
Short answer
A sitemap index is a sitemap of sitemaps: an XML file that lists child sitemap files instead of pages, wrapped in a sitemapindex element. Each child sitemap may hold up to 50,000 URLs and 50MB uncompressed, and one index may list up to 50,000 child sitemaps. You upload the index to your root, submit it once in Search Console, and Google discovers every child through it. Sites past 50,000 URLs must use one; sites that split their sitemaps by section should.
When you need a sitemap index, and when you do not
The hard rule comes from the sitemaps.org protocol: a single sitemap file may hold at most 50,000 URLs and 50MB uncompressed. Past either limit, search engines stop reading. A site with 80,000 pages that keeps one sitemap file is not warned about the overflow; the entries past the cap are simply ignored, and 30,000 pages lose their discovery signal without anyone noticing. At that scale a sitemap index is not an optimisation, it is the only way to declare the whole site.
Below the limit, an index is still the right structure for any site that splits its sitemaps by section: one child for posts, one for pages, one for products, one for categories. The payoff is the lastmod date on each child. When you publish three blog posts, only sitemap-posts.xml changes, its lastmod moves, and Google can re-fetch that one file instead of re-reading every URL you have. On a site with a large stable catalogue and a fast-moving blog, that difference decides how quickly new content gets found.
The case where you do not need one is just as clear. A site with a few hundred pages and a single sitemap file gains nothing from wrapping that one file in an index. One extra fetch, one extra file to keep in sync, no new information for the crawler. Keep the single sitemap, declare it in robots.txt, and revisit the question when the site grows or the sitemap splits. If you have not built the child files yet, the sitemap generator will crawl your site and produce them.
The rules a sitemap index has to follow
An index file is small and simple, which makes its failure modes easy to memorise. Every rule below comes from the sitemaps.org 0.9 protocol or from how Google documents its own handling, and breaking any of them costs you silently rather than loudly.
| Rule | Limit | What it means in practice |
|---|---|---|
| Max child sitemaps per index | 50,000 | Entries past the cap are ignored. If one index is not enough, submit a second index rather than nesting |
| Max URLs per child sitemap | 50,000 | The cap applies per file, so the index buys capacity by adding children, not by growing them |
| Max size per child sitemap | 50MB uncompressed | Gzip is allowed and worth using, but the limit is measured on the uncompressed content |
| Nesting | One level only | An index lists sitemaps, and sitemaps list pages. An index that lists another index is rejected |
| Location | Same host, own directory or below | Children must live on the same host as the index, and an index at /sitemaps/ can only reference files at or below that path unless the index is declared in robots.txt |
| Format | loc required, lastmod optional | Each sitemap element needs a loc. lastmod is the only optional field, and the only one worth setting |
Why the silence matters
None of these failures produce an error page. A nested index, a cross-host child or an over-limit file just stops being read, and the first visible symptom is pages that never appear in the index coverage report. Checking the file before you submit it is cheaper than diagnosing it afterwards.
How to set up a sitemap index
Seven steps, and only the first one takes real effort. The order matters: the child files have to exist at their final URLs before the index that references them goes live, or Google fetches an index full of 404s.
- 01
Split your URLs into child sitemaps
Divide your URLs by section, such as posts, pages and products, or into blocks of up to 50,000. If you do not have the files yet, the sitemap generator can build them for you.
- 02
Upload the child sitemap files
Put each child sitemap on your site, on the same host the index will live on. Note the full URL of every file, because those URLs are what the index lists.
- 03
Paste the child URLs here and generate
One URL per line. The tool validates each line, removes duplicates, adds an optional lastmod date, and produces a valid sitemapindex XML file.
- 04
Upload sitemap_index.xml to your root
The root is the safest home for the index because a sitemap can only reference files at or below its own directory unless it is declared in robots.txt.
- 05
Declare the index in robots.txt
Add a line reading Sitemap: https://yourdomain.com/sitemap_index.xml. Every crawler that reads robots.txt finds the index without you submitting it anywhere.
- 06
Submit the index alone in Search Console
Open Indexing, then Sitemaps, and submit only sitemap_index.xml. Google discovers every child through it and reports per-child results under the same entry.
- 07
Validate the result
Run the finished index through the sitemap validator to confirm the file parses, the namespace is right, and every child URL resolves on the same host.
Once the index is live, run it through the sitemap validator to confirm the file parses and the namespace is exact, or through the sitemap checker to test the file and a sample of the URLs inside it in one pass.
Common sitemap index mistakes
The same handful of mistakes accounts for nearly every broken index. All of them fail silently, which is why they survive for months.
- Listing pages in the index. An index lists sitemap files, not URLs of pages. A page URL wrapped in a sitemap element makes Google fetch an HTML document where it expects XML, and that entry contributes nothing.
- Nesting one index inside another. The protocol allows one level. An index pointing at a second index is rejected, and every sitemap below the nested one goes unread.
- Mixing hosts. Children on www when the index lives on the bare domain, or children on a CDN subdomain, are ignored. Host means the full hostname, so protocol and subdomain both have to match.
- Stamping every child with the same fresh lastmod. If every build writes today's date on every child, the field carries no information, Google learns to distrust it, and you lose the one mechanism that lets a crawler skip the sections that did not change.
- Submitting every child separately as well as the index. Google tolerates it, but the Sitemaps report now counts every URL twice under different rows, and the duplicate entries obscure which submission a problem belongs to. Submit the index alone.
Inheriting an index someone else built? Pull its full contents with the sitemap extractor, which follows every child and lists the URLs inside, so you can see exactly what the index actually declares before you change it.
What this tool does
Valid sitemapindex XML
The exact structure and namespace the sitemaps.org 0.9 protocol requires
Optional lastmod
One date applied to every child, in the ISO format Google reads
Duplicate removal
Repeated lines are dropped and counted before the XML is built
URL validation
Every line must be an absolute http(s) URL, with bad lines listed for fixing
50,000 cap warning
Flags lists that exceed the protocol limit for children per index
Cross-host warning
Flags URL lists that span multiple hosts, which Google ignores
Copy or download
The XML as text on your clipboard or as a ready sitemap_index.xml file
Runs in your browser
Nothing is uploaded. Your URL list never leaves your machine
Frequently asked questions
What is a sitemap index?
A sitemap index is a sitemap of sitemaps: an XML file that lists other sitemap files instead of pages. Each entry is a sitemap element holding the loc of a child sitemap and an optional lastmod date, and the whole file is wrapped in a sitemapindex root element. You submit the index once and search engines discover every child sitemap through it.
Do I need a sitemap index?
You need one once any single sitemap would exceed 50,000 URLs or 50MB uncompressed, because the protocol forces a split at that point. Below the limit it is still the right structure for sites that split sitemaps by section, since per-section lastmod dates tell Google exactly which part of the site changed. A small site with one sitemap file does not need one.
How many sitemaps can a sitemap index list?
Up to 50,000 child sitemaps per index file. Since each child can itself hold 50,000 URLs, one index covers 2.5 billion URLs, which is more headroom than any real site needs.
Can a sitemap index list another sitemap index?
No. The protocol allows exactly one level: an index lists sitemaps, and those sitemaps list pages. Google rejects nested indexes, so if one index is not enough you submit multiple index files instead of stacking them.
Do the child sitemaps need to be on the same host as the index?
Yes. Google ignores child sitemaps hosted on a different domain from the index that lists them. Cross-host submissions only work in the special case where both hosts prove ownership through robots.txt or Search Console, so the safe rule is one host for the index and all of its children.
Where should the sitemap index file live?
At the root of the site, as /sitemap_index.xml or /sitemap.xml. A sitemap can only reference files at or below its own directory, so an index buried in a subfolder can miss children elsewhere on the site unless the index is declared in robots.txt, which lifts the restriction.
Do I submit the index or each child sitemap in Search Console?
Submit the index alone. Google reads it, fetches every child, and reports per-child status under the one entry. Submitting the children separately as well creates duplicate rows that report the same URLs twice and make the Sitemaps report harder to read.
Does lastmod on a sitemap index matter?
Yes, and it is the only optional field in an index worth setting. The lastmod on a sitemap entry tells Google when that child file last changed, so a crawler can re-fetch only the children that moved. Google trusts the dates only while they are accurate: stamping every child with today's date on every build teaches Google to ignore the field entirely.
Does WordPress already generate a sitemap index?
Usually, yes. WordPress core and the common SEO plugins emit a sitemap index automatically, typically at /sitemap_index.xml or /wp-sitemap.xml, with children split by post type. If your platform already publishes one, submit that file rather than building a second index by hand. This tool is for sites that manage their sitemap files themselves.
What happens if I go past 50,000 URLs without an index?
Entries beyond the cap are ignored. A single sitemap holding 80,000 URLs does not fail loudly; search engines simply stop reading at the limit, so 30,000 pages silently lose their discovery signal. Splitting into children under an index is the only fix.
Can the child sitemaps be gzipped?
Yes. A child listed as sitemap-posts.xml.gz is valid, and compression is worth it on large files. The 50,000 URL and 50MB limits still apply to the uncompressed content, so gzip buys transfer speed, not extra capacity.
Does a sitemap index improve rankings?
No. Sitemaps of any kind affect discovery and recrawl efficiency, not ranking. An index gets new pages found sooner and changed sections recrawled faster, which is valuable on a large site, but it does not move an already indexed page up the results.
Does this tool upload my URLs anywhere?
No. Everything runs in your browser. The URLs you paste are validated and turned into XML locally, nothing is sent to a server, and the file you download is assembled on your own machine.
Other sitemap tools
XML Sitemap Generator
Crawl any website and generate a valid XML sitemap you can download and submit. No signup, no software to install.
Use toolXML Sitemap Validator
Test any XML sitemap against the sitemaps.org protocol. Catches namespace errors, bad lastmod dates, size limits, and cross-domain URLs.
Use toolSitemap Checker
Check a sitemap end to end: the file against the sitemaps.org protocol, then a live check of the URLs inside it. One pass, one health score.
Use toolSitemap Crawler
Crawl every URL your sitemap declares and find the dead links, redirects, noindex pages, and canonical conflicts hiding inside it.
Use toolSitemap URL Extractor
Pull every URL out of a sitemap or sitemap index and download the list as CSV, TXT, or JSON. Handles nested indexes and gzipped files.
Use toolSitemap Comparison
Compare two sitemaps and see exactly which URLs were added, removed, and kept. Catch the pages a migration or a regenerated sitemap silently dropped.
Use toolSitemap Finder
Find where any website hides its sitemap. Checks robots.txt directives plus nine common paths, including WordPress and gzipped variants.
Use toolVisual Sitemap Generator
Turn any site into a visual tree of its structure. See how deep your pages sit and which sections carry the most URLs.
Use toolAn index gets pages discovered. Then what?
Discovery is step one. CrawlRaven joins your crawl with your Search Console and GA4 data into one ranked plan, so you can see which of the pages your sitemaps declare Google actually indexed, and what every one of them earns in clicks.