9 min read · updated August 2, 2026
Sitemap generator guide: build a sitemap Google trusts
Sitemap Generator
Generate XML sitemap — free, no signup
A sitemap generator builds the sitemap.xml file that tells search engines which URLs exist on your site and when they last changed, so crawlers can find pages that internal links alone might miss. That is the whole job. The file is not a ranking boost and it does not force anything into the index — it is a discovery aid, and on the sites where discovery is the bottleneck, it is one of the highest-leverage files you can ship.
Most sitemap advice online is stuck in 2010. It tells you to agonize over priority values and changefreq hints that Google has publicly said it ignores, while skipping the things that actually cause trouble: redirected URLs polluting the file, lastmod dates that lie, and sitemaps parked in directories where the protocol says their URLs do not count.
This guide covers the mechanics — what the XML format requires, which fields matter in 2026, how to decide what goes in the file, and how to submit and maintain it without babysitting.
What a sitemap does, and what it does not do
Search engines discover URLs two ways: by following links from pages they already know, and by reading the lists you hand them. A sitemap is that second channel. For a ten-page brochure site with a clean navigation menu, it adds almost nothing — Googlebot will find everything through links within a crawl or two. The value shows up when link-based discovery breaks down: a site with 40,000 product pages buried five clicks deep, a blog whose archive pages are paginated into oblivion, or a fresh domain with zero external links pointing at it.
What a sitemap does not do is guarantee indexing. Google treats every URL in the file as a suggestion, then applies the same quality filters it applies to everything else. If Search Console shows thousands of URLs under Crawled - currently not indexed, adding them to a sitemap again changes nothing — that is a content or quality problem wearing a technical costume.
There is a second, underrated use: the sitemap is a declaration of which pages you consider canonical. When Search Console's page indexing report splits results by All known pages versus All submitted pages, the submitted set is your sitemap. A clean sitemap turns that report into a precise audit — every indexable page you care about, tracked, with everything Google found on its own (parameter junk, staging leaks, tag archives) separated out where you can see it.
How the XML sitemap format works
A sitemap is an XML document following the sitemaps.org protocol, which Google, Bing, and Yandex all consume. The root element is urlset, declaring the http://www.sitemaps.org/schemas/sitemap/0.9 namespace. Inside it, each page gets a url element containing a mandatory loc (the absolute URL, protocol and host included) and up to three optional children: lastmod, changefreq, and priority.
Of those three, only lastmod earns its bytes. Google has confirmed it uses lastmod as a crawl-scheduling signal — but only when the dates prove trustworthy. If your generator stamps every URL with the moment the file was built, Google learns within a few crawls that your dates are noise and starts ignoring them. Use the real content-modification date in W3C Datetime format (2026-08-02 or 2026-08-02T14:30:00+00:00), or omit the field entirely. Changefreq and priority, meanwhile, are legacy fields: Google's crawl team has stated plainly that both are ignored, because site owners set priority 1.0 on everything and changefreq rarely matches reality.
The protocol also imposes hard limits and encoding rules that trip up hand-rolled files. URLs must be entity-escaped — an ampersand in a query string must appear as amp with the leading ampersand and semicolon, not raw — and the file must be UTF-8. A single sitemap caps at 50,000 URLs and 50 MB uncompressed; past either limit you split into multiple sitemaps and reference them from a sitemap index file, which uses a sitemapindex root and lists child sitemap locations instead of pages. Gzip compression is allowed (sitemap.xml.gz) but the uncompressed size still counts against the 50 MB cap.
One rule almost nobody knows: location scope. A sitemap can only claim URLs at or below its own directory. A file served from example.com/blog/sitemap.xml may list URLs under /blog/ but not your homepage. Keep the sitemap at the domain root, or declare it in robots.txt — a Sitemap: line there lifts the directory restriction.
- Maximum 50,000 URLs and 50 MB uncompressed per sitemap file
- All URLs absolute, on the same protocol and host as the sitemap itself
- UTF-8 encoding with XML entity escaping for ampersands, quotes, and angle brackets
- lastmod in W3C Datetime format, and only if the date is genuinely accurate
- Larger sites: multiple sitemaps tied together by a sitemap index file
Deciding which URLs belong in the file
The working rule: a sitemap should contain exactly the URLs you would want a stranger to land on from a search result — final, canonical, indexable pages that return HTTP 200. Every entry that violates that rule wastes crawl attention and muddies your Search Console reporting, because Google flags submitted URLs that redirect, 404, or carry noindex as errors and starts trusting the file a little less.
In practice that means the sitemap generator's output usually needs pruning. A crawl of a typical WordPress or Shopify site picks up paginated archives, tag pages, filtered category URLs with query parameters, and printer-friendly duplicates. None of those belong. Neither does the http version of anything, nor the non-www variant if www is canonical, nor cart and checkout pages, nor a login screen.
For sites past a few thousand URLs, split sitemaps by content type — products.xml, categories.xml, blog.xml — under one index file. The payoff is diagnostic: when Search Console shows 12 percent of product URLs unindexed but 96 percent of blog posts indexed, you know exactly where to dig. One monolithic 45,000-URL file gives you a single blended number that hides the problem.
- Include: canonical, indexable pages returning 200, on the canonical protocol and host
- Exclude: redirects, 404s, and anything carrying a noindex tag
- Exclude: parameter-based filters, session IDs, and printer or AMP duplicates of the same content
- Exclude: utility pages such as cart, checkout, login, and internal search results
- Split large sites into per-section sitemaps under one index for readable coverage reports
Where a sitemap earns its keep: real scenarios
New site launch. A domain with no backlinks is invisible to link-based discovery. Generate the sitemap, submit it in Search Console, and Googlebot has a complete map on day one instead of trickling in over weeks. This is the single scenario where a sitemap most visibly shortens time to first indexing.
Site migration or redesign. When URLs change, submit a sitemap containing only the new URLs the moment the 301s go live. Crawlers processing the file hit the new addresses directly, confirm them, and consolidate signals faster. Keeping the old URLs in the sitemap after a migration is a classic error — you would be formally recommending a list of redirects.
Ecommerce catalogs. Product pages churn constantly: items go out of stock, seasonal lines appear, prices change. An accurate lastmod on the changed products tells Google which corner of a 30,000-SKU catalog needs recrawling this week, instead of leaving it to re-check everything on its own schedule.
Orphan-page audits. Run the generator's crawl mode, then diff its output against your CMS's list of published pages. Anything the CMS knows about that the crawl never reached is an orphan — published, indexable in theory, and unreachable through your own navigation. This diff regularly surfaces landing pages someone built for a campaign two years ago and never linked from anywhere.
Submitting and maintaining the file
Upload the generated file to your web root so it resolves at example.com/sitemap.xml, then wire up discovery in two places. First, add a Sitemap: https://example.com/sitemap.xml line to robots.txt — every major crawler reads it, and it doubles as the scope-lifting declaration described earlier. Second, submit the URL in Google Search Console under Sitemaps and in Bing Webmaster Tools. Console submission is what turns on the per-sitemap indexing reports, which is most of the ongoing value.
Do not bother with the old ping endpoints. Google retired its sitemap ping URL in 2023; hitting it now returns a 404. Crawlers simply re-fetch known sitemaps on their own cadence, so the way you signal freshness is an accurate lastmod inside the file, not an external nudge.
Maintenance cadence depends on how the file is produced. A static file from a generator needs regenerating whenever you add, remove, or move pages — for an actively published blog, monthly is a reasonable floor, and immediately after any migration is mandatory. If your CMS can serve a dynamic sitemap that reflects the database in real time, prefer that and use the generator for what it does best on static builds: one-off generation, migration snapshots, and crawl-based audits of what is actually reachable.
Common questions
Sitemap Generator FAQs
- Do sitemaps help SEO rankings?
- No — a sitemap has no direct effect on rankings. It affects discovery and crawl efficiency, meaning pages get found and recrawled sooner, which matters most on new, large, or poorly linked sites. Once a page is crawled, it ranks on its own merits exactly as if Google had found it through a link.
- How many URLs can an XML sitemap contain?
- A single sitemap file is limited to 50,000 URLs and 50 MB uncompressed. Sites that exceed either limit split their URLs across multiple sitemap files and reference them from a sitemap index file, which may itself list up to 50,000 sitemaps — enough for 2.5 billion URLs before the scheme runs out.
- Does Google use the priority and changefreq tags?
- No. Google has stated publicly that it ignores both priority and changefreq because the values site owners supply are rarely accurate. The lastmod tag is the exception — Google uses it for crawl scheduling, but only when the dates track real content changes rather than the file's generation time.
- How do I submit a sitemap to Google Search Console?
- Open Search Console, choose your property, go to the Sitemaps section under Indexing, enter the sitemap URL, and press Submit. Google fetches it within a few days and the report then shows discovered URL counts and indexing status for that file. Adding a Sitemap: line to robots.txt alongside the submission covers Bing and other crawlers too.
- Should I include noindex pages in my sitemap?
- No — a sitemap entry and a noindex tag send contradictory signals, since the file says please crawl this while the page says do not index me. Google treats submitted-but-noindexed URLs as errors in the coverage report, and enough of them erodes trust in the whole file. The sitemap should contain only pages you actively want indexed.
- What is a sitemap index file?
- A sitemap index is a parent XML file that lists the locations of multiple child sitemaps instead of listing pages directly. It uses a sitemapindex root element and exists for sites that exceed the 50,000-URL per-file limit, or that want per-section sitemaps for cleaner reporting. You submit only the index URL, and crawlers follow it to every child file automatically.
A good sitemap is boring: a complete, current list of canonical URLs with honest lastmod dates, sitting at your web root, declared in robots.txt, and submitted to Search Console. Skip the priority theater, keep redirects and noindex pages out of the file, and let the coverage reports tell you where indexing actually stalls.
The ToolDoor sitemap generator builds that file for you — paste your URLs or let it crawl the site, and download a protocol-compliant sitemap.xml ready to upload. It is free, runs in your browser, and requires no signup.
Nearby doors