belun.app Blog
RU

XML Sitemaps: What Google Reads and What It Throws Away

Two elements still matter, two are dead weight, and one escaping bug breaks half the hand-written sitemaps I see. Plus a free sitemap.xml generator.

Paper map spread on a desk, planning site structure before building an XML sitemap

A sitemap has four possible elements per URL. Google pays attention to two of them and quietly discards the other two. That fact alone would save a lot of people a lot of spreadsheet work, and somehow it still isn’t common knowledge.

The XML Sitemap Generator takes a pasted list of URLs and hands back a file that validates. Below is what’s actually happening inside it.

The two that get thrown away

changefreq and priority. Google confirmed in 2023 that it ignores both, and nothing has changed since. The reason is boring: everyone set priority to 1.0 on every page, so the number stopped meaning anything. Same story with changefreq — sites declared hourly on pages nobody had touched since 2019.

Bing and Yandex still read them, which is why the generator keeps them optional rather than dropping them. If your traffic is all Google, turn them off. Your file gets smaller and no crawler notices.

priority in particular gets misread as a ranking knob. It never was. At best it hinted at a crawl order within your own site, never against anyone else’s.

The two that count

loc is the whole point. lastmod is the one Google genuinely uses, but with a condition attached: it has to be believable.

I’ve watched a site regenerate its sitemap nightly with lastmod set to today on all 4,000 URLs. Crawl budget went up for about a week. Then Google worked out the dates were noise and stopped trusting the field entirely — for that domain, permanently as far as anyone could tell. Set the date to when the page’s main content actually changed. A tweaked footer or a new year in the copyright line doesn’t count.

The format is W3C Datetime: 2026-09-20, or 2026-09-20T14:30:00+00:00 if you want the time. 09/20/2026 gets rejected by the parser, and so does 20-09-2026.

The ampersand problem

This is the one I see most in hand-rolled sitemaps. A URL like:

https://shop.example.com/search?q=boots&sort=price

goes inside <loc> as:

https://shop.example.com/search?q=boots&amp;sort=price

Miss that and the XML is malformed. Not “one URL fails” — the entire file gets rejected, all 12,000 URLs of it, and Search Console reports it as an unreadable sitemap without telling you which line broke. The characters that need escaping are &, <, >, " and '. The generator handles all five.

Runner-up cause: a byte order mark or a blank line before <?xml. Some editors add one without asking.

Limits and location

50,000 URLs or 50 MB uncompressed, whichever hits first. Past that you need several files plus a sitemap index. Paste a longer list into the tool and it splits automatically, numbering the files and writing the index for you.

Location has a rule people miss: a sitemap can only list URLs at or below its own directory. Put the file at /blog/sitemap.xml and it has no authority over /pricing. Root is the safe answer.

One habit worth retiring — Google shut down the sitemap ping endpoint in June 2023. Those google.com/ping?sitemap= calls in your deploy script do nothing now. Declare the sitemap in robots.txt with the Robots.txt Generator and submit it once in Search Console; Google re-fetches on its own schedule after that.

When you don’t need one at all

A 40-page site with a navigation menu that links to everything doesn’t need a sitemap. Googlebot will find those pages on its own.

Sitemaps earn their keep when a site is big, when pages aren’t linked from anywhere obvious, or when you want the Search Console coverage report scoped to the URLs you care about rather than every stray parameter variant.

Paste your URLs into the XML Sitemap Generator and download a file that will parse on the first try.

Try the tool

XML Sitemap Generator →