§
§ · free tool

XML sitemap validator. Sitemaps.org spec.

Paste a sitemap.xml; we parse it in your browser and run the full sitemaps.org spec: namespace, required per URL, optional // format, 50,000-URL limit, 50 MB uncompressed limit, HTTPS consistency, and same-domain rule.

Paste sitemap.xml; we parse it via the browser's DOMParser and run the full sitemaps.org 0.9 spec check: urlset namespace, required <loc> per URL, ISO-8601 <lastmod>, valid <changefreq> enum, <priority> 0.0-1.0, 50,000-URL limit, HTTPS consistency, same-domain rule. Also handles sitemap-index format.

Try:
summary
Paste sitemap and click Validate.
Sources used by this validator

All checks run in JavaScript on your device. No fetch, no log.

§ 02 · what gets checked

Twelve checks. Spec + Google guidance.

Syntax + namespace. The XML must parse cleanly and the root element must be either <urlset> (regular sitemap) or <sitemapindex> (a sitemap of sitemaps). The xmlns declaration must reference http://www.sitemaps.org/schemas/sitemap/0.9 — this is what tells crawlers the document follows the standard. Missing namespace causes some crawlers to ignore the file.

Required <loc> per URL. Every <url> child must contain a <loc> with a valid absolute URL. Relative URLs (/products/widget) are not valid in sitemaps; the spec requires fully-qualified URLs (https://example.com/products/widget). Empty <loc> tags are also invalid — the validator reports the count.

Date format. <lastmod> must be ISO-8601: 2026-04-15 for date-only, or 2026-04-15T14:32:00+00:00 for date-time-with-timezone. Other formats (04/15/2026, 2026-Apr-15) cause crawlers to ignore the lastmod hint, which weakens its value as a freshness signal.

Changefreq enum. <changefreq> must be exactly one of: always, hourly, daily, weekly, monthly, yearly, never. Anything else (often "often", "weekly-ish", or empty) is a spec violation. Note that Google has stated it largely ignores changefreq in favor of crawl-budget heuristics, but the spec still requires the field be valid.

Priority range. <priority> must be a decimal between 0.0 and 1.0 inclusive. Values outside this range are spec violations. As with changefreq, Google has de-emphasized priority for ranking, but the field still must be in-range to pass validation.

Hard limits. 50,000 URLs maximum per sitemap; 50 MB uncompressed file size. Beyond either limit, split into multiple sitemap files referenced by a single sitemap-index. The validator counts URLs and warns above 45,000 (close to limit) and fails above 50,000.

Same-origin rule. All URLs in a sitemap should belong to the same origin as where the sitemap is served. Mixing origins (example.com URLs in a sitemap served from other-site.com) breaks crawler trust signals — Google and Bing will only crawl URLs from the host the sitemap is served from. Mixed http/https within one sitemap is allowed by the spec but strongly discouraged in practice.

Duplicate URLs. Repeating the same <loc> within one sitemap wastes crawl budget and creates ambiguity. The validator reports the count; usually a CMS bug or a templating error generated the duplicates.

§ 03 · questions

Six questions users ask.

What spec does this validator check against?

The sitemaps.org 0.9 protocol — the canonical specification for XML sitemaps adopted by Google, Bing, and Yahoo. It defines the urlset root element with the http://www.sitemaps.org/schemas/sitemap/0.9 namespace, the <url> child element, required <loc>, and optional <lastmod>/<changefreq>/<priority>. The same spec defines the sitemap-index format for sites with more than 50,000 URLs (a sitemapindex root pointing to multiple sitemap files).

What are the hard limits?

Per the sitemaps.org spec: 50,000 URL entries per sitemap, 50 MB uncompressed file size. Above either, split into multiple sitemap files referenced from a single sitemap-index file. Google publishes the same limits in its documentation. The validator counts URLs and flags any sitemap that exceeds 50,000.

Should every URL use the same protocol and domain?

Yes. A sitemap submitted at https://example.com/sitemap.xml should only contain URLs under https://example.com/. Mixing http and https in one sitemap is allowed by the spec but breaks crawler trust signals. Mixing different domains (example.com and other-domain.com) is not allowed — Google and Bing only crawl URLs from the host that the sitemap is served from. The validator flags both as warnings.

What format do <lastmod> values need?

ISO-8601: 2026-04-15 or 2026-04-15T14:32:00+00:00. Other date formats (MM/DD/YYYY, RFC 2822) are not valid sitemap dates and cause Google to ignore the lastmod hint. The validator regex-checks every lastmod and reports any that fail ISO-8601.

What if my sitemap is gzipped (.xml.gz)?

Decompress first; this validator works on raw XML. Most browsers can decompress a gzipped sitemap by opening the .xml.gz URL in a tab — the browser auto-decompresses for display. Copy the decompressed XML and paste here. Alternatively run gunzip locally and paste the resulting .xml content.

Does this tool log my sitemap?

No. The XML is parsed entirely in your browser using DOMParser. Nothing is sent to Digital Heroes servers. Recent validations stay in your browser's localStorage. No signup, no email, no analytics beacon includes the sitemap content.