Sitemap.xml Viewer
Paste the raw XML from an existing sitemap.xml (or a sitemap index file) and see every entry laid out in a readable table.
About the Sitemap.xml Viewer
Sitemaps only tell search engines where pages live, they don't render into anything visible, so debugging a malformed one usually means opening the raw XML in a text editor and squinting at angle brackets. This viewer parses the XML with the browser's own DOMParser instead of scanning text with regular expressions, so nested tags and whitespace get handled the way a real XML parser handles them, and a genuinely broken file is flagged with a clear error rather than silently producing a half-empty table. It reads both a standard urlset sitemap and a sitemapindex file (the kind that just lists other sitemaps for large sites), and shows a dash wherever an optional field like lastmod, changefreq, or priority was left out, since none of those three are required by the sitemap spec. This tool only reads sitemap XML already generated; to build a new sitemap from a list of URLs, use the XML Sitemap Generator instead.
The most common way a sitemap actually breaks
An unescaped ampersand inside a URL is the single most frequent cause of a sitemap failing to parse, a URL containing ?category=shoes&size=10 pasted in raw, without converting that & to &, is invalid XML the moment it appears inside a <loc> tag, even though the exact same string works perfectly fine as an ordinary HTML link. This usually slips in when a sitemap gets generated by string concatenation rather than a proper XML writer, a quick script that builds <loc> tags by directly inserting a URL string without escaping it first. This viewer's parse-error message is the fastest way to catch that class of bug, a plain text editor happily displays the malformed file without complaint, since nothing about it looks wrong to a person reading it.
Why namespace prefixes are handled the way they are
Some sitemap generators and CMS plugins emit XML with a namespace prefix on the root element, <ns:urlset> instead of a plain <urlset>, both are valid XML, but a naive string check for the literal word "urlset" would miss the prefixed version entirely. This viewer strips any namespace prefix before comparing the root element's name, so a prefixed sitemap is recognized and parsed the same way as an unprefixed one, rather than being incorrectly reported as an unrecognized root element.
Why an index file exists at all
A single sitemap file is limited to 50,000 URLs and 50MB uncompressed by the sitemap protocol, a sitemapindex file is how a site past that limit splits its URLs across several sitemap files while still giving search engines one central place to discover all of them. Pasting a sitemapindex in here shows the list of sub-sitemap URLs rather than individual pages, the next step for inspecting one of those in detail is pasting that specific sub-sitemap's own content in separately.
A quick sanity check right after deploying
Fetching a live sitemap.xml URL and pasting the response here right after a deploy or a CMS migration is a fast way to confirm the file actually looks the way it's supposed to, the right number of URLs, sensible lastmod dates, no leftover placeholder or staging URLs that should have been swapped for production ones. Opening a sitemap URL directly in a browser tab works too, but different browsers render raw XML differently, some collapse it into an interactive tree, others show it as plain text, neither gives a clean table view of every entry the way this tool does.
Dashes in the table are informative, not errors
A dash shown for lastmod, changefreq, or priority means that field simply wasn't included for that URL, which is entirely valid, none of the three are required by the sitemap protocol, only loc is mandatory for each entry. Seeing a mix of some URLs with full metadata and others with just a bare loc tag isn't a sign of a broken sitemap, it's a completely normal pattern, especially in a sitemap assembled from multiple sources or generated incrementally over time.
Frequently Asked Questions
Why does my sitemap fail to parse even though it looks fine in a text editor?
The most common cause is an unescaped ampersand inside a URL, & needs to be written as & inside XML, even though it works fine as a plain link elsewhere. A text editor won't flag this since nothing looks visually wrong, but it makes the file invalid XML.
What's the difference between a urlset and a sitemapindex?
A urlset lists actual page URLs directly. A sitemapindex lists other sitemap files instead of pages, used when a site has more URLs than fit in a single sitemap (the protocol caps one file at 50,000 URLs or 50MB). This tool reads both and displays whichever type is pasted in.
Does this tool handle sitemaps with a namespace prefix on the root tag?
Yes. Some generators emit a prefixed root element like ns:urlset instead of plain urlset, both are valid. This viewer strips the namespace prefix before checking the root element type, so a prefixed sitemap is still recognized correctly.
Can this tool build a new sitemap for me?
No, this tool only reads and displays sitemap XML that already exists. To generate a new sitemap from a list of URLs, use the XML Sitemap Generator elsewhere on this site instead.
Why do some URLs in my sitemap show a dash instead of a date or priority?
A dash means that field simply wasn't included for that entry, which is valid, only loc is required by the sitemap protocol, lastmod, changefreq, and priority are all optional. A mix of fully detailed and bare-loc entries is a normal pattern, not a sign of a broken file.
Is it better to check a sitemap here or open the URL directly in a browser?
Pasting it here gives a clean table of every entry. Opening a sitemap URL directly in a browser tab shows raw XML rendered differently across browsers, some collapse it into a tree view, others show plain text, neither gives the same organized, scannable table this tool produces.