Sitemap.xml Generator — Build a Sitemap From a URL List
Build a sitemap.xml from a list of URLs: a date after a URL becomes its lastmod, and a list too big for one file is split under a sitemap index.
A date after a URL — 2024-05-01, or 2024-05-01T10:30:00+09:00 with its time zone — becomes that page’s last-modified date. Leave it off when you do not know it.
Enter at least one URL above to generate a sitemap.
What this sitemap generator does
Paste your page URLs one per line and this tool builds a valid sitemap.xml in real time. Each address becomes a <url> entry containing its <loc>, wrapped in the standard <urlset> root that declares the sitemaps.org 0.9 namespace http://www.sitemaps.org/schemas/sitemap/0.9. Blank lines are ignored and every address is validated as an absolute http or https URL, so a stray relative path or a typo is flagged instead of silently producing a broken file. Special characters such as an ampersand in a query string are XML-escaped, so & becomes & and the XML always parses. The “Each line holds” select reads richer lines for the XML sitemap. With “a page URL, then its images”, a line is a page followed by the addresses of its pictures, separated by spaces, and each picture becomes an <image:image> in that page’s entry. With “language versions (lang=URL)”, a line holds pairs such as en=https://example.com/ ko=https://example.com/ko/ x-default=https://example.com/, and every URL gets an entry of its own that lists all the versions, itself included, as <xhtml:link rel="alternate" hreflang> links. The namespace each one needs is declared only when it is used, a line that does not fit the chosen form is skipped whole and named, and beside the file name the page says how many URLs made it in.
Last-modified dates
Put a date after a URL, separated by a space, a tab or a comma — https://example.com/ 2024-05-01, or a full time with its zone such as 2024-05-01T10:30:00+09:00 — and it becomes that page’s <lastmod>. Only a date you wrote is used: a line without one gets no <lastmod>, because a made-up date is worse than none. A last word that starts like a date (YYYY-MM-DD) is always read as one; a day the calendar does not have, or a time with no zone, skips the line and says why, and the skipped lines can be downloaded as a TSV file to fix. Google reads <lastmod> when it is consistently accurate, so give the day the page’s content last changed.
Change frequency, priority and how to submit it
Optional selects apply a default <changefreq>, from always down to never, and a default <priority> from 1.0 to 0.0 to every URL at once. Google ignores both — its sitemap guide says so — and reads <lastmod> when it is consistently accurate; leave them empty unless another search engine you care about reads them. Copy the result or download it directly as sitemap.xml, upload that file to the root of your site so it is reachable at https://yourdomain.com/sitemap.xml, and reference it from your robots.txt or submit it in Google Search Console and Bing Webmaster Tools. The Format select also writes a plain-text sitemap — the URLs one per line, a format Google also accepts — or an HTML list of links to paste into a page, and the copy and the download follow it as sitemap.txt or sitemap.html; change frequency, priority and last-modified dates exist only in the XML one. Everything runs in your browser, so even a large list of internal URLs never leaves your device.
More than one file’s worth
A sitemap holds at most 50,000 URLs or 50 MB uncompressed, the sitemaps.org limits. Past either, the page splits the list in order into sitemap-1.xml, sitemap-2.xml and so on, and sitemap.xml becomes a <sitemapindex> that lists them. The index needs the address the files will be uploaded to: “Where the files will live” starts at the root of the first URL’s site and can be changed to any absolute http(s) folder. “Download all (.zip)” saves the index and every part in one archive; upload them all to that folder and submit sitemap.xml. A text sitemap is split the same way into numbered .txt files.
Frequently asked questions
What is a sitemap.xml file for?
It is a list of the pages on your site that you want search engines to know about, written in a standard XML format. Submitting one helps crawlers discover pages faster and understand which URLs are canonical, which is especially useful for new sites or pages that are not well linked internally.
What do changefreq and priority actually do?
They are optional hints. changefreq (always, hourly, daily, weekly, monthly, yearly, never) suggests how often a page changes, and priority (1.0 down to 0.0) suggests its relative importance on your site. Google ignores both — its sitemap guide says so — and reads lastmod instead when it is consistently accurate; leave them empty unless another search engine you care about reads them.
Can it make a text or HTML sitemap instead of XML?
Yes. Set Format to “Plain text (sitemap.txt)” for the URLs one per line, the other sitemap format Google reads, or to “HTML list of links” for a list of links to paste into a page. Copy and the download follow the choice, saving sitemap.txt or sitemap.html. Change frequency, priority and last-modified dates have no place in either, and the page says so if you have given them.
Can it make an image sitemap, or list the language versions of a page?
Yes, in the XML sitemap. Set “Each line holds” to “a page URL, then its images” and write each page followed by its pictures’ addresses, separated by spaces: every picture becomes an image:image element in that page’s entry. Set it to “language versions (lang=URL)” and write pairs such as en=https://example.com/ ko=https://example.com/ko/ x-default=https://example.com/: every URL gets an entry of its own listing all the versions, itself included, as xhtml:link alternates, which is what Google asks for. A line with an unreadable language tag, a bare URL or the same language twice is skipped whole and listed, and beside the file name the page says how many URLs made it in.
How do I give each page its last-modified date?
Write the date after the URL on the same line, separated by a space, a tab or a comma: https://example.com/ 2024-05-01, or a full time with its zone such as 2024-05-01T10:30:00+09:00. It becomes that page’s lastmod. A line without a date gets none — the page never invents one — and a day that does not exist, such as 2024-02-30, or a time without a zone skips the line, which is listed and can be downloaded with the other skipped lines as a TSV file.
What happens when the list is too big for one sitemap?
A sitemap holds at most 50,000 URLs or 50 MB uncompressed. Past either, the list is split in order into sitemap-1.xml, sitemap-2.xml and so on, and sitemap.xml becomes the sitemap index that lists them at the address in “Where the files will live” — the root of the first URL’s site unless you change it. “Download all (.zip)” saves every file at once; upload them together and submit sitemap.xml.