Also available in: Español · Português · Français · العربية
XML Sitemap Validator
Paste a sitemap and get it checked against the 50,000 URL and 52,428,800 byte limits, the required date format, and the elements that do nothing.
What is an XML sitemap?
An XML sitemap is a file listing the pages on your site that you would like a search engine to know about. Its root element is urlset, each page is a url element, and the only required child of each is loc — the page's full address. Three other children are permitted: lastmod, changefreq and priority.
A second kind of file, a sitemap index, lists other sitemaps rather than pages. It uses sitemapindex as its root and sitemap elements inside, and it is what you reach for once one file is no longer enough. This validator recognises both and tells you which one you pasted.
The protocol sets two hard limits on a single sitemap file, and they are the sort of thing a checker can settle rather than opine about: no more than 50,000 URLs, and no larger than 50MB, which the protocol spells out as 52,428,800 bytes. Cross either and you need to split the file and list the pieces in an index.
How to use it
- Paste the contents of your sitemap. The file's text, not its address — a browser cannot fetch your sitemap for you, so this checks exactly what you put in the box. The four sample buttons cover an ordinary sitemap, an index, a malformed date and a relative URL.
- Check the two counts against the two limits. Entries and bytes are shown beside the numbers the protocol sets, so you can see how much headroom you have before the file has to be split.
- Read the findings. Errors are things that will cost you entries or the whole file. Warnings are valid but work against you. Notes are valid and simply do nothing — and there are more of those in a typical sitemap than most people expect.
Two of the four elements do nothing
Almost every hand-written sitemap sets priority and changefreq on every entry, usually with some care — the homepage gets 1.0, the contact page gets 0.5, the blog is daily and the about page is yearly. Google's own documentation is blunt about the result: Google ignores priority and changefreq values. Both are discarded.
The more striking thing is that the protocol itself hedged on priority long before that. The sitemaps.org document that defines the element says the priority you assign to a page is not likely to influence the position of your URLs in a search engine's result pages. The specification that invented the field told you it probably would not do anything.
None of that makes them errors, and this page does not report them as errors. They are valid XML that costs you nothing but the bytes they occupy — which matters only if you are near the 50MB limit, where dropping both from a large file is a quick way to buy room. They are reported as notes because a checker that stays silent about them leaves you tuning something that has no effect.
lastmod is the one that can work against you
The third optional element is different, and it is worth spending a moment on. Google says it uses lastmod if the value is consistently and verifiably accurate — for example by comparing it against when the page actually changed. That is a conditional, and the condition is about your track record rather than about any single entry.
So a sitemap that stamps every URL with today's date, which is what a great many generators do by default, is not merely unhelpful. It is a claim that every page on the site changed today, checkable against the pages themselves, and failing it teaches a crawler that your lastmod cannot be trusted. That is why this page reports an all-identical lastmod as a warning rather than passing over it: it is the only one of the optional elements that can leave you worse off than omitting it.
The format is also stricter than it looks. The protocol asks for W3C Datetime, which allows a plain YYYY-MM-DD, but a value with a time must carry a timezone. 2026-07-14T09:30:00 is invalid; 2026-07-14T09:30:00Z is fine, as is 2026-07-14 on its own. A local time with no zone is the commonest way to get this wrong, because it is what most date formatters produce by default.
Honest limitations
This checks the text you paste, and cannot fetch anything. It does not know whether your sitemap is reachable at the address you think, whether robots.txt points at it, or whether any of the URLs inside it actually resolve. A sitemap can be perfectly valid and list five hundred pages that return 404.
The two numbers it reports are measurements of your paste and nothing else, and that is worth being precise about. The size is the UTF-8 byte length of exactly what is in the box — which is the right measurement, because the protocol's limit applies to the uncompressed file even when it is served gzipped — but if you pasted only part of your sitemap, the number describes the box rather than the file. The entry count is of url elements rather than loc elements, so an entry that is missing its location still counts against the 50,000, which is the behaviour the limit actually has.
It also cannot tell you whether your URLs belong in a sitemap at all. Listing a page does not make a search engine index it, and a sitemap full of thin or duplicate pages is a sitemap that will be largely ignored. The file is a suggestion, not an instruction, and no validator changes that.
One thing it deliberately does not do is check your XML with a full parser. It looks for the elements the protocol defines, so a document with mismatched tags may still produce a sensible-looking count. If you want strict well-formedness, run the file through an XML formatter first — this site has one — and then bring it back here.
Why is it free?
The checking is text analysis and it runs in your browser. There is no server involved, so there is nothing to bill for and no account to create.
Nothing is uploaded and nothing is stored. Reload the page and it has forgotten your sitemap.