free tool · no login
Sitemap Checker and XML Sitemap Validator
Type a domain or a sitemap address. The checker finds every sitemap, follows sitemap indexes down to the last file, validates the XML against the sitemap rules, checks every listed URL, and opens a sample of the pages to see what Google would find there. Each finding comes with a plain explanation, the fix, and the guide that goes deeper.
- 98 checks across discovery, XML, URLs, dates, image, video and news extensions, hreflang and live pages.
- Reads .xml and .xml.gz sitemaps, indexes of any size, 40 files per round with a button to carry on.
- Score, findings by severity, a table per sitemap and per URL, and two CSV downloads.
Check a sitemap
01 Type a domain or a sitemap address
A domain finds every sitemap for you: the Sitemap: lines in robots.txt, then the usual addresses used by WordPress, Yoast, Rank Math, Shopify, Wix, Squarespace and Blogger. A full address checks that one file and everything it lists.
The sample is spread evenly across every sitemap, up to 500 pages. Each page is opened once by a reader on this domain that keeps no copy and writes no log.
02 Run the check
nothing checked yet
Sitemap report
0
score out of 100
Findings
No findings at all. This sitemap does what a sitemap should.
Sitemaps read
| Sitemap | Type | Status | URLs | Size | Time | Findings |
|---|
URLs
| URL | lastmod | Live | Findings |
|---|
This sitemap is in good shape.
If pages from it still are not indexing, the sitemap is not the reason. Read what Search Console is actually reporting next.
There are real problems here, and each one has a name.
Start with the first error above and follow its guide. If you would rather have someone read the export first, send it to me and I will tell you what the pattern is, free.
This sitemap is working against the site.
At this score it is usually one plugin setting or one template repeated, not hundreds of separate mistakes. See how the indexing work runs Or send me the export first
What it checks
Every line below is a finding the report can show, in the same words. Errors stop pages being crawled or indexed, warnings waste crawling or confuse Google, and notes are worth knowing but cost nothing.
Finding the sitemap
- error No sitemap found
- error robots.txt failed to load
- note No robots.txt file
- note Sitemap not listed in robots.txt
- error robots.txt points to a missing sitemap
- warning Sitemap: line is not a full URL
- note Not every sitemap was checked yet
- note URL limit for one run reached
Fetching each file
- error Sitemap did not return 200
- error Sitemap could not be fetched
- error Sitemap took too long
- error Sitemap redirects in a loop
- error Address refused
- warning Sitemap address redirects
- warning Unusual Content-Type
- note Sitemap file carries noindex
- note Slow sitemap
- error Got a web page, not a sitemap
- error Empty file
- error Broken gzip file
XML validity and limits
- error Not UTF-8
- error Wrong encoding declared
- note UTF-8 byte order mark
- error XML is not well-formed
- error Unescaped & or unknown entity
- error Wrong root element
- error Wrong or missing namespace
- error Index and sitemap mixed
- warning Unknown tag
- error Entry without <loc>
- error Entry with two <loc> tags
- error More than 50,000 URLs in one file
- error More than 50,000 sitemaps in one index
- error Larger than 50 MB
- warning Sitemap lists no URLs
- warning Index lists no sitemaps
- error Index inside an index
- warning Child sitemap on another host
- warning Bad lastmod in the index
URL hygiene
- error Not a valid URL
- error Relative URL
- error URL longer than 2,048 characters
- warning URL contains #
- warning Characters not encoded
- note URL with parameters
- warning Tracking parameter in URL
- warning URL with a # fragment
- warning URL on a different domain
- warning www and non-www mixed
- warning http and https mixed
- warning URL outside the sitemap's folder
- warning Listed twice in one sitemap
- warning Listed in more than one sitemap
- warning Listed with and without trailing slash
- note Trailing slash used both ways
- error Blocked by robots.txt
lastmod, changefreq and priority
- warning lastmod in the wrong format
- warning lastmod in the future
- note No lastmod
- warning Every URL has the same lastmod
- warning lastmod is just the time the sitemap was built
- note changefreq is ignored by Google
- note priority is ignored by Google
- warning changefreq has an unknown value
- warning priority out of range
Image, video and news extensions
- error Image entry without image:loc
- warning Image address is not a full URL
- note Retired image tags
- warning More than 1,000 images on one URL
- error Video entry missing a required field
- warning Video address is not a full URL
- warning Video duration out of range
- warning Video description too long
- warning content_loc is the page itself
- warning Video date in the wrong format
- error News entry missing a required field
- error News language code not valid
- error News date in the wrong format
- warning News article older than two days
- note Retired news tags
- error More than 1,000 news entries
hreflang alternates
- warning xhtml:link without rel="alternate"
- error hreflang link missing hreflang or href
- error Invalid hreflang code
- error hreflang href is not a full URL
- error One hreflang code points to two URLs
- warning hreflang set does not include the page itself
- warning Missing return link
- note Alternate not in the sitemap
- note No x-default
Live page checks
- error Page is broken
- warning Page redirects
- error noindex meta tag
- error noindex in X-Robots-Tag header
- warning Canonical points elsewhere
- warning Looks like a soft 404
- note Slow page
- note Page could not be checked
A sitemap is one half of what crawlers read. The robots.txt testerchecks the other half, rule by rule, for Googlebot and the AI crawlers. When one listed page comes back noindexed or canonicalised elsewhere, the indexability checkergoes through that page in full, redirect chain and canonical target included. And once the sitemap is clean, thesitemap index coverage checker tells you how much of it Google actually kept, straight from Search Console.
Where your data actually goes
Browsers are not allowed to read another site's files, so two small readers on this domain do it./api/sitemap-check reads robots.txt and one sitemap file per request, unzips it if needed, and returns the entries. /api/sitemap-health opens the sampled pages and returns only the status, redirect target, robots directives, canonical and title.
Neither writes a log line or stores anything. The report is built in this tab, so reloading destroys it, and the CSV files are made in the browser. Full detail on the privacy page.
The limits, stated plainly
- 40 sitemap files per round. A bigger index gets a button to read the next 40, and the report grows as you go.
- 150,000 URLs per run. Past that the tab gets slow, so the run stops reading new files and says so. Check a single child sitemap for the rest.
- 50 MB per file, unzipped, which is the protocol limit. A larger file is read up to 50 MB and reported as too large.
- Three levels of index. An index inside an index is followed and flagged, because Google will not follow it.
- 50 live pages by default, 500 at most, opened a few at a time so the site is never hammered. A page that does not answer in 12 seconds gets one gentler second try.
- robots.txt is matched for Googlebot on the host it came from, with Google's precedence rules.
- It reads what the site serves to this reader. A site that treats Googlebot differently can show Google something else.
Straight answers
What is the difference between a sitemap checker and a sitemap validator?
A validator asks whether the file follows the rules: well-formed XML, the right root element and
namespace, a <loc> in every entry, under 50,000 URLs and 50 MB. A checker asks whether
the URLs inside are worth listing: do they load, are they on the right host, are they blocked or
marked noindex. This tool does both in one run, because a sitemap can be perfectly valid and still
point Google at pages it will never index.
Do I need to know where my sitemap is?
No. Type the domain and the checker reads the Sitemap: lines in robots.txt, then tries the addresses
the common platforms use: /sitemap.xml, /sitemap_index.xml for Yoast and Rank
Math, /wp-sitemap.xml for WordPress itself, and a few more. If you already know the address,
paste it and only that file and the files it lists are read.
Why does it only open a sample of the pages?
Reading the sitemap files is cheap, so every listed URL gets the file checks. Opening each page is not: it costs the site you are checking a real request. The default is 50 pages spread evenly across all the sitemaps, and you can raise it to 500. A pattern that affects a whole template shows up in an even sample long before you would need to open every page.
Does Google use changefreq and priority?
No. Google has said it ignores both, so the report lists them as notes, not faults. They do no harm.
What Google does use is an accurate lastmod, which is why the checker looks hard at it: a
date in the future, the same date on every URL, or every date stamped in the hour before the file was
fetched all teach Google to stop trusting the field.
My sitemap is valid. Why are pages from it still not indexed?
Because a sitemap only asks. If the pages it lists redirect, return errors, carry noindex or point their canonical somewhere else, Google declines, and the live page checks here show which of those applies. If the sample comes back clean, the reason is on the page itself, and the guide to every Search Console status is the next place to look.
Is anything I check stored?
No. Two small readers on this domain fetch what your browser is not allowed to read directly, and neither writes a log line or keeps a copy. The report is built in your tab, so closing it destroys it. The CSV downloads are made in the browser too.
Send me the findings CSV and I will tell you which one cause is behind most of it, free.Send it on WhatsApp.