A sitemap that was right yesterday may be wrong today.

Sitemapaudit fetches your sitemap, follows its index, and requests every URL it lists. It tells you, in plain language, which ones still answer 200 and which ones have drifted — 404s, redirects, and lastmod values that do not mean what they claim.

What it checks
200 response
URLs that still serve live pages
404 and 4xx
Pages listed in the sitemap that no longer exist
Redirects
URLs that now point somewhere else — sometimes to a different host
lastmod honesty
Dates that are identical across every URL (generator-stamped) or set in the future
Sitemap index support
Follows one level of sitemap-index recursion to child sitemaps
Cross-host detection
URLs that redirect to a different host than the sitemap itself
What this is not

Not a validator

Validators check whether the XML is well-formed, which it almost always is. Sitemapaudit checks for drift — URLs that were correct when the sitemap was generated and are now broken.

Not a crawler

It requests every URL once, on demand. It does not crawl linked pages, follow pagination, or index anything. It answers one question about one sitemap.

Not a monitoring tool

No scheduled checks, no alerts, no email. This is a point-in-time diagnostic. If you need recurring audits, that feature is planned but not yet available.

Quick start

Paste your sitemap URL into the input on the app page and click Audit. The tool returns a report within seconds.

Example: POST /api/audit { "sitemap_url": "https://example.com/sitemap.xml" }

Limitations
50-URL cap. A maximum of 50 URLs are checked per audit. Larger sitemaps are sampled.
Cloudflare-blocked hosts. This tool cannot reach websites hosted behind Cloudflare. Those URLs will appear as "blocked" rather than as unreachable.
Point-in-time. Results reflect the state of each URL at the moment of the request and may change if the site is redeployed.
Sitemap-index recursion is one level deep (capped at 20 child sitemaps).