AZ Tools

Sitemap.xml Validator & Inspector

Network

Validates a `<urlset>` sitemap or a `<sitemapindex>` against the Sitemaps 0.9 protocol used by Google, Bing and every other major search engine. Detects the root element automatically, then checks: URL or sitemap count vs the 50 000 per-file limit; uncompressed size vs the 50 MB limit; absolute http/https URLs only; `<loc>` length ≤ 2048 chars; `changefreq` is one of always / hourly / daily / weekly / monthly / yearly / never; `priority` is in [0.0, 1.0]; `lastmod` is a valid W3C / ISO 8601 datetime and not in the future; and warns about duplicate `<loc>` values. For `<urlset>` files it also breaks down the distribution of changefreq, priority buckets and hostname so you can spot mistakes (e.g. every URL set to priority 1.0, which Google explicitly tells you not to do, or a sitemap accidentally mixing two different hostnames).

Nothing yet — paste, drop or load a sitemap.xml to start.

Validates against Sitemaps 0.9 (sitemaps.org). Limits: 50 000 URLs per sitemap, 50 MB uncompressed, 2048 chars per <loc>. Index files may contain up to 50 000 child sitemaps. All checks run locally — no URLs are fetched.

How to use

  1. Paste the contents of your sitemap.xml into the box, or load it from disk via the Load file button.
  2. If you don't have one to hand, click Paste sample to load a tiny example.
  3. Read the status badge: errors block search engines from parsing the sitemap; warnings are valid-but-suspicious cases.
  4. Look at the changefreq / priority / host histograms below to spot patterns (e.g. all priorities at 1.0 — meaningless; a mixed host — usually a mistake).

Frequently asked questions

Does this actually fetch URLs in my sitemap?
No — everything happens in your browser, no network calls. The validator only parses the XML you provide and checks it against the Sitemaps 0.9 spec. To verify that the URLs themselves are reachable, use a separate crawler or `curl -I`.
Why does Google say not to set every priority to 1.0?
Because `priority` is relative within your own sitemap, not absolute. If every URL is 1.0, it's the same as if none had priority at all — the field carries zero information. Google's documentation explicitly says it ignores sitemaps where every priority is the same. Use a meaningful range (homepage 1.0, categories 0.8, articles 0.6, archive 0.3 — or just leave priority out).
What's a sitemap index, and when do I need one?
A `<sitemapindex>` is a sitemap-of-sitemaps. You need it when a single sitemap would exceed 50 000 URLs or 50 MB uncompressed. The index lists child sitemaps by URL; each child is a regular `<urlset>`. Google supports up to 50 000 child sitemaps per index, and indexes can be nested.
What lastmod formats are accepted?
Per the spec, W3C Datetime — either a date (`2026-06-04`) or a full ISO 8601 timestamp with offset (`2026-06-04T12:00:00+00:00`). Anything else is flagged as a warning. `Date.parse` is permissive enough that most common formats validate, but stick to the spec to be safe across all search engines.

Related tools