Skip to content
Metric VaultHelp Center
Open app

Sitemap Validator

Fetches and parses your XML sitemap live, then scores it on structure, URL count, lastmod coverage, HTTPS and file size.

Last updated 2026-08-06

Summary#

Sitemap Validator finds your XML sitemap, parses it live, and tells you whether search engines can use it. It reports how many URLs it declares, how many carry a lastmod date, how big the file is, and which of Google's limits you are near.

Purpose#

Your sitemap is the list of pages you are asking Google to look at. When it is broken or stale, crawlers fall back to following links, and pages nothing links to become effectively invisible.

A sitemap almost never fails loudly. It returns a 200 and looks fine in a browser while half its URLs carry no lastmod date. This tool answers one question: if Google fetched this file right now, would it help or waste crawl budget?

Overview#

Enter a domain. The tool tries three standard locations in order — /sitemap.xml, /sitemap_index.xml, /sitemap-index.xml — and analyses the first that responds.

It reads the raw XML, decides whether the file is a urlset (a list of pages) or a sitemapindex (a list of other sitemaps), counts the URLs, and samples entries to measure lastmod, changefreq and priority coverage. When the root is an index, it follows up to ten nested sitemaps and adds their counts together, so the total reflects the whole set rather than the index file alone.

It is a plain HTTP fetch of your own site. No data provider and no AI produces the numbers. See Reading a result for the shared result layout.

Benefits#

  • A verdict, not a file dump: one score and a named tier.
  • Nested sitemaps are followed and aggregated, not counted as one file.
  • Freshness is measured. Average lastmod age shows whether your dates are a real signal or frozen at build time.
  • Free on every plan, so you can check a client site before quoting.

Use Cases#

  • Pre-launch check. After a migration, confirm the new sitemap resolves, parses and lists the new URLs before you submit it.
  • Indexing investigation. Pages are missing from search; check whether they are even declared before blaming anything else.
  • Crawl budget triage. A sitemap past 50,000 URLs or 50 MB needs splitting, and this says so.
  • Stale content audit. An average lastmod age in years means old content or a CMS that is not stamping updates.
  • Competitor sizing. See how many pages a rival publishes and how actively they maintain them.

Requirements#

  • A signed-in account. Any plan, including Free.
  • A publicly reachable domain. Sites behind a login or an allowlist cannot be fetched.
  • No integration, no verified domain, no credits.

Permissions#

Available on every plan and to every team role. No tier sees a reduced version or an upgrade prompt here.

Cost#

0 credits. This is one of the free technical tools: a direct fetch of your site with no paid data provider, so it never touches your monthly allowance. The run button says Validate Sitemap · FREE.

Free runs still count toward the hourly ceiling of 100 light-tool calls, described in Tool limits and performance. For the allowance itself, see How credits work.

Dashboard → Site Health → Sitemap Validator

Inputs#

FieldAcceptsRequiredDefaultValidationNotes
Domain field (e.g. nike.com)A bare domain or full URLYesEmptyEmpty returns Enter a value first.; https:// is added when missingOnly the origin is used; a path is ignored, because sitemaps are sought at the site root
Validate Sitemap · FREERuns the check. Enter in the field does the same
Try sampleRe-runs with whatever is already in the field. It does not fill an example on this screen

Private, loopback and internal addresses are refused before any fetch.

Step-by-Step Guide#

  1. Open Site Health, then select Sitemap Validator.
  2. Type your domain in the field marked e.g. nike.com.
  3. Select Validate Sitemap · FREE, or press Enter.
  4. Wait while the panel reads Analyzing… this can take a few seconds for live data. Large indexes take longer because nested files are fetched.
  5. Read the tier badge, then the Best-Practice Checklist.
  6. Work through Priority Fixes, critical items first.
  7. Export with Export PDF, Export Excel, Export CSV, Export JSON or Share public link at the top of the card.

Reading the Results#

