SEO and Webmaster Tool

XML Sitemap Generator Build a Valid sitemap.xml for Static Sites and Search Console

Paste your page URLs, set a default priority and change frequency, and copy or download a valid sitemap.xml ready for Google Search Console and Bing. Runs entirely in your browser.

Last Updated: 27 October 2026

Build your sitemap.xml

One URL per line. Use the full public address with https and the canonical hostname.

Page URLs
0 URLs detected
Defaults for Every URL
Options (Optional)

Generated sitemap
Ready
Paste URLs and press Generate to see the file.
URLs included0Unique indexable URLs
Duplicates removed0Kept first occurrence
File size0 KBUncompressed
What this usually means

—

Generated sitemap.xml

File checks

At least one URL is present—
All URLs use https—
All URLs share the same hostname—
Under the 50,000 URL limit—

Optional AI insight

A short written read on the sitemap you have built, plus one change that would matter most for discovery. Only anonymous counts and settings leave your browser when you press the button.

What this generator does

This tool takes a list of page URLs and turns them into a valid XML sitemap file ready to upload to the root of a domain. It handles the XML declaration, the URL set namespace, one URL element per line, an optional last-modification date, a default priority, and a default change frequency. It removes duplicates when the same URL appears more than once, and it reports the URL count, the duplicate count, and the uncompressed file size so you can see how close you are to the practical limits before you upload.

Everything runs inside the browser. The XML is assembled locally from the URLs you paste, and nothing is transmitted anywhere. If the AI insight button is pressed, only an anonymous summary of the URL count, the duplicate count, the default priority, the default change frequency, and whether last-mod dates were included is sent to a small serverless function that runs once and then stops. The actual URLs, the hostname, and any path detail are never included.

The generator is a starting point for a clean sitemap, not a replacement for the webmaster tools of each search engine. Use it to build the file, upload it to the root of the domain, and then submit the sitemap URL in Google Search Console and Bing Webmaster Tools so the search engines know to fetch it.

How the Sitemap Protocol is structured

The Sitemap Protocol is published at sitemaps.org and is understood by Google, Bing, Yandex, and most other major crawlers. A valid sitemap begins with an XML declaration, then a urlset element that carries the namespace of the protocol, and then one url element per page. Each url element contains a loc child with the full address of the page, and may optionally contain a lastmod date, a changefreq value, and a priority value.

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://example.com/</loc>
    <lastmod>2026-09-17</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
</urlset>

Only the loc element is required. The other three are optional, and Google has stated publicly that it largely ignores both changefreq and priority, while it does pay attention to a lastmod that reflects a real content change. That said, all three are valid in the protocol, and Bing and Yandex are more likely to use the values you provide. If you include them, keep them honest.

The file must be UTF-8 encoded and served with an XML content type. It should be no larger than fifty megabytes uncompressed and no more than fifty thousand URLs per file. A sitemap can also be referenced from robots.txt with a Sitemap directive, which is a convenient way to advertise its location without submitting it in each webmaster tool separately.

What priority and changefreq actually do

The priority field is a hint between 0.0 and 1.0 that expresses how important a URL is compared with the other URLs on the same site. It is not a ranking factor and it does not affect how a page competes with pages on other sites. Google has stated publicly that it ignores the value in most cases. The field exists so that a large site can signal relative importance between its own pages when a crawler has to decide what to fetch first. If every page on the site is set to 1.0, the signal is meaningless because no page is more or less important than any other.

The changefreq field is a hint about how often a page is likely to change. Valid values are always, hourly, daily, weekly, monthly, yearly, and never. Bing and Yandex are more likely to use the value than Google. If you set every page to always, you are telling the crawler that nothing can be trusted to be stable, which is rarely true and rarely useful. Set a value that reflects reality, and leave the field out entirely if the value would be a guess.

For a small static site or a personal blog, the honest answer is often that neither field adds much value. The sitemap still serves its purpose through the loc element alone, which is what a crawler uses to discover the URL. Adding priority and changefreq because the fields exist, rather than because they communicate something real, is one of the more common small mistakes in sitemap management.

Last modified dates done properly

The lastmod field is the most useful optional field in a sitemap when it is accurate. A date that reflects a real content change helps a crawler decide whether a recrawl is worthwhile, and it helps a site owner audit which pages have gone stale. A date that updates automatically on every server build, or that reflects the date the sitemap file was generated rather than the date the page content changed, is worse than no lastmod at all because it teaches the crawler to ignore the field.

The format is W3C Datetime. The simplest valid form is the ISO 8601 date only, written as YYYY-MM-DD. A full timestamp with time and timezone is also valid, written as YYYY-MM-DDThh:mm:ss+00:00, but the date-only form is easier to keep accurate and is what most static site builders produce. If the page has a visible published date or a structured data dateModified field, keep the lastmod consistent with it so the site tells a single story about when the content changed.

