By Updated

XML Sitemap Validator

Validate XML sitemaps against the sitemaps.org schema. Checks URL count, file size, lastmod ISO 8601, changefreq enum, and priority range. Recursively validates sitemap-index files.

Interactive tool

XML

Validation

Live

What is the XML Sitemap Validator?

A free validator for XML sitemaps and sitemap-index files against the sitemaps.org schema. It checks every required and optional field, catches the limits Google and Bing enforce silently (50,000 URLs, 50 MB file size, 2,048-character loc), and recurses into sitemap-index files so you can validate a multi-sitemap setup in one shot.

How to Use the Sitemap Validator

  1. 1Paste your sitemap XML or fetch it from a live URL
  2. 2Read the live validation result: errors, warnings, and informational notes
  3. 3For sitemap-index files, click "Validate up to 10 children" to recurse
  4. 4Fix any errors flagged, then re-validate
  5. 5After deploying, submit the validated URL to Google Search Console > Sitemaps
What you get

Key features

sitemaps.org schema

Validates against the canonical 0.9 schema: the same one Google and Bing enforce

Limit checks

50,000 URLs per file, 50 MB file size, 2,048-char loc length, all enforced inline

Field-level validation

ISO 8601 lastmod, changefreq enum, 0.0 to 1.0 priority, http(s) loc: every required and optional field is checked

Sitemap-index recursion

Detects <sitemapindex> root and validates up to 10 child sitemaps via our SSRF-safe backend

XML namespace check

Warns when the xmlns attribute is missing or incorrect: a common cause of silent rejection

URL list explorer

Browse every <loc> in the sitemap with its lastmod alongside, up to the first 200 entries

Fetch from URL

Hit any /sitemap.xml URL via our SSRF-safe backend: non-public addresses and oversize bodies are blocked

Why Validate a Sitemap?

Search engines treat sitemap errors silently. A malformed lastmod, an unsupported changefreq value, or a sitemap that creeps past 50,001 URLs is not flagged with a popup. It is just quietly skipped or partially indexed. By the time you notice in Search Console, weeks of crawl budget have been wasted. Validating before you deploy is the cheapest insurance you can buy. The sitemaps.org schema is short and stable; this tool implements it exactly.

Common use cases

  • Pre-deploy QA on auto-generated sitemap output
  • Diagnosing why specific URLs aren't being indexed in Search Console
  • Verifying multi-language sitemaps that use <xhtml:link> alternates
  • Confirming a sitemap-index file references valid child sitemaps
  • Catching CMS or framework bugs in lastmod formatting
  • Auditing competitor sitemaps to see how they structure their content

Sitemap-index basics

When a single sitemap exceeds 50,000 URLs or 50 MB, you split it into multiple sitemaps and reference them from a sitemap-index. The index itself can list up to 50,000 child sitemaps. Search engines fetch the index once, then crawl children as needed.

Why we limit recursion to 10 children

Our backend rate-limits per-IP requests to keep the service responsive for everyone. Validating a sitemap-index with thousands of children would exhaust that budget for shared connections. Ten is enough to spot-check a representative sample; for full crawls, validate child sitemaps individually.

Optional fields and what Google actually does

  • lastmod. Google reads it. ISO 8601 only. Bad format = field is silently ignored.
  • changefreq. Google ignores it. Bing reads it. Use it if you also care about Bing.
  • priority. Google ignores it. Bing reads it. Default is 0.5.
  • Conclusion: focus on accurate lastmod first; the others are nice-to-have.

Common errors this tool catches

  • Wrong xmlns ("…sitemap/0.8" instead of "…sitemap/0.9", or missing entirely)
  • lastmod in non-ISO format ("2026/05/10" instead of "2026-05-10")
  • changefreq spelt with a typo ("weakly", "biweekly", etc.)
  • priority outside 0.0 to 1.0
  • Relative or non-http loc URLs
  • urlset with zero URLs
  • sitemapindex pointing at non-existent or wrong-protocol child sitemaps
Pro tips

Tips & best practices

Update lastmod accurately

Lying about lastmod (always returning "today") trains Google to ignore it. Set it to the real last-content-change date.

Keep one canonical version

List only the canonical URL of each page. Don't list both example.com/foo and example.com/foo/.

Mind the 50 MB cap

The 50 MB limit is uncompressed. If you serve sitemap.xml.gz, the gz still has to decompress under 50 MB.

Submit to Search Console

Validation is necessary but not sufficient: the sitemap also has to be discoverable. Submit it in Search Console > Sitemaps and reference it from /robots.txt.

Check the live URL after CDN

Some CDNs strip XML declarations or alter the Content-Type. Always re-validate the live response, not just the source.

Built for trust

Privacy & security

Paste mode runs entirely in your browser. Fetch and recursive validation send only the sitemap URL(s) to our SSRF-safe backend, which applies non-public-address blocking and a response size cap. The URL is not logged.

Frequently Asked Questions

Which sitemap format does this validate?

The sitemaps.org 0.9 schema (xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"), supporting both <urlset> and <sitemapindex> root elements. RSS, Atom, and text-list sitemaps are not supported.

What limits does the sitemaps.org spec enforce?

50,000 URLs per sitemap and 50 MB uncompressed file size. Each <loc> must be ≤ 2,048 characters. Sites that exceed these limits should split into multiple sitemaps and reference them from a sitemap-index.

Does Google use changefreq and priority?

Google ignores both and only reads <loc> and <lastmod>. Bing still reads changefreq and priority. The validator flags malformed values for both because Bing-only sites still benefit, and Google may add support for them later.

How does sitemap-index recursion work?

When the root element is <sitemapindex>, the validator lists every child <sitemap>. Click "Validate up to 10 children" to fetch each child sitemap via our SSRF-safe backend and run the same validation against it. The 10-child limit keeps shared rate budgets healthy.

Are private IP ranges blocked when fetching?

Yes. Our backend refuses any URL that resolves to a non-public address (loopback, private, link-local, or otherwise internal), and enforces a response size cap to prevent abuse.

My sitemap has UTF-8 BOM: does that fail validation?

A leading BOM is silently tolerated by the parser. Some older crawlers reject sitemaps with a BOM, so it is best to omit it.