Skip to content
SEO Madmanby Adam Hafez
Free tool

XML sitemap structure validator

Paste raw sitemap XML for real parse errors, a namespace and structure check, and the 50,000 URL and 50MB limits from the sitemaps.org protocol.

Runs entirely in your browser. Nothing you enter is uploaded, logged or stored.

Nothing you paste here is sent anywhere; it is parsed in your browser only. This does not fetch a URL, so it cannot check a sitemap you only have a link to - paste the raw XML content.

    Key takeaways

    • This tool parses XML in the browser with DOMParser and reports real parse errors instead of assuming the sitemap is valid.
    • A sitemap file must contain no more than 50,000 URLs and stay under 50MB uncompressed, per the sitemaps.org protocol and Google's own documentation.
    • Every url entry needs an absolute loc address, while lastmod, changefreq, and priority remain optional but are checked when present.
    • Google ignores changefreq and priority values entirely, even though the protocol still defines and allows them.
    • This validator checks structure only, so a clean pass does not confirm the listed pages actually exist or can be indexed.

    What it takes

    • A pasted XML sitemap document, edited directly in the textarea

    More tools

    All of them free, all of them browser-only.

    Browse the tools

    How to use it

    1. 1Paste the sitemap XMLCopy the raw contents of the sitemap file itself, not a link to it; this tool does not fetch URLs, so nothing you paste is sent anywhere.
    2. 2Fix XML parse errors firstDOMParser reports a parsererror on malformed markup, such as an unclosed tag or an unescaped ampersand, before any structural check can run.
    3. 3Check the root element and namespaceThe root must be a urlset element declared in the sitemap 0.9 namespace; a missing or wrong namespace is flagged even when the XML itself is well formed.
    4. 4Review each url entryA missing or non-absolute loc is a failure; an invalid lastmod date, an unrecognized changefreq value, or an out-of-range priority is a warning.
    5. 5Check the URL count and file sizeThe summary counts url entries and file size against the 50,000-URL and 50MB limits and fails the check if either is exceeded.

    What this checks

    The validator runs two passes. The first parses the pasted text with the browser’s native DOMParser, using the text/xml MIME type; if the markup is malformed, DOMParser inserts a parsererror node into the result instead of throwing, so the tool detects that node and shows the message it contains. The second pass only runs on well-formed XML: it confirms the root element is urlset declared in the sitemap 0.9 namespace, then walks every url entry checking for an absolute loc, a valid W3C Datetime lastmod if present, a changefreq value from the seven the protocol defines (always, hourly, daily, weekly, monthly, yearly, never), and a priority between 0.0 and 1.0 if present.

    The real limits

    A single sitemap file may list no more than 50,000 URLs and must be no larger than 50MB (52,428,800 bytes) uncompressed; both figures come directly from the sitemaps.org protocol page and are repeated in Google’s own sitemap documentation. A site with more URLs than that needs multiple sitemap files listed in a sitemap index instead of one oversized file. lastmod, changefreq, and priority are all optional per the protocol, and Google states plainly that it ignores changefreq and priority entirely when crawling, using lastmod only when it can verify the date is accurate.

    What this cannot check

    Structural validity is not the same as crawlability. This tool never fetches the URLs it finds, so it cannot confirm any loc actually resolves, returns a successful status, or points at a page that is eligible for indexing. It also cannot tell you whether a page on the live site is missing from the sitemap altogether, since it only ever sees what was pasted in.

    Using the result

    Fix a parse error before reading anything else; a broken document means the structural checks never run. Once the XML is well formed, treat a missing loc as something to fix immediately, since a url entry without one is not a URL at all, and treat a bad lastmod, changefreq, or priority as a smaller cleanup rather than a blocker, since none of the three is required by the protocol. Confirm the sitemap is actually being read by submitting it through your search engine’s own webmaster tools, which check reachability and indexing eligibility this tool does not attempt to replicate.

    Sources

    1. 1.Sitemaps XML format - sitemaps.orgPrimary
    2. 2.Build and submit a sitemap - Google Search CentralPrimary

    Frequently asked questions

    Does this tool fetch my sitemap from its live URL?

    No. It only parses XML you paste into the textarea, entirely in your browser. This avoids a CORS-dependent network fetch and means nothing you paste is sent anywhere, but it also means you have to copy the file's contents yourself.

    Why does the namespace need to start with an unencrypted address?

    The sitemap 0.9 namespace is a fixed identifier string defined by the protocol, not a link the browser visits. Sitemaps.org has never revised it, so a sitemap using any other string for that value is not a valid sitemap regardless of how the rest of the file looks.

    Does a clean result mean my sitemap will be crawled correctly?

    It means the file is well formed and structurally correct. It does not confirm that the listed URLs exist, return a 200 status, or are eligible for indexing, and it cannot check pages missing from the file entirely.

    Tools

    Hreflang XML sitemap generator

    Build a sitemap with xhtml:link hreflang annotations for localized pages, with every alternate listed on every URL as Google's documentation requires.