XML Sitemap Generator & Validator

Paste a list of URLs to create a correctly written sitemap.xml, or paste an existing sitemap to find the errors that stop Google from reading it — with line numbers.

On-device・No upload

Your files and input are processed only inside your browser on this device and are never uploaded to our servers.

How to use

  1. In “Validate a sitemap”, paste the contents of sitemap.xml or open a .xml / .xml.gz file.

  2. Review errors and warnings and the URL list (count, lastmod, hreflang). Save the URL list as CSV.

  3. To create one, enter one URL or path per line in “Create a sitemap”. Add a date after a tab or comma to set lastmod.

  4. Above 50,000 URLs the output is split automatically with a sitemap index. Download as ZIP or gzip.

  5. Use “Compare two” to see which URLs were added or removed between versions of a site.

What it does

Strict checks with line numbers

XML syntax errors are pinpointed, and namespace, relative URLs, # fragments, unencoded characters, duplicates, mixed hosts or http/https, lastmod format and future dates, priority and changefreq values are checked. Repeated problems are grouped with counts.

hreflang reciprocity

Checks that each xhtml:link alternate set includes the page itself, that linked pages link back, and that language codes are valid.

Create correct sitemaps

URLs are escaped and percent-encoded, duplicates merged (keeping the newest date), output split per 50,000 URLs with a sitemap index, and gzip supported. changefreq/priority, which Google ignores, are off by default.

Compare two sitemaps

XML or plain URL lists: see added and removed URLs and those whose lastmod changed.

Use cases

  • Quickly create a sitemap.xml for a site without a CMS
  • Find out why Search Console says “Couldn’t read sitemap”
  • Check that no URLs disappeared after a site redesign
  • Verify hreflang links are reciprocal on a multilingual site
  • Split more than 50,000 product URLs into files with a sitemap index

Supported formats

Input

sitemap.xml / sitemap index.xml.gz (gzip)URL list (text)

Output

sitemap.xmlsitemap_index.xml.xml.gzZIPURL list CSV

Capability matrix

FeatureSupportNotes
Validate sitemaps and sitemap indexes (with line numbers)Supported—
Create from a URL list, split per 50,000, build an indexSupported—
hreflang (xhtml:link) reciprocity checkSupported—
Image, video and news extensionsPartialCounted only; their contents are not validated
Crawl a site to collect URLsNot supported—
Fetch a sitemap by URL / check HTTP status of each URLNot supportedPaste the contents instead

Limits & notes

  • Nothing is fetched. Open sitemap.xml in your browser and paste it, or open the file.
  • Files up to 60 MB; the URL table shows 500 rows (checks and CSV cover everything).
  • Per-file limits (50,000 URLs, 50 MB uncompressed) follow the sitemap protocol.
  • Entities declared in a DOCTYPE are never expanded, for safety.

Privacy & safety

Sitemaps and URL lists are processed in your browser only. Nothing is sent to or stored on a server.

FAQ

What should lastmod contain?
The date the page content last really changed. Stamping every page with today’s date makes Google stop trusting lastmod. Use 2026-10-04 or 2026-10-04T10:00:00+09:00.
Do I need changefreq and priority?
Google ignores both. They do no harm, but an accurate lastmod matters more, so the generator leaves them out by default.
How many URLs can a sitemap contain?
Up to 50,000 URLs and 50 MB uncompressed per file. Above that, split into several files and submit a sitemap index that lists them.
Can I use non-ASCII characters in sitemap URLs?
They should be percent-encoded. The generator does it for you and the validator flags unencoded URLs.
Is what I paste sent anywhere?
No. Everything runs in your browser and nothing is sent to a server.

Last updated: