Free tool, nothing leaves your browser
Sitemap validator that names the rule each problem breaks
Paste a sitemap and it is checked against the sitemaps.org 0.9 schema and the limits Google documents. Every problem it reports carries the rule behind it, separated into errors that break the file, warnings worth a look, and notes about effort Google ignores.
That last category is the one people are surprised by. Across 89 real sitemaps from major publishers, 1,031 changefreq values and 543 priority values were declared. Google supports neither and says so in its own documentation, so every one of those is work that changes nothing.
- 27tests passing, run in the browser the validator ships to
- 152,017real URL entries checked to build this page
- 1,031changefreq values found, all of them ignored by Google
- 88of 89 real sitemaps had no errors at all
01Validate a sitemap
Paste the XML. Adding the URL the sitemap is served from is optional and switches on two extra checks, whether any entry points at a different host and whether the file is where it claims to be. Nothing is uploaded and the page makes no network request while you use it.
Validation uses the browser's own XML parser, which is the same engine that decides whether the file is well formed in the first place. A sitemap that fails here fails for a reason the parser states, not for a reason this page invented.
02Two fields the spec allows and Google throws away
The sitemaps.org schema defines four child elements for a URL entry. Google reads two of them.
| Element | Spec | Detail | |
|---|---|---|---|
loc | required | read | The URL. Absolute, entity escaped, under 2,048 characters. |
lastmod | optional | read when trustworthy | W3C Datetime. Google uses it only if it is consistently accurate. |
changefreq | optional | IGNORED | Google does not use it. Declaring it changes nothing. |
priority | optional | IGNORED | Google does not use it. Declaring it changes nothing. |
Google's documentation is unambiguous about the other two. It states that it ignores changefreq and priority, and that lastmod is used only when it is consistently accurate. A sitemap that sets priority on every URL is telling Google nothing, and a lastmod that updates when nothing changed is worse than no lastmod at all, because it teaches the crawler to distrust the field.
The measurement is in the numbers above. 6 of 89 files set changefreq, 4 set priority, and between them that is 1,574 declarations doing nothing.
03The limits that actually break a sitemap
Four hard rules, and the validator checks all of them.
hard limitssitemaps.org 0.9 and Google
50,000 maximum URL entries in one file 50 MB maximum uncompressed size of one file 2,048 practical ceiling on the length of one loc UTF-8 the only encoding, and loc values must be entity escaped over any of these, split the file and list the parts in a sitemap index
The lastmod format catches more people than the size limits do. It must be W3C Datetime, which means 2026-08-24 or 2026-08-24T12:00:00+00:00. A timestamp with no timezone is invalid, and so is anything written day first. The validator checks the format exactly rather than accepting whatever parses as a date.
A sitemap index has its own rule that is easy to miss. Its entries take only loc and lastmod. Putting a changefreq or a priority inside a sitemapindex entry is invalid rather than merely ignored, and the validator reports it as an error.
04What 89 real sitemaps look like
To test the validator on real input rather than invented cases, every sitemap declared in the robots.txt of a list of major hosts was fetched on 2026-08-24 and run through the same code that runs above.
| Measure | Value |
|---|---|
| Sitemap files analysed | 89 |
| Hosts they came from | 11 |
| URL entries seen in total | 152,017 |
| Files with no errors | 88 of 89 |
| Files that were malformed XML | 0 |
| Sitemap index files vs urlset files | 55 index, 34 urlset |
| changefreq values declared | 1,031 across 6 files, all ignored by Google |
| priority values declared | 543 across 4 files, all ignored by Google |
| Duplicate URL entries | 36 across 6 files |
| Entries pointing at another host | 2 |
| Files with the wrong xmlns | 1 |
The headline is that large publishers get the mechanics right. 88 of 89 files produced no errors, and not one of them was malformed XML. What they do spend effort on is the two fields that do nothing, and a small number of duplicate entries.
One correction worth stating plainly. An earlier pass of this census reported 17 files as invalid XML. They were not. The collector stopped reading at 6 MB and cut those files off mid element, which is a fault in the measurement and not in the sitemaps. Those 17 are excluded from every figure on this page rather than counted as broken.
05The tests this validator passes
All 27 run against the code on this page, inside a real browser, because the validator depends on the browser's XML parser and testing it anywhere else would be testing something different.
| Case | Result |
|---|---|
| valid sitemap passes | pass |
| counts urls | pass |
| kind urlset | pass |
| lastmod date ok | pass |
| lastmod year ok | pass |
| lastmod full tz ok | pass |
| lastmod Z ok | pass |
| lastmod no tz rejected | pass |
| lastmod slashes rejected | pass |
| lastmod junk rejected | pass |
| bad lastmod is an error | pass |
| missing loc errors | pass |
| relative loc errors | pass |
| wrong namespace errors | pass |
| wrong root errors | pass |
| malformed xml errors | pass |
| empty input errors | pass |
| valid changefreq+priority still ok | pass |
| changefreq+priority raise notes | pass |
| invalid changefreq errors | pass |
| priority out of range errors | pass |
| cross host warns | pass |
| duplicate url warns | pass |
| index recognised | pass |
| valid index passes | pass |
| index rejects priority | pass |
| empty urlset errors | pass |
Read before acting on any verdict above
06What this validator cannot tell you
- LIMITA valid sitemap is not an indexed sitemap. Google describes a sitemap as a hint about which URLs exist, not an instruction to crawl or index any of them.
- LIMITIt checks the XML you paste. It does not fetch your URLs, so it cannot tell you whether any of them returns 200, redirects, is blocked by robots.txt or carries a noindex tag.
- LIMITThe detailed per entry checks cover the first 500 entries. The file level limits still apply to the whole file, and the entry count is read from the whole file.
- LIMITCross host entries are reported as a warning, not an error, because cross submission is legal once the other host is verified and this page cannot know whether it is.
- LIMITThis validates against sitemaps.org 0.9 and Google's stated behaviour. Bing and other engines differ, and some honour fields Google discards.
- LIMITThis is a fixed list of large, well resourced sites, not a random sample of the web. It describes how big publishers write sitemaps and says nothing about the average site.
- LIMIT17 files were truncated by the collector at 6 MB and are excluded. They are not broken, we simply did not read all of them. Any figure that counted them as invalid would be wrong.
- LIMITGzipped sitemaps are excluded because the collector did not decompress them, so the sample tilts slightly away from very large sites that compress.
- LIMITValidation checks the first 500 entries per file in detail. File level limits, the 50,000 URL cap and the 50 MB cap, still apply to the whole file.
- LIMITNo ranking, indexation, traffic, or revenue outcome is promised by this site or by the product it sells.
- LIMITNo end to end run from intake through indexation has been completed by anyone, including the seller, and there are currently no customers, so there are no reviews and no case studies.
- LIMITThe sixty day refund covers whether the software is what this site describes and whether it runs, and never whether a search engine chose to index or rank anything built with it.
07Where these rules come from
- SPECsitemaps.org protocol 0.9, for the schema, the required and optional elements, the 50,000 entry cap and the 50 MB size cap.
- SPECGoogle, build and submit a sitemap, for which fields Google reads and which it ignores.
- DATAThe census file, every figure in section 04, published unmodified.
Sitemaps and robots.txt fail together more often than either fails alone, because a sitemap that lists a path your robots.txt disallows is a contradiction Google resolves by not crawling it. The robots txt checker on this site will tell you which rule wins for any path you paste.
This page was built by the pipeline it sells
The validator and the census on this page are what the pipeline produces. It refuses a keyword already saturated by an AI Overview, it will not let a page state a number that code did not compute, and it made this page withdraw a finding when the measurement turned out to be at fault. It runs on your machine, there is no hosted service and no account, and you pay once.
Sixty day refund. Nothing about traffic, rankings or indexation is promised here or anywhere else on this site.