This generator offers a checkbox that inserts today's date as lastmod for every URL. That is useful when you have just republished every page in the sitemap, and it is misleading when only one page has changed. Leave the checkbox off when you want to add per-URL lastmod dates by hand after generating the file, or when the URLs already have their own accurate dates on the page.

Sitemap index files for large sites

A single sitemap file may contain up to fifty thousand URLs and be no larger than fifty megabytes uncompressed. A site with more than that many indexable pages, or a site that wants to separate pages by type, uses a sitemap index file. The index lists the location of each child sitemap, plus an optional last-modification date for each, and can itself contain up to fifty thousand child sitemap entries.

FilePurposeURL limit
sitemap.xmlA single sitemap with up to 50,000 URLs50,000
sitemap-index.xmlAn index pointing to child sitemaps50,000 children
sitemap-pages.xmlA child sitemap for static pages50,000
sitemap-posts.xmlA child sitemap for blog posts50,000

A small site that has under a few thousand pages does not need an index file. A site that has grown past a few thousand pages, or that wants to report on indexing per content type in Search Console, benefits from splitting the sitemap into a small index and a set of child files. The pattern is the same for both: put the file at the root of the domain, confirm it loads publicly, and submit the top-level URL in the webmaster tools of each engine.

A worked example

Consider a small static site published on Netlify with a homepage, an about page, a services page, and a contact page. The publisher opens this generator, pastes four full URLs, one per line, all beginning with https and the canonical hostname. They leave the priority at the default 0.8, leave the change frequency at weekly, and leave the include-date checkbox off because the content is stable.

The generator returns a small XML file. The publisher copies the file, saves it as sitemap.xml in the publish directory of the site, and deploys. They then open https://example.com/sitemap.xml in a browser to confirm it loads with the correct XML content, and submit the URL in Google Search Console and Bing Webmaster Tools. A few days later, Search Console reports the sitemap as successfully processed.

Now consider a blog with two hundred published articles. The publisher pastes the homepage, the archive page, and the two hundred article URLs. This time the priority is set to 0.5 for the articles, but because the generator applies a single default, the publisher generates the file, opens it in a text editor, and edits the priorities for the two or three most important articles by hand. They leave the change frequency at monthly, which matches the publication pace, and leave the lastmod dates to be added by their build tool rather than stamping every URL with today's date.

A third example is a documentation site with over fifty thousand pages. The publisher splits the URLs into four files by section, generates each one separately with this tool, writes a small sitemap index by hand that references the four child files, and uploads the index. The total number of URLs per child file stays well under the limit, and each section can be tracked separately in Search Console.

Common mistakes

Setting every URL to priority 1.0. This removes the relative signal entirely. The priority field only carries meaning when values differ. Reserve 1.0 for the homepage, and use a small set of values for the rest of the site.

Stamping every URL with today's date. A lastmod that updates on every build teaches the crawler to ignore the field. Only add a lastmod when it reflects a real content change, and keep it consistent with any visible publication date on the page.

Listing pages that are blocked by robots.txt. A sitemap should only list URLs you want crawled. A contradiction between the two files wastes crawl resources and makes diagnosis harder in Search Console.

Listing redirects and error pages. Redirected URLs and 404 pages do not belong in a sitemap. If a page has been moved, list the new URL and use a redirect to send visitors from the old one, but do not list the old URL in the sitemap.

Using relative URLs. The loc element requires a full absolute URL. A relative path such as /about.html does not resolve and will cause the sitemap to fail validation.

Mixing www and non-www versions of the same host. Pick one canonical hostname and use it consistently. Mixing the two tells the crawler that the site is larger than it is and splits signals across two hostnames.

Forgetting to submit the sitemap. Uploading the file to the root of the domain is only half the job. Submit the sitemap URL in Google Search Console and Bing Webmaster Tools so the search engine knows to fetch it, and check the processing status a few days later.

Never regenerating the file. A sitemap is a living document. Regenerate it when the set of indexable URLs changes, and keep the file in sync with the site structure.

Where this tool stops

This generator produces a valid XML sitemap from the URLs you paste. It does not fetch or verify those URLs, does not check whether they return a 200 response, does not detect redirects, and does not confirm that the pages are indexable or free of noindex directives. It does not model how Google, Bing, or Yandex will interpret the file, and it does not know whether the URLs you have provided match the canonical tags on the pages themselves. Those checks belong to the person publishing the site and to the webmaster tools of each search engine.

It also does not build a sitemap index for you. Sites that exceed fifty thousand URLs or fifty megabytes need to split their sitemap into multiple child files and reference them from an index. This generator produces one file at a time, so you would generate each child file separately and write the index yourself, or split the URLs by section and generate one file per section.