The domain, a favicon and one tier badge for the whole file: HEALTHY, NEEDS WORK, CRITICAL or INVALID.

If nothing was found you get a NOT FOUND header reading No sitemap found, the message "We checked the standard locations and could not retrieve a valid sitemap. Declare one in your robots.txt or provide a custom path.", and a Locations Checked list of every URL tried. That list tells you exactly where the tool looked, so you can see whether your sitemap simply lives elsewhere.

The four KPI tiles#

TileShowsGoodBadAction
Total URLsEvery URL across the root and up to ten nested sitemaps, with a direct · nested splitClose to your real page countFar below it, or zeroA low count means whole sections are missing from the sitemap
Lastmod coveragePercentage of sampled URLs carrying <lastmod>80%+Under 50%Configure the CMS to emit lastmod; without it crawlers cannot tell what changed
Avg lastmod ageMean age of the sampled dates, read as Fresh under 60 days, Aging under 180, Stale — refresh beyondFreshStale, or when no dates existEither the content is genuinely old or the dates are frozen at build time
Sitemap sizeRoot file size, labelled Within limits, Large — gzip above 10 MB, or Over 50MB limitWithin limitsOver 50 MBSplit into an index with smaller children and serve gzipped

Sitemap Score#

A 0–100 composite starting at 100. It loses a large amount when the XML structure is invalid, more per critical issue, less per warning, plus extra penalties when lastmod coverage is under half, when the file exceeds 50,000 URLs, or when it exceeds 50 MB. The label is the tier: 80+ HEALTHY, 60–79 NEEDS WORK, 40–59 CRITICAL, below 40 INVALID.

Treat it as triage, not a target. A 100 with 12 URLs on a 2,000-page site is worse than an 80 that lists everything.

Index Composition#

A donut over the sampled URLs split into Lastmod, Changefreq, Priority and Bare URLs. A large bare segment means most entries are a <loc> and nothing else. That is valid, and Google will still crawl it, but you give up the freshness signal that makes recrawls efficient.

Best-Practice Checklist#

Six pass/fail checks with an N / 6 passing count: Valid XML structure (an XML declaration plus a urlset or sitemapindex root), Under 50MB uncompressed, Under 50,000 URLs per file, All URLs use HTTPS, Lastmod on majority of URLs, and Recognized sitemap type. Every failure maps to one concrete change in how the file is generated.

Priority Fixes#

Parsing issues split as N critical · N warning. Critical issues are structural — an invalid root, or a urlset with no <url> entries. Warnings are limits and coverage — over 50,000 URLs, over 50 MB, or more than half the sample missing lastmod. Fix critical first: a file that does not parse gives you nothing however good the rest is.

Nested Sitemaps#

Shown only for an index, headed N total · N URLs, with each child and the count it contributed. Use it to spot a child returning zero or failing to load, the usual cause of a total that looks too low.

Sampled URLs#

Up to 24 entries, each tagged HTTPS or HTTP, LASTMOD or NO LASTMOD, plus priority and changefreq where present. An HTTP tag is worth chasing: an https site listing http URLs asks crawlers to follow a redirect for every page.

A plain-language read of the findings, then an ordered list of changes. Below that, Get recommendations can turn the result into a prioritized, step-by-step plan — a separate paid feature, described in Get Recommendations.

Examples#

Example

Example: A 900-page publisher site returns NEEDS WORK at 68. Total URLs shows 902 (0 direct · 902 nested), so the index is followed correctly. Lastmod coverage is 41% and average age 2.4y. The checklist passes five of six, failing Lastmod on majority of URLs, and Priority Fixes lists one warning: Over half of URLs are missing <lastmod>. The fix is in the CMS template, which stamps lastmod on posts but omits it on category and tag pages. After correction, coverage reaches 96% and the score 91.

Screenshots#

