Sitemap Validator
Check a pasted or uploaded XML sitemap for structural mistakes, invalid URLs, duplicate locations, metadata problems, and protocol limits—without sending the file anywhere.
This tool does not fetch URLs. It cannot confirm that the sitemap, listed pages, or child sitemaps are online, crawlable, canonical, indexable, or returning successful HTTP responses.
Add sitemap XML
Paste plain XML or load an uncompressed .xml/.txt file. Gzip archives are not opened.
Private by design. Parsing and validation happen in this browser tab. No sitemap content is uploaded, stored, or used to make network requests.
Findings
Errors block protocol validity. Warnings highlight review items that may still be accepted.
What this sitemap validator checks
The validator parses ordinary XML sitemaps and sitemap index files. It checks well-formed XML, the protocol namespace, the correct root and entry elements, one non-empty <loc> per entry, absolute HTTP or HTTPS URLs, duplicate locations, single-host consistency, entry and file-size limits, and supported core metadata.
Metadata checks
For URL sets, core fields must appear as <loc>, optional <lastmod>, optional <changefreq>, then optional <priority>. For indexes, each entry uses <loc> then optional <lastmod>. Namespace declarations and the standard XML Schema Instance schemaLocation and type hints are accepted; rogue attributes and xsi:nil are rejected. Foreign-namespace extensions are accepted only where the published schemas permit them and receive a warning because their own schemas are not checked.
How to use the results
- Fix malformed XML first. Unescaped ampersands, broken closing tags, and undeclared namespace prefixes prevent reliable inspection.
- Resolve errors in entry structure, URLs, dates, change frequency, and priority.
- Review warnings such as future dates, fragments, embedded credentials, or identical last-modified values.
- Publish the corrected file, then use a search-engine or server-side crawler to test retrieval, HTTP responses, robots rules, canonicalization, and indexability.
Standards and practical limits
The Sitemap protocol requires UTF-8 XML, a namespace-qualified <urlset> or <sitemapindex>, and no more than 50,000 entries or 50 MB uncompressed per file. Listed locations should be fully qualified and belong to one host. Larger sites can split URLs among multiple sitemap files and list those files in a sitemap index.
Local validation is deliberately narrower than a crawl. A structurally valid sitemap does not guarantee discovery, crawling, or indexing. Search engines treat a sitemap as a hint, and each listed resource still needs independent technical and content review.
Validator boundaries
- For responsiveness, this page accepts up to 2,000,000 UTF-8 bytes—well below the protocol’s 50 MB ceiling.
- DOCTYPE and custom entity declarations are rejected before parsing. This avoids ambiguous or unsafe external-entity behavior.
- This is a deterministic core-schema subset, not a general XML Schema processor. It checks core element order, occurrence, attributes, location-length bounds, signed decimal priority values, and the four-digit-year date/date-time forms used by the Sitemap profile—including optional timezones. Expanded and negative XML Schema years are outside this focused check. Standard XML Schema Instance type and schema-location hints are accepted but not resolved. Foreign-namespace extensions are allowed only in schema-defined positions, but their own schemas are not validated and therefore always produce a warning.
- Uploaded files are read as bytes and decoded with fatal UTF-8 handling. Invalid byte sequences are rejected instead of being silently replaced with the Unicode replacement character.
- Gzip archives, RSS, Atom, plain-text sitemaps, nested sitemap retrieval, schema fetching, redirects, status codes, robots.txt, canonical tags, and search-engine submission are outside scope.
- Because pasted XML has no source address, the validator cannot confirm whether a sitemap’s own hosting path authorizes all listed URLs.
Privacy
Pasted and selected files stay in the current browser tab. No XML, URLs, validation results, or filenames are transmitted or retained by this tool. Reset clears the current input and report from the interface.