What it's for, and the limits
A sitemap tells search engines a URL exists and roughly when it last changed. That's the whole job. It helps most where discovery is genuinely hard — a large site, a new site with few external links, pages buried deep in pagination.
It helps least on a small, well-linked site. If your 60 pages are all two clicks from the homepage, Google was going to find them anyway. The sitemap still earns its place, but as an instrument rather than a discovery tool.
The constraints are fixed: 50,000 URLs or 50MB uncompressed per file, whichever you hit first. Exceed either and you split into multiple files and publish a sitemap index — a sitemap of sitemaps, itself capped at 50,000 files. Gzip is allowed; the 50MB ceiling applies uncompressed.
Two tags in the spec are dead weight. Google has said plainly it ignores <priority> and <changefreq>. Setting every page to priority 1.0 tells a reviewer only that whoever configured your plugin didn't read the docs.
Split it by page type and it becomes a diagnostic
This is the part most sites skip, and the part that pays. One sitemap.xml with 500 URLs tells you one number. Eight sitemaps, one per page type, tell you which of your templates Google actually respects.
Search Console lets you filter the Page Indexing report by sitemap. Publish sitemap-services.xml, sitemap-glossary.xml, sitemap-locations.xml, and you can read the submitted-versus-indexed ratio for each page type independently. A site-wide 78% indexed rate is noise. Service pages at 100% and location pages at 31% is a decision.
Here's how to read it.
| Sitemap | A low ratio here usually means |
|---|---|
| Core service or product pages | Something structural — a canonical pointing elsewhere, or a noindex left on the template. Fix now; this is your money. |
| Blog or article pages | Quality or duplication. Google crawled and passed. More posts won't help; consolidating will. |
| Location or city pages | The classic template-variant verdict. If the only difference is the city name, Google has correctly identified them as one page. |
| Category or collection pages | Thin category copy, or near-identical product lists across categories. |
| Tag or archive pages | Ignore — these mostly shouldn't be in the sitemap at all. |
lastmod, and the cost of lying
lastmod is the one optional field Google genuinely uses — as a hint about whether a page is worth re-crawling. Which makes it the one worth being disciplined about.
The failure mode is a CMS that stamps today's date on every URL every night. Google checks a handful, finds the content identical to last time, and learns your dates are meaningless. From then on it ignores lastmod across your whole site — including the day you genuinely update something important.
So set it when the substantive content changes. Not when a comment lands, not on a nightly rebuild. If your build can't tell content changes from deploys, omit lastmod entirely. An absent field is honest; a wrong one is a signal you've spent.
Which URLs to leave out
- Anything with a
noindextag. Listing it says "index this" and "don't index this" in one breath. - Anything that redirects. A sitemap holds final URLs returning 200.
- Non-canonical variants. Every URL should be the canonical version of itself.
- Paginated archives, tag pages, internal search results, filter combinations.
- Anything blocked in robots.txt — you're asking Google to fetch what you told it not to.
Submitting it, and what the report actually says
Two steps. Add a Sitemap: line to your robots.txt with the absolute URL — that's how crawlers with no access to your Search Console account find it. Then submit it under Sitemaps in Search Console, which is how you get the reporting.
The Sitemaps report itself is thin: last read date, status, discovered URL count. Don't stop there. "Discovered" means Google parsed the file, not that it indexed anything. The number you want is in the Page Indexing report, filtered by sitemap.
One honest limit: if a page isn't indexed because Google judged it thin or duplicated, resubmitting changes nothing. The sitemap solved discovery. What's failing is the indexing decision — a content problem wearing a technical costume.