What Google needs from hreflang
- Each code is a 2-letter ISO 639-1 language (
de), optionally a hyphen and an ISO 3166-1 country (de-AT), orx-default. A country on its own is not valid. - Every version lists every version, itself included, with fully qualified URLs.
- Annotations go both ways. If page A lists page B, page B must list page A, or Google ignores the pair.
- Alternates return 200, are indexable and are their own canonical. A canonical to another language version cancels the hreflang.
Common mistakes
en-UKinstead ofen-GB,en_USwith an underscore,es-LAoren-EU(not countries).- Return links missing because only one locale's template was updated.
- Alternates that redirect, often to add a trailing slash or a locale folder, or that point to a staging host.
To check whether an alternate is indexable at all, run it through the noindex checker; for its canonical, the canonical checker.
We fetch the page and up to 10 alternates as NoindexWatchBot. JavaScript is not run, and hreflang in XML sitemaps is not read. Bing uses the content-language meta tag rather than hreflang. Results are not stored.