Free XML Sitemap Generator
Enter your site and get a valid sitemap.xml back. It crawls two levels deep, up to 150 pages, following the links it finds - so it works even if your site has never had a sitemap. Takes 15 to 30 seconds because it visits the pages for real. No signup, nothing stored.
What an XML sitemap does, and what it does not
A sitemap is a list of the URLs you want search engines to know about. That is the whole job. It helps discovery.
It does not make anything rank. It does not guarantee indexing - Google treats a sitemap as a suggestion and routinely declines pages listed in one. And it is not a substitute for internal linking: a page that is in your sitemap but linked from nowhere is telling Google it does not matter, whatever the sitemap says. The llms.txt generator is the equivalent file for AI assistants, rather than search crawlers.
Where it genuinely earns its place: a new site with no inbound links, a large site where crawl budget is real, a site with pages that are not reachable from the main navigation, and any site that has just restructured and needs the new URLs found quickly.
How to submit your sitemap to Google
Save the file as sitemap.xml at the root of your domain, so it lives at yourdomain.com/sitemap.xml. Then open Google Search Console, choose your property, and go to Indexing, then Sitemaps in the left-hand menu. Enter sitemap.xml in the field and submit.
Add the same URL to your robots.txt as a Sitemap line - other crawlers read that even though Google prefers Search Console.
Do not resubmit every time you publish. Google re-fetches on its own schedule, and repeated manual submissions do nothing.
Sitemap rules that break indexing
A sitemap holds 50,000 URLs and 50 MB uncompressed, whichever comes first. Over either limit and you need a sitemap index file pointing at several smaller sitemaps.
Every URL must be absolute, including the protocol. A relative path is invalid and invalidates the file.
Only include canonical URLs. If two URLs serve the same page and one canonicalises to the other, list the canonical one only.
Do not include URLs that redirect. A sitemap of 301s tells Google your list is out of date. Check your list against the broken link checker before you submit it.
Do not include noindex pages. A sitemap is a list of pages you want indexed - listing a page you have told Google to ignore is a contradiction, and Search Console reports it as an error.
Do not include pages blocked in robots.txt. Google cannot crawl them to find out whether they should be indexed, so listing them achieves nothing.
lastmod, changefreq and priority
Three optional elements, and only one is worth your time.
lastmod is read. Google has said so explicitly, with a condition: it has to be accurate. A site where every page claims to have been modified last night is a site whose lastmod gets ignored entirely, so if you cannot generate it honestly, leave it out.
changefreq is not used. It was a hint about how often a page changes and Google stopped acting on it years ago.
priority is not used either. It let you rank your own pages from 0.0 to 1.0, everyone set everything to 1.0, and it stopped meaning anything.
The output from this tool contains loc elements only, which is valid and safe. If you can produce accurate modification dates from your CMS, adding lastmod is the one upgrade worth making by hand.
Sitemap index files for large sites
Past 50,000 URLs, split the sitemap by section - products, posts, categories - and create an index file that points at each one:
Submit the index file, not the children. Splitting by section has a side benefit: Search Console reports coverage per sitemap, so you can see that your product pages are indexed while your blog is not.
Sitemaps by platform
WordPress generates one at /wp-sitemap.xml by default. Yoast and RankMath replace it with their own - use theirs and do not submit both.
Shopify generates /sitemap.xml automatically and you cannot edit it. It includes everything published, so control it by unpublishing rather than by editing the file.
Webflow generates one, and you can switch to a custom sitemap in Project Settings, SEO.
Framer generates one at /sitemap.xml automatically.
If your platform already generates a sitemap, use this tool to check what it contains rather than to replace it - the two lists disagreeing is a common and quiet problem. It pairs naturally with the robots.txt generator, since the Sitemap line in robots.txt is the natural handoff between the two.
Checking a sitemap you already have
Paste the URL of an existing sitemap.xml and it gets validated: well-formed XML, inside the size and URL limits, absolute URLs only, no redirects, no noindex pages, and a sample of the URLs checked for reachability.
FAQ
Frequently Asked Questions
How many pages will it crawl?
Up to 150 pages, two levels deep from the URL you enter. Larger sites should generate from their CMS and use this to check the result instead.
Where do I upload the sitemap?
Save it as sitemap.xml at the root of your domain, then submit that URL in Google Search Console under Indexing, Sitemaps.
Do I still need a sitemap if my site is small and well linked?
It helps but it matters less. A sitemap earns its keep on sites with pages that are not linked from anywhere obvious, on new sites with no inbound links, and on large sites where crawl budget is real.
Why are some of my pages missing from the output?
The crawler follows links, so a page reachable only through a form, a filter or JavaScript navigation will not be found. It also stops at two levels deep and 150 pages.
Should I include noindex pages in my sitemap?
No. A sitemap is a list of pages you want indexed. Including a noindex page sends contradictory signals and Search Console will report it as an error.
Does having a sitemap improve rankings?
No. It affects whether Google finds your pages, not how they rank once found. Faster discovery of new content is the real benefit.