Tools

XML Sitemap Generator

Paste your URL list and get a valid XML sitemap in seconds: duplicates are removed, lastmod, changefreq and priority are added. Copy it or download sitemap.xml and submit it to Search Console. Free, no sign-up.

Your list is processed in your browser and never sent anywhere.
Completes relative paths such as /about with this address; if empty, the first full URL in the list is used.
lastmod (last modified date)

Google ignores changefreq and priority and only uses lastmod when it is accurate. Add a space and a date after an address (https://yourbrand.com/blog 2026-09-01) and that line gets its own date.

Result

sitemap.xml Waiting
URLs0unique addresses
Duplicates0removed
Invalid0lines skipped
Size0 Blimit 50 MB
Paste your addresses into the URL list; the XML is generated instantly.
Written by
  • Digital Marketing Expert
  • Google Partner
  • Full Stack Developer
Last updated
Based on
5 sources

How to use the XML Sitemap Generator

  1. Paste your addresses

    Type one address per line or paste a column straight from a spreadsheet. If you forget https://, the tool adds it, and it skips blank lines.

  2. Complete relative paths

    Fill in the Site address field for paths such as /blog/. Leave it empty and the tool borrows the domain of the first full URL in your list.

  3. Choose a lastmod option

    Pick Today, Omit or a custom date from the calendar. Does one page have a different date? Then add a space and the date after its address, and that line overrides the global choice.

  4. Decide on changefreq and priority

    Google reads neither of them. Pick Omit in both lists if you want a leaner file.

  5. Check the counters and the badge

    Two cards count the duplicates and invalid lines the tool filtered out. Skipped lines also appear under the code box, and a green badge means the file is ready.

  6. Download and submit

    Download sitemap.xml and upload it to your site root. Then submit its address in the Sitemaps report in Search Console.

How does the tool process each line?

The tool does not calculate anything. Instead, it applies the same rules to every line in this order and then writes a urlset file that follows the sitemaps.org protocol.

Schemeyourbrand.com/blog → https://yourbrand.com/blog
Relative path/contact/ + site address → https://yourbrand.com/contact/
Encodingé → %C3%A9, & → &
Fragment and duplicatesDrops the #section part; keeps only the first copy of an address
lastmod orderDate on the line > Custom date or Today > Omit
Invalid lineSpaces, no domain or 2,048+ characters → skips the line

If the Site address field is empty, the tool takes the domain of the first full URL in your list. It keeps addresses from another domain or protocol in the file but warns you with the badge.

Sample lines and what the tool outputs

Paste these lines with https://yourbrand.com/ as the first line of the list and the loc tag shows exactly these values.

Line you enterloc valueWhat the tool did
yourbrand.com/abouthttps://yourbrand.com/aboutAdded https:// in front
/blog/https://yourbrand.com/blog/Completed it with the domain of the first full URL
https://YOURBRAND.comhttps://yourbrand.com/Lowercased the host, added / for the root and counted it as a duplicate of line one
https://yourbrand.com/café-menuhttps://yourbrand.com/caf%C3%A9-menuPercent encoded the accented letter
https://yourbrand.com/search?color=black&size=mhttps://yourbrand.com/search?color=black&size=mWrote the ampersand as an XML entity
https://yourbrand.com/pricing#planshttps://yourbrand.com/pricingDropped everything after #
/contact/ 2026-09-18https://yourbrand.com/contact/ (lastmod 2026-09-18)Put the date on the line ahead of the global choice
contact pagenoneSkipped the line because it contains a space and raised the Invalid counter

These examples assume an empty Site address field. The last line turns the badge amber; that does not mean the file is broken, only that one line stayed out.

Sitemap tags and how Google treats them

A standard sitemap uses six tags. The tool writes all of them, and the last column shows which ones actually matter to Google.

TagRequired?Value formatDoes Google use it?
urlsetYesCarries the protocol namespace in xmlnsRoot element of the file
urlYesOne wrapper per addressYes
locYesFull URL, shorter than 2,048 charactersYes
lastmodNoW3C Datetime, e.g. 2026-09-18Yes, if consistently accurate
changefreqNoalways, hourly, daily, weekly, monthly, yearly, neverNo, ignores it
priorityNo0.0 to 1.0, default 0.5No, ignores it

Source: the sitemaps.org protocol and Google Search Central documentation. Search engine behaviour can change; check the current documentation for critical projects.

What is an XML sitemap generator and what does it do?

An XML sitemap generator turns a plain list of addresses into the sitemap format that search engines read. A sitemap collects the pages you want indexed in a single file. Google and Bing then use it to learn about new or updated pages. I built this tool because I kept needing it for two jobs: hand coded sites without a sitemap of their own and migrations that call for a temporary one.

The tool reads your list line by line. It also handles these jobs on its own:

  • Adds the missing scheme: yourbrand.com/blog becomes an https:// address.
  • Resolves relative paths: it joins paths such as /about/ with your site address.
  • Removes duplicates: when the same address appears twice, it keeps the first one.
  • Encodes characters: accented letters turn into percent encoding and the ampersand into its XML entity.
  • Flags broken lines: it keeps lines with spaces or without a domain out of the file and lists them for you.

Everything runs in your browser, so your list never reaches a server. Our SEO consulting page explains how we handle the rest of technical SEO.

Does your site actually need a sitemap?

Short answer: it rarely hurts, and on some sites it makes a real difference. Google's documentation names three cases:

  • Your site is large and some pages are hard to reach through internal links.
  • Your site is new and few external sites link to it.
  • You host a lot of video and images, or your pages appear in Google News.

On the other hand, Google says a small site may not need one. Small here means about 500 pages or fewer with thorough internal linking. Still, I add a sitemap even to small sites. The Sitemaps report in Search Console then shows how many of the submitted addresses Google has discovered, which makes a cheap checkpoint.

Let me also be clear about the limits. Listing a thin or duplicate page will not push it up the rankings. The file helps discovery; content and link structure decide what a page is worth. I cover link structure in detail in my article on category structure for large websites.

Which pages belong in the sitemap, and which stay out?

My rule is simple. List only canonical addresses that you want to see in Google and that return a 200 status code directly. A sitemap is a wish list, and if you fill it with mixed signals, search engines trust it less.

So remove these addresses:

  • Redirecting URLs: replace every 301 or 302 line with its final target. You can check suspicious addresses first with the redirect checker.
  • Pages with noindex: putting a page in the sitemap while it carries noindex sends search engines two opposite messages.
  • Paths you block in robots.txt: Google cannot crawl an address you block. Review your rules with the robots.txt generator.
  • Parameter copies: addresses with filter, sort or campaign parameters are usually not canonical.
  • Pages behind a login: cart, account and dashboard pages help nobody in search results.

The tool does not make this call for you; it writes every valid address it receives into the file. That is why I recommend building the list from the canonical URL column of your crawler or CMS export.

When should you change the lastmod date?

Google ignores changefreq and priority. lastmod, on the other hand, helps Google schedule crawls. However, that only works while the date stays consistently and verifiably accurate. In practice, most of the value of a sitemap sits in that one field.

Google's yardstick is the last significant change. Update the date when you:

  • Change the main text of the page.
  • Add or fix structured data.
  • Update the links on the page.

Do not touch the date for a new copyright year in the footer or a small sidebar tweak. Google says it plainly. Claim yesterday for a page that changed years ago, and it will eventually stop believing your dates.

So the Today option only makes sense for a brand new site or pages you rebuilt from scratch. For a mixed list, set the global choice to Omit instead. Then add a date only to the lines you are sure about, with a space after the address. Google explicitly allows lastmod on just the pages you are confident about. I describe a sensible update rhythm in my content freshness strategy article.

What should you check before publishing the XML sitemap generator output?

Upload the sitemap.xml you downloaded to your site root. According to Google, a sitemap only covers addresses below its own folder. A file at the root, however, covers the whole site. The protocol also requires every address in one file to use the same protocol and the same host. That is why the badge in the tool warns you when it spots an address from another site.

Then announce the sitemap in two ways:

  1. Add the line Sitemap: https://yourbrand.com/sitemap.xml to your robots.txt. Search engines that support the protocol read it.
  2. Enter the address of the file in the Sitemaps report in Search Console and submit it.

The report then shows one of three statuses: Success, Has errors or Couldn't fetch. Even with errors, Google queues the addresses it could parse. Couldn't fetch, however, means Google never reached the file, so fix the problem and submit again. Pinging the old sitemap endpoint no longer does anything, because Google deprecated it in 2023. I walk through the report step by step in my Google Search Console guide.

What if one file is not enough for a large site?

A single sitemap can hold at most 50,000 addresses and 50 MB uncompressed. The tool tracks both limits in its counters and turns the badge red once you cross one. However, it does not split the file for you. I left it that way on purpose, because the right split depends on the structure of each site.

On large sites, I use this setup:

  • Split by type: keep products, categories, blog posts and company pages apart. You then see the discovery status of each file separately in Search Console.
  • Add an index file: a sitemap index lists up to 50,000 sitemap addresses in one file. After that, you only submit the index to Search Console.
  • Consider compression: a gzip file saves bandwidth, but the 50 MB limit applies to the uncompressed size.

With long lists, the code preview shows the first 500 addresses. The file you copy or download, however, contains all of them. Generating the parts here one by one and writing the index by hand works well for medium sized sites. For clean addresses from the start, the slug generator helps too.

How do you use sitemaps in site migrations and multilingual sites?

For a migration that changes URLs, Google recommends creating two sitemaps from your old to new URL mapping. Submit both in Search Console. Over time the indexed count in the old sitemap drops, while the new one climbs. So you can follow the progress of the move from a single screen. Redirect warnings on the old sitemap are normal during this phase. For details, see Google's site move documentation.

This tool fits that job well. Paste the two columns of your mapping one after the other, and you have both files within minutes. I collected the remaining steps of a move in my website migration SEO checklist.

On multilingual sites, one way to connect language versions is to add hreflang annotations to the sitemap. This tool only writes a standard address list; it adds no hreflang lines and no image, video or news extensions. For language pairs in the page head, use the hreflang generator instead. Then add the addresses of every language version to this sitemap as well.

Common sitemap mistakes

  • MistakeListing old addresses that redirectDo this insteadWrite the final target of every line. Apart from a temporary old URL sitemap during a migration, keep only addresses that return 200.
  • MistakeGiving every page today's date every dayDo this insteadUpdate lastmod only after a significant change. Leaving the field out for pages whose date you do not know sends a more honest signal.
  • MistakeLeaving relative paths without a site addressDo this insteadFill in the Site address field for lines such as /blog/. Otherwise, add at least one full URL, or the tool skips those lines.
  • MistakeMixing www and non www, or http and httpsDo this insteadPick one canonical version. If the badge warns about another site, fix the list to match that version.
  • MistakeUploading the file to a subfolderDo this insteadA sitemap only covers its own folder and below. So put the file in the root to cover the whole site.
  • MistakeSubmitting and never opening the reportDo this insteadAfter a few days, check the status and the discovered page count in the Sitemaps report.

Frequently Asked Questions

A sitemap speeds discovery; strategy brings the ranking.

A correct sitemap makes crawling easier; but the real work is deciding which pages should be indexed and the content architecture. Let's build your site's technical SEO together.

Explore SEO Consulting

Related Tools

All Tools (91)
Hreflang GeneratorCorrect hreflang tags for multilingual sites; x-default automatic.
Slug GeneratorTurn titles into SEO-friendly URLs; correct Turkish/German transliteration.
Redirect CheckerSee the 301/302 redirect chain and HTTP status codes step by step.
Google SERP PreviewTest your title and meta description with pixel-based measurement, desktop + mobile view.
Keyword DensityAnalyze your text with 1-2-3 word phrases; stop-word filter and ideal-range verdict.
Meta Tag GeneratorGenerate title, description, canonical, OG and Twitter Card tags in one click.