Sitemap Generator
Paste one URL per line to get a sitemap.xml: addresses percent-encoded and XML-escaped, duplicates removed, and a lastmod date where you add one after a |. How it works
Use the Sitemap Generator
Add a last-modified date after a | only where you know it, for example https://example.com/about | 2026-05-01. Lines without a date get no lastmod tag.
Google ignores changefreq and priority, so they are left out unless you tick them.
Generated XML
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://example.com/</loc>
</url>
<url>
<loc>https://example.com/about</loc>
</url>
<url>
<loc>https://example.com/contact</loc>
</url>
</urlset>
3 URLs (limit 50,000 per sitemap).
Spaces and non-ASCII characters in a URL are percent-encoded, and & < > " ' are escaped for XML. A sitemap is a hint for crawlers: it does not guarantee that a page is crawled or indexed.
About the Sitemap Generator
Paste one URL per line and the sitemap generator writes a sitemap.xml with a <url><loc> block for each address, so the three example lines give 3 URLs. Spaces and accented letters are percent-encoded, & becomes &, duplicates and #fragments are removed, and a date after " | " becomes <lastmod>. sitemaps.org allows 50,000 URLs and 50 MB per sitemap.
What a line becomes
| Line | <loc> | <lastmod> |
|---|---|---|
| https://example.com/about | 2026-05-01 | https://example.com/about | 2026-05-01 |
| https://example.com/about | 2026-05-01T09:30:00+01:00 | https://example.com/about | 2026-05-01T09:30:00+01:00 |
| https://example.com/a b | https://example.com/a%20b | (none) |
| https://example.com/café?q=a&b=1 | https://example.com/caf%C3%A9?q=a&b=1 | (none) |
| https://example.com/a#top | https://example.com/a | (none) |
| https://example.com/?a=1|2 | https://example.com/?a=1%7C2 | (none) |
A removed #fragment gets a note. A | inside an address is part of it; only a | with a space on each side starts the date.
Lines the generator refuses
| Line | Message |
|---|---|
| example.com/a | "example.com/a" is not an absolute http or https address. |
| https://example.com/about | 2026-05 | "2026-05" after the | is not a valid date. |
| https://example.com/about | 2026-05-01T09:30+01:00 | "2026-05-01T09:30+01:00" after the | is not a valid date. |
| https://example.com/about | 2026-02-30 | "2026-02-30" after the | is not a valid date. |
| https://user:[email protected]/a | The address contains a user name or password ("user:password@"). |
The start of each message. The date messages go on to list the formats that are accepted.
Frequently asked questions
- How many URLs can one sitemap hold?
- 50,000 URLs and 50 MB uncompressed, per the sitemaps.org protocol, with each URL shorter than 2,048 characters. Over either limit the generator stops and asks you to split the list into several sitemaps listed in a sitemap index; it does not write the index.
- What date format does lastmod need?
- YYYY-MM-DD, such as 2026-05-01, or a date and time with seconds and a zone, such as 2026-05-01T09:30:00Z or 2026-05-01T09:30:00+01:00. A year alone, a year and month, a time without seconds and a date that does not exist, such as 2026-02-30, are refused.
- Should I add changefreq and priority?
- Google says it ignores both, so they are off. Tick them and every URL gets the same value, by default <changefreq>weekly</changefreq> and <priority>0.5</priority>.
- Does Google use lastmod?
- Only when it is consistently and verifiably accurate, Google says, and sitemaps.org says it should give the date the page last changed, not the date the sitemap was made. Add a date only on lines where you know it; lines without one get no lastmod tag.
- Can one sitemap list both www and non-www addresses?
- sitemaps.org says all URLs in a sitemap share one host and protocol. The generator still writes them, with the warning "The URLs use more than one host or protocol."
Related Tools
View all toolsSlug Generator
Turn a title into a lowercase URL slug joined by hyphens or underscores. Accents go, ß, æ and ø are spelled out, and letters with no Latin form are listed.
UTM Builder
Build a campaign URL with utm_source, utm_medium, utm_campaign, utm_id, utm_term and utm_content. Source, medium and campaign are required.
Open Graph Generator
Write Open Graph meta tags for link previews: og:title, og:type, og:url and og:image, plus description, site name and image alt, with a required-tag check.
Twitter Card Generator
Make twitter:card, site, creator, title, description and image meta tags for a summary or large-image card on X, with checks on @handles and the image URL.
Meta Tag Generator
Generate HTML meta tags for a page: title, meta description, charset, viewport, robots and canonical, plus optional author, keywords and social tags.
Robots.txt Generator
Build a robots.txt from a preset such as Block AI crawlers or WordPress, or block and allow folders for named bots, with Sitemap lines and every path checked.