# XML sitemap generator & validator

> Create an XML sitemap from a list of URLs, with dates and a sitemap index for large sites, or check a live sitemap for errors and broken pages. Free.

Canonical: https://cromagnon.app/tools/sitemap-generator
Last updated: 2026-10-27

- Category: SEO
- Formats: XML · TXT · GZ
- Use it: https://cromagnon.app/tools/sitemap-generator (free, runs in the browser)

## What it does

An XML sitemap is a file that lists the pages you want search engines to find, with the date each one last changed. It doesn't make pages rank, but it helps Google and Bing discover new and updated pages quickly, especially on new sites, large sites and pages with few links pointing to them. This tool does both jobs: it builds a sitemap.xml from a list of addresses, and it checks an existing sitemap, live or pasted, for the mistakes that make search engines ignore it.

## How to use it

1. To create one, paste your page addresses, one per line, and fill in the site address so paths like /about are completed.
2. Add a date after any address (a tab or comma, then 2026-10-20) to give that page a last-modified date, or choose to leave dates out.
3. Read the notes: duplicates, #fragments, mixed http and https, other hosts and query strings are flagged or fixed.
4. Download sitemap.xml (or a ZIP with numbered files and an index for big sites), upload it to your site's top folder and add it to robots.txt.
5. To check one, switch to Check a sitemap and type your domain or the sitemap's address; the tool finds it through robots.txt if you give just the domain.
6. Fix anything marked in red, then click Check if the first 20 pages load to catch redirects and 404s listed in the sitemap.

Tip: Only list pages you want in search results: the final, canonical address of each page that answers 200 OK and isn't marked noindex. A sitemap full of redirects, errors and duplicates teaches Google to trust it less.

## What a good sitemap contains

- **<loc>**: The page's full address, exactly as you want it indexed: https or http, with or without www, and the same trailing slash as your canonical tag. Special characters such as & must be escaped (&amp;); the generator does it for you.
- **<lastmod>**: When the page's main content last changed, in W3C format (2026-10-27 or with a time). Google uses it when it is consistently accurate, so don't set every page to today.
- **<changefreq> and <priority>**: Google ignores both. They are harmless and the generator can add them for other search engines, but they are left out by default.
- **Limits**: Up to 50,000 addresses and 50 MB (uncompressed) per file. Bigger sites use several files listed in a sitemap index, which the generator makes automatically.
- **Location**: Put the file in the top folder (example.com/sitemap.xml). A sitemap in a sub-folder should only list pages in that folder, unless robots.txt points to it.

## What the validator checks

It reads urlset sitemaps, sitemap indexes, compressed .xml.gz files and plain-text sitemaps. It checks the XML namespace, broken or unclosed entries, unescaped ampersands (the most common reason a whole sitemap fails), relative or missing <loc> values, duplicates, dates in the wrong format or in the future, priorities outside 0 to 1, invalid change frequencies, more than 50,000 entries or 50 MB, and addresses on other hosts, the other protocol or outside the sitemap's folder.

For a sitemap index, each listed sitemap has a Check button. For a sitemap of pages, Check if the first 20 pages load asks each address once and shows its status: 200 is good, while 301 and 302 redirects, 404s and 410s should be replaced by the final address or removed.

## Submitting your sitemap

Add a line to robots.txt, such as Sitemap: https://www.example.com/sitemap.xml; every search engine reads it. Then submit the same address in Google Search Console (Indexing, Sitemaps) and Bing Webmaster Tools, which report how many addresses were read and any errors. Resubmitting isn't needed after every change: search engines fetch the sitemap again on their own, and an updated <lastmod> tells them what changed.

WordPress (version 5.5 and later) makes a sitemap at /wp-sitemap.xml, and SEO plugins such as Yoast and Rank Math make /sitemap_index.xml; Shopify, Wix and Squarespace make /sitemap.xml automatically. In those cases use the validator to check the automatic sitemap rather than making a new one, and make sure only one is listed in robots.txt and Search Console.

## When a hand-made sitemap is useful

A generated list is ideal for static sites, landing-page builders without a sitemap, single-page apps, a set of new pages you want found quickly, or a site moving to a new domain, where a sitemap of the old addresses helps search engines see the redirects sooner. Export the list of pages from your CMS, a spreadsheet or a crawler, paste it here and download the file.

## Tips

- **Real dates**: Use each page's real last change. Setting every page to today makes Google ignore the dates altogether.
- **Canonical only**: Leave out paginated, filtered, sorted and tracking (?utm=) versions unless they are the canonical page.
- **No noindex pages**: A page marked noindex in a sitemap sends opposite signals. Remove one or the other.
- **One sitemap per job**: Large sites often split by type: products, categories, blog posts. Errors are then easy to trace.
- **Keep it current**: Regenerate or update the file when pages are added or removed; a stale sitemap with 404s helps nobody.
- **Images**: Pages with important images can list them inside <image:image> tags; the validator shows how many each page has.

## Questions

### Do I need a sitemap?

Small sites with good internal links are found without one, but a sitemap costs nothing and helps new, large or rarely linked pages get discovered faster. Google recommends one for most sites.

### Does a sitemap improve rankings?

No. It helps search engines find and recrawl pages; whether they rank depends on the pages themselves.

### How many URLs can a sitemap have?

50,000 addresses or 50 MB uncompressed per file. Use a sitemap index to list up to 50,000 sitemaps.

### Should I include priority and changefreq?

Not for Google, which ignores them. Bing may read changefreq. An accurate lastmod matters far more.

### Why does Search Console say 'Couldn't fetch'?

The address is wrong, the file is blocked by robots.txt or a firewall, or the server answers with an error or an HTML page. Check the address here; it shows exactly what the server sends back.

### Is my list or sitemap stored?

No. Sitemaps are built in your browser. A live sitemap is fetched once by our server for the check and isn't kept.

## Related

- [robots.txt Generator](https://cromagnon.app/tools/robots-generator)
- [Schema Validator](https://cromagnon.app/tools/schema-validator)
- [SERP Preview](https://cromagnon.app/tools/serp-preview)
- [Slug Generator](https://cromagnon.app/tools/slug-generator)
- [All tools](https://cromagnon.app/tools)
