XML Sitemap Validator
Paste or upload an XML sitemap and check it against the rules search engines actually enforce.
How to use it
- Paste your sitemap into the box, or upload the
.xmlfile - it is read in your browser, never uploaded. - Read the summary line: valid or the number of errors and warnings.
- Work through the issues. Errors are things that break the sitemap; warnings are things worth cleaning up.
- Fix them in your source, paste again, and confirm it comes back clean.
What it does, and what it does not
It does: confirm the file is well-formed XML, check the root is urlset or sitemapindex, and validate every entry - a present loc, absolute URLs, valid W3C dates in lastmod, a real changefreq value, a priority between 0.0 and 1.0, plus the 50,000-URL and 50MB limits and duplicate URLs.
It does not: fetch each URL to check it returns 200, or crawl your site. It validates the file structure and values, which is the part you can get wrong by hand. Live URL status is a job for Search Console once the sitemap is submitted.
Reference
A sitemap can be perfectly readable to a human and still be quietly rejected by a search engine because of a small structural mistake. This validator checks the file against the sitemaps.org protocol and the limits Google and Bing enforce, so you catch those mistakes before you submit.
The first gate is well-formed XML. A single unescaped ampersand in a URL, a missing closing tag or a stray character before the declaration will make the whole file unparseable, and a search engine will simply skip it. The next gate is the root element: a list of pages must sit inside <urlset>, while a list of other sitemaps must sit inside <sitemapindex>. Mixing them up is common when sites outgrow a single file.
Within each entry, <loc> is required and must be a full absolute URL including the protocol - https://example.com/page, not /page or example.com/page. The optional fields have strict formats too. <lastmod> must be a valid W3C date (2026-01-15 or a full timestamp), and an invalid date is worse than none because it teaches Google to ignore the field. <changefreq> only accepts a fixed set of words, and <priority> must fall between 0.0 and 1.0.
Finally there are the hard limits: 50,000 URLs and 50MB uncompressed per file. Cross either and you need to split the list and reference the parts from a sitemap index. Duplicates and trailing whitespace in a loc will not break the file but they waste crawl budget and muddy your signals, so this tool flags them as warnings. Clean the errors first, tidy the warnings, and resubmit.
Questions
Why does my sitemap fail to parse?
Almost always an XML problem: an unescaped & (it must be &), a missing closing tag, or characters before the <?xml> declaration. The summary line will point you at the first parser error.
Do I need lastmod, changefreq and priority?
No, all three are optional. If you include lastmod, keep it accurate - Google uses it. It largely ignores changefreq and priority. An invalid value in any of them is flagged here.
Is my file uploaded when I validate it?
No. Whether you paste or upload, the file is read and checked in your browser. Nothing is sent anywhere.
Does it check that my URLs work?
No. It validates the file structure and values. Checking that each URL returns a 200 and is indexable is done by submitting the sitemap in Search Console.
What are the size limits?
50,000 URLs and 50MB uncompressed per file. Beyond that, split into several sitemaps listed in a sitemap index.