XML Sitemap Validator
Check a sitemap.xml against the sitemaps.org 0.9 protocol before search engines do: the right namespace, the 50,000-URL and 50 MB limits, absolute and escaped <loc> values, W3C-format lastmod, legal changefreq words, priority in range, duplicates, and URLs that do not belong to the host.
Sitemap validator
Both file types are understood: a <urlset> of pages and a <sitemapindex> of sitemaps, with the rules that differ between them applied correctly — changefreq and priority, for instance, are not allowed inside an index entry. Findings are graded as errors (the protocol is broken), warnings (likely to cause trouble), and notes.
How to use it
- Paste your sitemap, or drop the file on the left pane.
- Read the summary line: entry count, errors, warnings.
- Work down the findings — each names a rule and the entry number it applies to.
- Re-check after fixing, and use errors only once you are down to stylistic notes.
What gets checked
- Document — well-formed XML; root element is
<urlset>or<sitemapindex>; the namespace is exactlyhttp://www.sitemaps.org/schemas/sitemap/0.9. - Limits — at most 50,000 entries and 50 MB uncompressed, with a warning as you approach either.
- <loc> — present exactly once per entry, absolute with an
httporhttpsscheme, parseable, under 2,048 characters, free of characters that must be escaped, and without stray leading or trailing whitespace. - <lastmod> — W3C datetime: a bare
YYYY-MM-DDor a full ISO 8601 timestamp. Real dates only, and future dates are flagged. - <changefreq> — one of always, hourly, daily, weekly, monthly, yearly, never.
- <priority> — a number from 0.0 to 1.0, written in the conventional one-decimal form.
- Consistency — duplicate URLs, unexpected children, and URLs spanning more than one host.
The mistakes that actually cost traffic
Three findings matter more than the rest. A wrong or missing namespace makes the whole file unreadable to crawlers even though it looks fine in a browser. A lastmod that is not W3C format is ignored, which removes the one signal that tells a crawler a page changed. And URLs on a different host than the sitemap are simply dropped — the protocol requires a sitemap to cover only its own host.
Priority, by contrast, has been publicly ignored by Google for years. It is checked here for protocol correctness, not because fixing it will change anything.
What this cannot check
Everything here is a document check. It does not fetch your URLs, so it cannot tell you whether they return 200, whether they are indexable, whether robots.txt allows them, or whether the sitemap is actually reachable at the URL you submitted. Use Search Console for that half of the job.
FAQ
Does it check that my URLs work?
No — nothing is fetched, so no request leaves your browser. This validates the file against the protocol; Search Console tells you what the crawler found.
What is the correct lastmod format?
W3C datetime: 2026-08-20, or a full timestamp with a timezone such as 2026-08-20T09:30:00+00:00. Anything else — 20/08/2026, Aug 20 2026 — is ignored by crawlers.
Why is a mixed-host sitemap a problem?
The protocol scopes a sitemap to the host that serves it, so URLs on other hosts are discarded. If you need to cover several hosts, publish one sitemap per host and reference them from an index.
Are the 50,000 and 50 MB limits still current?
Yes, and the size limit is measured uncompressed even if you serve the file gzipped. Past either limit, split the file and publish a <sitemapindex>.
Can it check image or video sitemap extensions?
Extension elements in their own namespaces (image, video, news, xhtml) are recognised and left alone rather than reported as unknown, but their contents are not validated in detail.
Related tools
- Sitemap Generator — build a valid sitemap from a list of URLs
- XML Validator — check well-formedness on its own
- XML Formatter — tidy a hand-edited sitemap
- RSS to JSON — the other XML file your site publishes
- XML Stats — count entries in a very large sitemap
Privacy
100% client-side. The sitemap is validated locally — no URL is requested. See the privacy policy.