What the tool does give you is a fast, transparent, private way to build a valid sitemap, see the file before you upload it, and copy or download the result in one step. Used together with the webmaster tools of the search engines that matter, it is a practical starting point for anyone who wants a clean, well-formed sitemap without installing a plugin or running a build script.

Sources

  1. sitemaps.org. XML Sitemap Protocol 0.9. sitemaps.org
  2. Google Search Central. Build and submit a sitemap. developers.google.com
  3. Bing Webmaster Guidelines. Sitemaps. bing.com/webmasters
  4. W3C. Extensible Markup Language (XML) 1.0. w3.org/TR/xml
  5. RFC 9309. Robots Exclusion Protocol. rfc-editor.org
  6. Yandex Webmaster. Sitemap file and index. yandex.com/support

Frequently asked questions

What is an XML sitemap?

An XML sitemap is a plain text file in XML format that lists the important URLs on a website so that search engines can discover them more easily. It follows the Sitemap Protocol 0.9 published at sitemaps.org and is understood by Google, Bing, Yandex, and most other major crawlers. The file is usually named sitemap.xml and placed at the root of the domain, where crawlers look for it automatically. A sitemap does not guarantee indexing, but it does help a search engine find new and updated pages faster than link discovery alone.

Where should I upload sitemap.xml?

Place the file at the root of the exact host, for example https://example.com/sitemap.xml. A file inside a subfolder does not describe the whole domain, and a file on a subdomain does not cover the main site. Each host needs its own sitemap. Once the file is uploaded, confirm it loads publicly with a 200 response and the correct XML content type before submitting the URL in Google Search Console and Bing Webmaster Tools.

Does a sitemap guarantee that Google will index my pages?

No. A sitemap is a discovery aid, not a ranking or indexing instruction. Google still decides which pages to crawl and which to index based on content quality, duplication, canonical signals, and its own evaluation of the page. A well-formed sitemap can help Google find pages faster and can help diagnose problems when pages are missing from search results, but it cannot force a page into the index.

What does the priority field actually do?

The priority field is a relative hint between 0.0 and 1.0 that describes how important a URL is compared with the other URLs on the same site. It does not affect how your page ranks against pages on other sites, and Google has said publicly that it largely ignores the value. Setting every page to 1.0 removes the signal entirely, because relative importance only carries meaning when the values differ. Use priority sparingly and honestly.

What does changefreq actually do?

The changefreq field is a hint about how often a page is likely to change. Valid values are always, hourly, daily, weekly, monthly, yearly, and never. Google has stated that it largely ignores changefreq and prefers to detect changes on its own by comparing page content. Bing and Yandex are more likely to use it. If you do include the field, set it to a value that reflects reality rather than an optimistic best case.

Should I include lastmod in my sitemap?

Yes, when the date is accurate. A lastmod that reflects a real content change is one of the most useful signals in a sitemap, because it helps a search engine decide whether a recrawl is worthwhile. A lastmod that updates automatically on every server build, or that reflects the date the file was generated rather than the date the page changed, is worse than no lastmod at all. Use the real modification date of the content, and keep it consistent with any datePublished or dateModified fields in your structured data.

How many URLs can one sitemap contain?

A single sitemap file may contain up to 50,000 URLs and must be no larger than 50 megabytes uncompressed. If your site exceeds either limit, split the URLs across multiple sitemap files and reference them from a sitemap index file. Each sitemap in the index is listed with its own location and, optionally, its last modification date. A sitemap index can itself contain up to 50,000 sitemap entries.

Should I include pages that are blocked by robots.txt or that have a noindex tag?

No. A sitemap should only list the preferred, indexable URLs on the site. Including a page that is blocked by robots.txt or marked noindex creates a contradiction that wastes crawl resources and can confuse diagnosis in the webmaster tools. Remove redirected URLs, error pages, staging paths, internal search results, and login pages from the list. Keep only the URLs you want a search engine to crawl and consider for indexing.

Is my list of URLs sent to a server?

No. The generator runs entirely inside your browser, and the XML file is assembled locally from the URLs you paste. Nothing is transmitted anywhere, and nothing is stored. If you press the AI insight button, only an anonymous summary of the URL count, the duplicate count, the default priority, the default change frequency, and whether last-mod dates were included is sent to a small serverless function that runs once and then stops. The actual URLs are never included.

How often should I regenerate the sitemap?

Regenerate the sitemap whenever the set of indexable URLs changes, such as when pages are added, removed, renamed, or given a new canonical address. On a small static site that may be once a month; on an active blog it may be after every publication. The sitemap does not need to be regenerated just because a page's wording changed, as long as the lastmod date reflects the real modification and the URL set is unchanged.

Explore more productivity and SEO tools

Alongside this sitemap generator, there are utilities for robots.txt, meta pixel checks, SEO meta, and keyword density. All free, all private, all running in your browser.

See all productivity tools