Sitemap Validator
Loading tool…
About Sitemap Validator
Paste a sitemap URL and click Validate sitemap. We parse a urlset or a sitemap index. Protocol flags include file size over 50MB and more than 50,000 URLs. Relative locs and off-host locs are listed (first 10 of each). Child sitemaps on an index: first 20 per level, nested indexes recurse. If you paste an HTML page, we fall back to robots.txt Sitemap: lines, then /sitemap.xml and the usual index names.
.xml.gz is accepted when the URL, content-type, or gzip magic bytes say so, decoded up to 1.5MB. Video and image sitemap extensions are not special-cased; we collect loc values. lastmod quality is not scored here.
When to use it
Use it before you submit or resubmit a sitemap in Search Console, after a CMS export that may have written relative locs, or when an index file grew past a single urlset.
Also use it when robots.txt lists a Sitemap: line you have not opened. Paste the homepage if you only know the origin; the tool will look for those files. It does not ping Google.
How to use Sitemap Validator
- 1Paste the sitemap URL. A urlset or a sitemap index. .xml.gz is fine when fetchable.
- 2Click Validate sitemap. Wait for parse plus the sample of 20 URLs.
- 3Read protocol errors first. Then sample status failures and child sitemap rows.
- 4Fix the file and re-submit in Search Console. This page does not ping Google for you.
Sample status checks
We request the first 20 listed URLs (HEAD, then GET if HEAD is refused) and report how many failed to return 200. That sample is not every loc. A green sample does not prove the rest of the file is live.
Child rows on an index each have Validate so you can open a nested file on its own. There is no PDF or CSV export.
How to read the results
The badge is Urlset or Index. Stats are URLs, Child sitemaps (indexes only), and Sample failed as failed over sampled. Protocol issues list size over 50MB, more than 50,000 locs, relative locs, and off-host locs (first 10 of each).
apple.com/sitemap.xml was a urlset, 855 URLs, URL set with 855 URLs (pass), and a 20-URL sample. example.com/sitemap.xml failed: Could not fetch a valid XML sitemap. github.com/sitemap.xml returned an empty body. Child rows expose Validate for a nested file.
Why this matters
A sitemap is a hint list. If locs are relative, off-host, or over the 50,000 / 50MB protocol cap, many parsers stop or skip the file, so the URLs you thought you submitted never enter the queue.
The first-20 sample exists so a 855-URL file cannot turn this run into a full site crawl. A 0 / 20 sample failed line does not prove URL 21 is live. Disallowed paths can still sit in a pass urlset; robots.txt Tester is the other half of that check.
Limits and privacy
One public sitemap or origin per run. Loopback and reserved IPs are rejected. Gzip decode stops at 1.5MB. About 20 validations per minute on your network. The sample is 20 locs. No login and no Search Console ping.
Common mistakes
Reading a pass urlset as proof every loc returns 200. Only the sample is requested.
Pasting /sitemap.xml on a host that 404s that path and stopping. Paste the origin so robots.txt Sitemap: lines can be tried.
Treating lastmod dates as scored. They are collected as loc values only. Quality of lastmod is not graded.
FAQs
- Do you check every URL in the sitemap?
- No. A sample of the first 20 locs, to protect the host. Protocol checks still cover the whole file we parsed.
- What are the 50k and 50MB flags?
- Sitemap protocol limits. Over 50,000 URLs or over 50MB uncompressed is a critical protocol error.
- Is gzip supported?
- Yes on input: .xml.gz, gzip content-type, or gzip magic bytes. Decode is capped at 1.5MB.
- Are image or video sitemaps validated?
- locs are collected. Extension-specific image and video rules are not applied.
- What if I paste the homepage?
- If the response is HTML, we look at robots.txt Sitemap: lines and then default files such as /sitemap.xml.
- Why did example.com fail Validate sitemap?
- No parseable urlset or index was found at that address, and the HTML fallback did not yield a file either. apple.com/sitemap.xml parsed as a urlset of 855 URLs. github.com/sitemap.xml was an empty response, not XML.
- What does Sample failed show?
- How many of the first 20 locs failed to return 200, written as failed over sampled. HEAD is tried first, then GET. Zero failed does not certify the remaining 835 URLs on a file like Apple's.
- Can I validate more than the first 20 children?
- An index lists the first 20 child sitemaps per level. Each row has Validate to open that nested file. Deeper indexes recurse. There is no export of the full loc list.