Sitemap Validator
Inspect sitemap XML fields, dates, URLs and duplicates locally, without a live crawl.
This tool runs entirely in your browser. Your data is never uploaded, never stored, and never leaves your device.
Inspect pasted or local sitemap XML for core-protocol errors and review warnings, without fetching listed URLs.
How to use it
- 1Paste XML or load a UTF-8 sitemap file; optionally provide its file URL as scope context.
- 2Inspect core errors separately from duplicate, extension and ownership warnings.
- 3Download JSON findings, correct the source and verify live indexability separately.
Example
- Input
- <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"><url><loc>https://example.com/</loc></url></urlset>
- Output
- 1 entry; 1 distinct parsed URL; 0 core-protocol errors; 0 review warnings.
What happens to your data
XML and supplied URLs stay in browser memory. DTD/entity declarations are refused before parsing, and no sitemap, page or remote schema is fetched. JSON reports can reveal private URLs; review before sharing.
Last updated October 2026
Check the core structure of a sitemap XML file before submitting or publishing it. Paste source or load a local UTF-8 file to find malformed XML, a missing sitemap namespace, invalid required URLs, repeated fields, impossible dates and duplicate normalized entries. The report separates errors from review warnings so an ownership question is not confused with a broken XML field.
This is an offline file inspection, not a crawler or a Search Console replacement. It does not request listed pages, check robots directives, follow redirects, compare canonical tags or tell you how many URLs Google indexed. A well-formed sitemap can still list pages that should not be indexed, and a search engine may choose not to index a correctly submitted URL.
How it works
A browser XML parser checks syntax without attaching user nodes to the document. A DOCTYPE or ENTITY declaration is rejected before parsing. Custom entity declarations, external DTDs and XML stylesheet retrieval are not part of the operation. The accepted root is urlset or sitemapindex in the exact http://www.sitemaps.org/schemas/sitemap/0.9 namespace. A prefix is allowed when it resolves to that namespace; an unnamespaced lookalike is not the same protocol document.
A urlset contains url entries with exactly one loc. Its optional core fields are lastmod, changefreq and priority. A sitemapindex contains sitemap entries with loc and optional lastmod; it does not use priority or changefreq. Repeated core fields, unknown fields in the sitemap namespace, nested elements inside a text-only core field and unexpected text at entry/root level are reported as errors. The inspector does not fix, drop or rewrite them. Comments and normal XML character escaping are handled by the parser.
Loc must contain a complete HTTP or HTTPS address below 2,048 characters, without raw spaces, control characters, backslashes, invalid percent escapes or embedded credentials. Outer whitespace is not silently trimmed. The URL parser normalizes hostnames and default ports for duplicate review; application-specific equivalence is not inferred. Distinct query ordering can still represent the same application page, and identical text does not establish which URL is canonical. A fragment produces a review warning rather than pretending to be a live crawl finding.
Lastmod accepts a real YYYY-MM-DD calendar date or a full date-time with seconds and timezone. Calendar arithmetic checks leap years instead of allowing JavaScript to roll February 30 into March. Changefreq must use a protocol value such as weekly or never. Priority is a decimal in the range 0 to 1. Google ignores changefreq and priority, so their presence is not a way to increase queue priority, rankings or crawl rate. Accurate lastmod values should represent meaningful page changes; syntax validation cannot verify when your page really changed.
An optional sitemap-file URL supplies context only and is never opened. It lets the report warn about listed addresses on another origin or outside the file's directory scope. Authorized cross-site submission and verified ownership can change what a search engine accepts. This local tool does not have that account evidence, so it raises a review question rather than declaring every different-origin entry universally invalid. Without context it can still flag that multiple origins appear in the supplied file.
Image, video, news and hreflang extension elements are recognized as outside the core sitemap namespace and counted, but their semantics and required fields are not validated. No XSD or remote schema is fetched. An extension can therefore be wrong even when the report has no core-protocol errors. The report explicitly retains that limitation instead of presenting a complete standards-conformance certificate. Sitemap indexes are inspected as supplied; their child sitemap URLs are not recursively downloaded.
The local limits are 2 MiB of UTF-8 input, 10,000 entries, 100,000 XML nodes and depth 16. Those bounds are intentionally smaller than the protocol's 50 MiB uncompressed size and 50,000-entry limits. A larger valid sitemap should be split for this inspector; exceeding a tool limit does not mean the original file violates the protocol. The first 200 findings appear in the interface and JSON, while error/warning totals count all findings. The JSON also contains accepted supplied URLs and lastmod text, so review private paths or query values before sharing it.
Source remains in browser memory. The widget does not fetch, submit or save the sitemap to a server. Editing the optional context or XML clears the old report, and a late file read cannot replace a newer edit. Clear removes current input but not files you already downloaded. After correcting a source file, verify actual production HTTP status, robots, canonical URLs and ownership separately, then submit only the changed sitemap through the intended search-engine account.
Worked example: Inspect a two-page core sitemap
- Input
- <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"><url><loc>https://example.com/guide</loc><lastmod>2026-10-01</lastmod></url><url><loc>https://example.com/help</loc></url></urlset>
- Result
- urlset · 2 entries · 2 distinct parsed URLs · 0 core-protocol errors · 0 review warnings
This establishes only the supported local checks, not whether either URL is live or indexed.
Common use cases
- Find the invalid date or missing loc behind a rejected sitemap file
- Review duplicate URLs without crawling private staging addresses
- Distinguish a sitemap index from an ordinary URL sitemap
- Prepare a concise JSON finding report for whoever maintains the source generator
Frequently asked questions
Does a clean report mean Google will index every page?+
No. It checks supplied core XML fields, not live status, content quality, robots, canonical selection or a search engine's indexing decisions. A sitemap is a discovery hint.
Can I paste a sitemap URL and have it fetched?+
No. Load a local XML file or paste its source. The optional sitemap-file address is scope context only and is never visited.
Why does an extension create a warning?+
The core sitemap namespace is checked, but image/video/news/hreflang extension semantics are not. The warning prevents an unverified extension from looking fully validated.
Why is a sitemap over 10,000 URLs refused?+
That is this inspector's conservative local limit, not the protocol limit. Sitemaps can contain up to 50,000 entries and 50 MiB uncompressed. Split the input for local checking.
Are priority and changefreq useful for Google rankings?+
Google ignores those fields. Valid values are checked because they belong to the core protocol, not because setting them high improves visibility or queue priority.
Is a cross-domain URL always invalid?+
No. Verified cross-site submission has separate requirements. The inspector can flag different origins and directory scope, but it cannot inspect your ownership or Search Console evidence.
Related tools
Robots.txt Tester
Test pasted robots.txt rules locally against crawler tokens and paths, with winning lines and CSV export.
XML Formatter
Validate and format XML without rewriting attributes, CDATA or meaningful text spacing.
URL Extractor
Extract HTTP(S) links from text or saved HTML locally, count repeated URLs and export source locations.
Website Meta Tag Checker
Inspect a public URL or pasted HTML for title, description, canonical, robots and social sharing tags.