Two freshness signals, and they shipped the lazy one
A large docs site struggled with crawl budget — Googlebot re-fetched 80,000 unchanged pages daily while new docs waited days to index. -0% on fresh content that should've ranked fast.
The investigation looked at how the JS-built pages signaled change. Every response returned 200 with no ETag and a sitemap lastmod set to the build date — so every page looked 'changed' on every nightly build, even untouched ones. Google had no way to tell a real edit from a rebuild, so it re-crawled everything and starved the new pages of budget.
Turns out lastmod-on-build and proper ETags are different freshness contracts. Build-stamped lastmod says 'everything changed' (a lie). Content-hash ETags say 'this exact resource is unchanged' (the truth Google can act on with a 304).
They switched to content-hash ETags and per-document lastmod tied to actual edits.
304 responses jumped to 70% of doc crawls; freed budget cut new-doc indexing from 6 days to under 12 hours. Fresh-content queries gained +16% in seven weeks. Tell Google what actually changed, not what your build touched.
Hydrate Diaries
@HydrateDiaries
Two freshness signals, and they shipped the lazy one
Этот пост опубликован в Telegram-канале Hydrate Diaries. Подписаться можно по ссылке: @HydrateDiaries.