Screenshot
The Sitemap Validator screen before a run, showing the TECHNICAL TOOL / REAL DATA / SITEMAP VALIDATOR badges, the "e.g. nike.com" field and the "Validate Sitemap · FREE" button.
Screenshot
A completed result with the HEALTHY tier badge, the four KPI tiles and the Sitemap Score gauge.
Screenshot
The Best-Practice Checklist showing 5 of 6 passing, with Priority Fixes below it.
Screenshot
The NOT FOUND state showing the "No sitemap found" header and the Locations Checked list.

Tips#

  • Run it on the bare domain. The tool always looks at the site root.
  • If your sitemap lives at a custom path, declare it in robots.txt and confirm that with robots.txt Auditor. This tool checks only the three standard locations.
  • Compare Total URLs against the page count you expect. That single comparison catches more indexing problems than any other number here.
  • Export to JSON to diff the sampled URL list between two runs.

Best Practices#

  • Keep every sitemap under 50,000 URLs and 50 MB; use an index past either line.
  • Emit lastmod on every entry, reflecting a real content change rather than the build timestamp. A date that moves on every deploy is worse than none.
  • List canonical, indexable, 200-status URLs only. Redirects, noindex pages and 404s waste crawl budget.
  • Serve the file gzipped once it passes a few megabytes.
  • Re-run after any migration, CMS upgrade or URL structure change.

Common Mistakes#

  • Selecting Try sample with an empty field. Here that button runs the tool rather than filling an example, so you get Enter a value first.
  • Entering a full page URL and expecting that page to be checked. Only the origin is used.
  • Reading Total URLs as pages indexed. It is what your sitemap declares.
  • Assuming a 100 means complete coverage. The score measures the quality of the file that exists, not whether it lists everything it should.
  • Ignoring an HTTP tag in the sampled list because the site loads over HTTPS. The sitemap is what crawlers read.

Limitations#

  • Only the three standard locations are tried. A sitemap at a custom path reports as not found even when declared in robots.txt.
  • The URL sample is capped at the first 200 <url> entries, and the list shows up to 24. Coverage percentages are measured on that sample.
  • For an index, at most ten nested sitemaps are fetched, so Total URLs on a very large site is a floor rather than an exact count.
  • It does not check whether each listed URL resolves, is canonical or is indexable. Use Site Audit for page-level status.
  • Image, video and news sitemap extensions are not validated separately.
  • Results are not cached; every run refetches the file.

Troubleshooting#

SymptomLikely causeFix
No sitemap found but one existsIt is at a non-standard path, or the server returns a non-200 to anonymous requestsConfirm it loads in a private window, then alias it to /sitemap.xml
Enter a value first.The field was emptyType a domain and re-run
Total URLs far lower than expectedThe index has more than ten children, or a child failed to loadCheck the Nested Sitemaps list for a child returning zero
Score is INVALIDThe XML declaration or root element is missing or malformedRegenerate the file; a stray character before <?xml is a common cause
Hourly fair-use limit reached…Over 100 light-tool calls this hourWait for the hourly reset; see Tool limits and performance
Stuck on the loading lineThe site is slow or blocking automated requestsRetry once; if it persists see A tool failed to run

FAQs#

Does this cost credits? No. It is 0 credits on every plan including Free, and never counts against your monthly allowance. Only the hourly fair-use ceiling applies.

Why does it not check the sitemap declared in my robots.txt? It checks the three standard locations only. Use robots.txt Auditor to confirm the declaration, and consider aliasing your sitemap to /sitemap.xml so both crawlers and this tool find it.

My sitemap has 40,000 URLs but the sample says 200. Is that wrong? No. The URL count is read from the whole file; only the metadata sample is capped at 200 entries. Percentages such as lastmod coverage are measured on that sample and are representative rather than exhaustive.

How does this differ from the free public version? The public tool is the same check without an account. The in-app version exports in four formats and can hand its findings to the recommendations panel. See Sitemap validator.

Should I worry that changefreq and priority are missing? Not particularly. Google has said it largely ignores both. lastmod carries the real weight, which is why it gets its own KPI tile and checklist row.

See also

Was this article helpful?