Choosing region and language codes: the silent invalidators
hreflang codes look trivial until a wrong one voids the whole annotation. Google ignores invalid codes entirely — no error in most tools, just silence. We compared the codes people reach for against what the standard accepts.
The recurring traps:
— Language uses ISO 639-1 (two-letter): en, de, zh. Region uses ISO 3166-1 Alpha-2: US, GB, DE.
— The classic invalid code is 'en-UK'. UK is not the ISO country code; it is 'GB'. We find this error constantly, and it silently kills the British targeting it was meant to create.
— 'zh-CN' is fine, but script subtags (zh-Hans, zh-Hant) are increasingly the better choice for Simplified vs Traditional, since they target writing system over geography — relevant for Chinese diaspora audiences.
— Made-up combos like 'en-EU' or 'es-LATAM' are invalid; there is no EU or LATAM country code. Region must be a single country.
The data suggests code errors are underdiagnosed precisely because they fail quietly rather than throwing warnings.
Our tactic: validate every code against the actual ISO lists before deploy, and prefer language-only when no valid single-country code fits your audience. Limitation — script subtag handling by Google is less documented than region subtags; test before committing a large cluster to zh-Hans.
Hreflang Lab
@HreflangLab
Choosing region and language codes: the silent invalidators
Этот пост опубликован в Telegram-канале Hreflang Lab. Подписаться можно по ссылке: @HreflangLab.