Sitemap URL Generator guide
Paste page paths or full URLs, set your domain, and get a ready-to-upload sitemap.xml or a plain list of absolute URLs. Duplicates and off-site links are removed, special characters are escaped, and query-string URLs are flagged.
What the generator does with your list
Every line is resolved against your base URL with the browser's URL parser, the same logic a browser uses for links. /about becomes https://example.com/about, blog/post becomes https://example.com/blog/post, and a full URL you paste is kept as is. Fragments like #pricing are dropped because crawlers ignore them. Anything on a different domain is skipped: a sitemap can only list URLs on the host it serves, unless you verify cross-site ownership in Search Console.
Duplicates are removed after normalization, so /blog/post and https://example.com/blog/post count once. URLs with query strings are kept but flagged, because they are often filters or tracking variants that should not be indexed. The trailing-slash option adds a slash to extensionless paths only, leaving /file.pdf and the root alone, so the sitemap matches whichever URL style your site uses.
The XML format, explained
A sitemap is a urlset element in the sitemaps.org 0.9 namespace, with one url element per page. Each url must have a loc, the absolute URL. It may have a lastmod in W3C date format, YYYY-MM-DD. That is all Google needs. The optional priority and changefreq tags from the original protocol are ignored by Google, so the generator leaves them out rather than adding noise.
Characters that are special in XML, namely & < > " and ', must be escaped inside loc. A URL like /search?q=a&b=c has to appear as & in the file. The generator escapes all five, which is one of the most common reasons hand-written sitemaps fail validation.
Worked example: a small site
The default input has seven lines: /, /about, /pricing, /blog/how-to-split-rent twice, https://example.com/contact, and /search?q=test. The output has six URLs. The duplicate blog post is removed and noted, and the search URL is flagged as having a query string.
That flag is a prompt to delete the line. Internal search result pages are thin, near-infinite, and exactly what Google's guidelines say not to index. Remove it, set lastmod to your publish date, download sitemap.xml, and put it in your site's public root folder. Then add Sitemap: https://example.com/sitemap.xml to robots.txt and submit it in Search Console under Sitemaps.
When a hand-built sitemap makes sense
Most CMSs and frameworks generate sitemaps automatically: WordPress core has done so since version 5.5, and Astro, Next.js, Shopify, Wix, and Squarespace all have built-in or plugin options. Use those when you can, since they update themselves when you publish.
A generator like this is for the gaps. Static HTML sites with no build step, a handful of landing pages on a separate stack, a migration where you need to submit the new URLs right away, or an audit where you want a clean URL list to feed into a crawler or a redirect map.
It is also a quick sanity check on an existing sitemap. Paste the URLs your CMS lists, and the duplicate and query-string notes tell you whether it is exposing tag archives, tracking parameters, or other pages you never meant to submit. Plenty of sites discover thousands of junk URLs this way, and trimming them helps crawlers spend their time on the pages that actually earn traffic.
Common sitemap mistakes
Listing URLs that redirect or return 404. Google reports these as errors in Search Console and may trust the sitemap less. Every entry should return 200.
Mixing http and https, or www and non-www. Pick the canonical version and use only that. The base URL field sets it for relative paths; check any full URLs you paste.
Setting every lastmod to today on every build. Google has said it uses lastmod only when it is consistently and verifiably accurate. Fake freshness teaches it to ignore the field for your whole site.
Forgetting to update it. A static sitemap goes stale the day you add a page. If your site changes often, switch to an automatically generated one.
How we calculate: sources
Frequently asked questions
What is an XML sitemap?
A file listing the URLs you want search engines to crawl, in the format defined at sitemaps.org. It helps Google and Bing find pages, especially on new sites with few links or large sites with deep pages.
How many URLs can a sitemap have?
Up to 50,000 URLs and 50 MB uncompressed per file. Larger sites split URLs across several sitemaps and list them in a sitemap index file.
Does Google use lastmod, priority, and changefreq?
Google uses lastmod when it is consistently accurate, and ignores priority and changefreq. That is why this generator only offers lastmod. Set it to the date the page content last meaningfully changed.
Where do I upload sitemap.xml?
Usually the site root, so it loads at https://yourdomain.com/sitemap.xml. Then submit it in Google Search Console and Bing Webmaster Tools, and add a Sitemap: line to robots.txt.
Which URLs should I leave out of a sitemap?
Anything you do not want indexed: redirects, 404s, noindex pages, duplicate URLs with tracking parameters, and non-canonical versions. Every URL in a sitemap should return 200 and be the canonical version.
Does a sitemap guarantee indexing?
No. It is a discovery hint. Google still decides whether each page is worth indexing based on quality and duplication.
Is data uploaded?
Everything runs in your browser. Nothing you enter is uploaded to a server or stored by us.
What is a sitemap index file?
A file that lists other sitemap files instead of pages, using sitemapindex and sitemap elements. It lets large sites split URLs across multiple sitemaps, each under 50,000 URLs, while submitting a single file.
Should I gzip my sitemap?
You can. Search engines accept sitemap.xml.gz, and compression helps for very large files. The 50 MB limit applies to the uncompressed size.