XML Sitemap Generator
Create sitemap.xml from deliberate URLs while validating escaping, lastmod values, duplicates, scope, count, and size.
Add where this XML will be published to review the protocol's default host/path scope. Nothing is uploaded or submitted.
One absolute HTTP(S) URL per line. Optionally add | YYYY-MM-DD or a date-time after the URL. Do not use lastmod unless you know when that page was significantly changed.
Generated XML, protocol-limit checks, duplicate handling, and lastmod notes will appear here.
A Sitemap Is Strongest When Every URL in It Is a Deliberate Publishing Decision
A sitemap is not a dump of every address your application can produce. It is a discovery signal containing URLs you want search engines to know about—normally the canonical, indexable versions of real pages.
If the same content is available under tracking parameters, session IDs, print views, duplicate hostnames, or several slash variants, generating XML for all of them makes the sitemap bigger while weakening the message about which URL you actually prefer.
lastmod Is the Page's Significant Modification Time, Not “Today”
The Sitemap protocol defines lastmod as the last modification date of the linked page—not the time the sitemap file was generated. Google says it uses lastmod when the values are consistently and verifiably accurate.
A substantial content edit, structured-data change, or meaningful link update can justify a new date. Rebuilding the same page, changing a copyright year, or regenerating sitemap.xml does not automatically mean every URL changed today.
XML Escaping Changes the File Syntax Without Changing the URL
Browser URL https://example.com/search?category=books&sort=new Inside XML <loc>https://example.com/search?category=books&sort=new</loc>
The ampersand has special meaning in XML, so the document must write it as &. A sitemap generator that simply pastes URLs into XML can produce malformed XML even when every URL itself is valid.
Where You Publish the Sitemap Can Define Its Default URL Scope
Under the base Sitemap protocol, a sitemap at the site root can describe URLs across that host, while a sitemap stored under a deeper path is normally scoped to descendants of that path. The protocol also ties ordinary sitemap scope to the same protocol and host.
Google supports verified cross-site submission arrangements, so scope differences are reported rather than used to delete URLs automatically. If you are not intentionally using cross-submission, keep each sitemap aligned with its site.
50,000 URLs and 50 MB Are Per Sitemap File
One sitemap file can contain at most 50,000 URL entries and be no larger than 50 MB uncompressed. A site can have many sitemap files; large sites commonly organize them under one or more sitemap index files.
Compression reduces transfer size, not the protocol's uncompressed-size limit. The counter on this page measures the generated XML as UTF-8 bytes before compression.
A Valid Sitemap Does Not Prove the URLs Are Indexable
The generated XML cannot reveal whether a listed page returns 200, redirects, carries noindex, is blocked by robots.txt, declares a different canonical, requires authentication, or is soft-404 content. XML validity and search eligibility are separate checks.
After publishing, use Search Console and targeted URL inspection when you need to understand which submitted URLs Google actually discovered or indexed.
