Building a standing monitor for hreflang health
Hreflang isn't set-and-forget — it decays as URLs change, locales launch, and redirects accumulate. A one-time audit is a snapshot; you need a tripwire. How we stand one up:
— Schedule a weekly crawl of all hreflang-emitting URLs, persisting each annotation set to a dated table. History is what lets you detect *drift*, not just current state.
— Compute three metrics per run: reciprocity rate (symmetric edges / total edges), alternate-reachability rate (200-status alternates / declared), and self-reference coverage (URLs including themselves / total). Alert when any drops week-over-week.
— Diff this week's annotation set against last week's. New 404 alternates and newly-broken reciprocals usually trace to a deploy you can pin by date.
— Cross-reference GSC's International Targeting error count as an independent signal; if your crawl says healthy but GSC climbs, you're likely missing client-rendered or sitemap-delivered annotations the crawl can't see.
We ran this for two quarters on a fast-shipping site: ~60% of new errors appeared within 7 days of a deploy, confirming most decay is change-induced, not random rot. The data suggests tying the monitor to your release calendar pays off.
Limitations: GSC's error count lags real-world state by days to weeks, so the two signals won't move in lockstep — treat divergence as a prompt to investigate, not a contradiction.
Hreflang Lab
@HreflangLab
Building a standing monitor for hreflang health
Этот пост опубликован в Telegram-канале Hreflang Lab. Подписаться можно по ссылке: @HreflangLab.