What an XML sitemap does for a site
An XML sitemap is a file listing the URLs you want search engines to know about. Crawlers find most pages by following links, so a sitemap does not replace internal linking; what it does is cover the cases where linking falls short. Pages reachable only through a search form, sections buried several clicks deep, a new site with no inbound links, and large archives where crawl budget runs out before the tail is reached all benefit from being listed explicitly.
A sitemap is a set of hints, not instructions. Listing a URL does not guarantee it is crawled, and it certainly does not guarantee it is indexed. What it reliably gives you is a report: once submitted in Google Search Console, the Sitemaps view shows how many of the submitted URLs are known, and the Pages report lets you compare submitted against indexed, which is usually the fastest way to spot that a whole section is being skipped.
The format itself is small. A urlset element wraps one url element per page, each containing a loc with the full address and, optionally, lastmod, changefreq and priority. This generator writes exactly that structure against the sitemaps.org 0.9 schema, which is the namespace Google, Bing and the other major crawlers read.
How to generate your sitemap.xml
Paste your URLs into the textarea, one per line. Leading and trailing whitespace is stripped from each line and blank lines are ignored, so a list copied out of a spreadsheet or a crawler export can go straight in. The counter under the box shows how many URLs were recognised, which is worth glancing at, since a mismatch against what you pasted usually means stray lines or an accidental wrapped column.
Three fields apply to the whole list. Last modified defaults to today's date and writes a lastmod element in YYYY-MM-DD form. Change frequency is a dropdown with the seven values the specification allows: always, hourly, daily, weekly, monthly, yearly and never, with weekly as the default. Priority is a number between 0 and 1 in steps of 0.1, defaulting to 0.8. The XML on the right rebuilds on every keystroke.
When the output looks right, use Copy to put the XML on your clipboard or Download .xml to save it as sitemap.xml. Ampersands, angle brackets, quotes and apostrophes in your URLs are escaped as they are written, so a URL containing a query string with & does not break the file. Generation happens entirely in the browser, so the URL list of an unreleased site or a staging environment never leaves your machine.
A worked example of the generated XML
With three URLs, a last modified date of 2026-09-16, a change frequency of weekly and a priority of 0.8, the generator produces this file. The opening declaration and namespace are fixed; the url blocks repeat once per line you entered.
Line one is <?xml version="1.0" encoding="UTF-8"?> and line two is <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">. Then comes one block per URL: <url> on its own line, followed by <loc>https://example.com/</loc>, <lastmod>2026-09-16</lastmod>, <changefreq>weekly</changefreq> and <priority>0.8</priority> each on a line of their own, then </url>. The same four elements repeat for https://example.com/about and for https://example.com/contact, and the file closes with </urlset>. In the output panel the url elements are indented two spaces and their children four.
A URL with a query string shows the escaping at work: https://example.com/search?q=shoes&sort=price is written into the loc element as https://example.com/search?q=shoes&sort=price. That is required by XML, and a file with a bare ampersand is rejected as malformed rather than merely ignored, so it is the single most common reason a hand written sitemap fails validation.
Where to put the file and how to submit it
Upload sitemap.xml to the root of your domain so it resolves at https://yourdomain.com/sitemap.xml. The location is not arbitrary: a sitemap can only list URLs at or below its own directory, so a file at the root can cover the whole site while one at /files/sitemap.xml can only legitimately cover /files/. Serve it over the same protocol and hostname your pages use, and make sure it returns a 200 status rather than a redirect.
Add a line to robots.txt reading Sitemap: https://yourdomain.com/sitemap.xml. Every major crawler reads that line, including ones you never sign up with, and it is the only submission step that is not per search engine. Then add the file in Google Search Console under Sitemaps and in Bing Webmaster Tools under Sitemaps, which is what gives you the per sitemap coverage reporting.
List canonical URLs only, and keep them consistent with the canonical tags on the pages themselves. A sitemap listing both the www and non www form, or both http and https, sends a mixed signal about which version you want indexed. Leave out pages that are blocked by robots.txt, marked noindex, redirected, or returning errors. A sitemap full of URLs a crawler is told elsewhere to ignore wastes the crawl it prompts and clutters the coverage report you are trying to read.
Limits of this generator
The three settings apply to every URL in the list. There is no per URL lastmod, changefreq or priority, so if your homepage genuinely changes daily and your archive pages change yearly, generate them as two batches and combine the url blocks by hand, or edit the downloaded file. Priority in particular is worth little effort: Google has said publicly that it ignores the value, so leaving it at the default is a reasonable choice.
URLs are copied through as typed with no validation beyond XML escaping. A relative path, a typo in the hostname or a trailing space inside the line will be written into the file unchanged, and a relative path is invalid in a sitemap because loc must be a full absolute URL. Check the first few entries in the output panel before you download.
The generator writes a plain urlset with no extensions. There is no support for image, video or news sitemaps, no hreflang alternate links for multilingual sites, and no sitemap index file for stitching several sitemaps together. Output is uncompressed XML rather than gzip. For a very large site, or one that needs those extensions, a sitemap generated by your CMS or build process will serve better; this tool is aimed at lists you assemble by hand.