A sitemap does not make search engines index a page, and it does not override decisions a crawler makes based on the page's own content and links. What it does is tell a crawler which URLs you consider worth checking and roughly how often they change, which speeds up discovery, particularly for a large site, a new site with few external links pointing in, or a page that was just updated and needs to be recrawled sooner than it otherwise would be.
The file is built and validated entirely in your browser. A list of thousands of URLs never has to leave your machine to become a working sitemap, whether you think of this as a sitemap xml generator for a single small site or an xml sitemap creator you reach for every time a larger site needs a fresh file.
The two limits every sitemap.xml file must respect
A single sitemap file cannot contain more than 50000 URLs and cannot exceed 50 MB uncompressed. Both limits come from the sitemap protocol itself, not from any one search engine, so exceeding either one produces a file that gets rejected or partially ignored rather than one that just works a little worse.
This tool counts your URLs as you paste them and warns clearly once you are approaching either limit, since a site large enough to hit 50000 URLs in one file needs a sitemap index instead, a small file that lists several sitemap files rather than trying to force everything into one.
- 50000 URLs is the hard cap per sitemap file, enforced by the protocol.
- 50 MB uncompressed is the hard cap on file size, also enforced by the protocol.
- A site that would exceed either limit needs a sitemap index referencing multiple smaller sitemap files.
- Gzip compressing the file is allowed and commonly used for a sitemap near the size limit, though it does not change the URL count limit.
Lastmod, changefreq and priority, and how much each one matters
lastmod records when a URL last meaningfully changed, and it is the one field search engines actually use with any weight, since an accurate lastmod helps a crawler prioritise recrawling pages that changed recently over pages that have been static for years. An inaccurate lastmod, one that updates on every deploy regardless of whether the page's content changed, teaches a crawler to stop trusting the field, which defeats its purpose.
changefreq, a hint like daily, weekly or monthly, and priority, a number from 0.0 to 1.0 meant to rank a URL's importance relative to others on the same site, are both explicitly documented by Google as ignored. They remain part of the sitemap protocol and some crawlers other than Google still read them, so there is no harm in setting sensible values, just no reason to spend much effort tuning them precisely.
Turning a url list to sitemap output in one paste
Paste your URLs one per line, in any order, and this tool wraps each one in the required XML elements, filling lastmod with a chosen date, changefreq with a chosen frequency and priority with a chosen value, applied to every URL by default. Individual URLs can be overridden if a handful of pages, such as the home page or a recently updated pricing page, deserve different values from the rest of the list. Turning a plain url list to sitemap markup this way removes the tedious part of writing the same XML wrapper by hand thousands of times.
The output is validated as well formed XML matching the sitemap protocol's namespace and required elements before it is offered for download, so a stray unescaped ampersand in a URL, which is common when a URL carries query parameters, gets caught and corrected rather than shipped as a file that fails validation once uploaded.
Where the sitemap goes and how crawlers find it
A sitemap can technically live anywhere reachable over https, but the conventional and simplest location is the site root, for example https://example.com/sitemap.xml. From there, referencing it in robots.txt with a Sitemap directive means any crawler that reads robots.txt discovers the sitemap automatically without needing it submitted anywhere by hand.
Submitting the sitemap directly through Google Search Console and Bing Webmaster Tools is still worth doing even after adding the robots.txt reference, since both tools report crawl and indexing errors specific to the URLs in that sitemap, which is a useful signal you do not get from the robots.txt reference alone.
How this sitemap xml generator validates the output
Every URL is checked for basic validity before it is included, catching an obviously malformed entry, such as one missing a scheme or containing a raw space, before it reaches the file. Special characters that are valid in a URL but reserved in XML, most commonly an ampersand in a query string, are escaped to their entity equivalents so the resulting file parses correctly.
The finished sitemap is generated as UTF-8 encoded XML with the namespace declaration every sitemap requires, matching what the sitemap protocol specifies rather than a loosely similar format that happens to look right when opened in a browser but fails stricter XML parsing elsewhere. Each entry keeps lastmod changefreq priority in the exact element order the schema expects, which matters more than it sounds like it should for strict validators.
| Field | Used by Google | Notes |
|---|---|---|
| loc | Yes | The URL itself, required on every entry |
| lastmod | Yes, when accurate | Should reflect real content changes |
| changefreq | No | Ignored, kept for protocol compatibility |
| priority | No | Ignored, kept for protocol compatibility |
How to use the sitemap xml generator
- 1
Paste your URL list
Add one absolute URL per line. The counter shows how close you are to the 50000 URL and 50 MB limits.
- 2
Set default lastmod, changefreq and priority
Choose values applied to every URL. Override individual URLs afterward if a few pages need different values.
- 3
Review the validated output
Check for any flagged malformed URLs before generating, since those are excluded from the finished file.
- 4
Download sitemap.xml
Download the file, upload it to your site's root, and reference it in robots.txt with a Sitemap directive.
Related tools worth bookmarking
Sources and further reading
- sitemaps.org: Sitemap protocolThe original specification defining the XML schema, size limits and required elements this generator's output follows.sitemaps.org
- Google Search Central: Build and submit a sitemapGoogle's guidance on which sitemap fields it actually uses and how to submit a sitemap through Search Console.developers.google.com
- W3C: Extensible Markup LanguageThe specification for the XML syntax a sitemap file is written in, including character escaping rules this tool applies.w3.org
Frequently asked questions
Common questions about the sitemap xml generator.
No. A sitemap only tells search engines which URLs exist and roughly how often they change. Whether a page actually gets crawled and indexed still depends on its content, its links and Google's own crawl budget decisions. A sitemap speeds up discovery, particularly on a large or new site, but it is not a substitute for a page being worth indexing.
Up to 50000 URLs and up to 50 MB uncompressed, both hard limits set by the sitemap protocol itself rather than by any single search engine. A site with more URLs than that needs a sitemap index file, a small file that lists several individual sitemap files instead of one oversized one.
No, Google has stated publicly that it ignores both fields. lastmod is the one field it does use, and only when the date is accurate and updates in step with genuine content changes. changefreq and priority remain part of the sitemap protocol and are read by some other crawlers, so there is no harm in setting them, just limited benefit specifically for Google.
The site root is the conventional location, for example https://example.com/sitemap.xml, though any https reachable location works as long as it is referenced correctly. Root placement is simplest because it lets you add a single Sitemap directive to robots.txt that every crawler reading that file will discover automatically.
This tool flags it and excludes it from the generated file rather than producing invalid XML around it. Common causes are a missing https scheme, a raw unencoded space, or an unescaped ampersand in a query string, all of which are worth fixing at the source rather than only inside the sitemap.
Last edit date. lastmod exists to tell a crawler when content meaningfully changed, so it should update whenever the page's substantive content changes and stay untouched otherwise. Updating it on every deploy regardless of content changes teaches search engines the field is unreliable, which reduces how much weight they give it going forward.