Sitemap.xml generator from URL list

Paste absolute URLs, one per line (a date after the URL, like https://ex.com/a 2026-09-01, sets that page's <lastmod>). Duplicates and #fragments are removed, relative or non-http(s) URLs are listed as errors, & and other special characters are XML-escaped, and you get a warning if the URLs span more than one host. Lists over 50,000 URLs are split into several files plus a sitemap index. Nothing is uploaded — the sitemap is built in this page.

    Frequently asked questions

    Where do I put sitemap.xml?

    Upload it to the root of your site (https://your-site.com/sitemap.xml), add a line “Sitemap: https://your-site.com/sitemap.xml” to robots.txt and submit it in Google Search Console and Bing Webmaster Tools.

    Do I need lastmod, changefreq and priority?

    Only <loc> is required. Google uses lastmod when it is accurate and ignores changefreq and priority; other search engines may still read them. Leave them blank rather than guess.

    Why is my URL rejected?

    Sitemaps need absolute http:// or https:// URLs of at most 2,048 characters. Relative paths (/about), other schemes and URLs with unencoded spaces are listed with their line number so you can fix them.

    Why the “more than one host” warning?

    A sitemap may only list URLs on the same host and protocol as the sitemap file itself — https://www.example.com and https://example.com count as different hosts, as do http and https.

    What happens with more than 50,000 URLs?

    The sitemap protocol allows at most 50,000 URLs (and 50 MB) per file. The list is split into sitemap-1.xml, sitemap-2.xml … plus a sitemap index that points to them; upload them all and submit the index.

    Is anything uploaded?

    No. The page has no analytics and makes no network requests with your input.