Hreflang — the silent killer of international SEO
Hreflang is the technical tag that tells Google which language version of a page to show in which country. It is also the single biggest source of bugs in international SEO. We audit hreflang on every site we onboard, and roughly 80% have at least one silent error that is suppressing rankings without any visible warning in Search Console.
The six bugs we see most often
- Missing return tag. Hreflang must be reciprocal. If
/en/points to/fr/withhreflang="fr", then/fr/must point back to/en/withhreflang="en". A single missing return tag invalidates the cluster — Google treats both pages as if no hreflang were set. - Wrong region codes. Spanish for Spain is
es-ES. Spanish for Mexico ises-MX. Many sites shipes-SPorspanish; both are invalid and silently ignored. - Self-referential mismatch. Every hreflang cluster must include a self-referential tag (the French page must include
hreflang="fr"pointing at itself). Skip it and the cluster is broken. - Mixing protocols. A site that serves
https://example.com/fr/but listshttp://example.com/fr/in hreflang invalidates the tag. - Conflicts with canonical. If a page canonicalises to a different language version, hreflang is overridden. Common on sites that canonicalise everything to the English root.
- x-default missing. The
hreflang="x-default"tag is what Google falls back to when no language matches. Most sites omit it; the result is poor matching for users on uncommon locales.
How we audit
We crawl every URL, build the hreflang graph, validate reciprocity, check status codes (a hreflang pointing at a 301 chain is also a bug), and verify implementation matches the sitemap. The output is a defect list with the exact line of HTML or XML to change. We fix the issues before any new content goes live — fixing translations on top of broken hreflang is paying twice for the same problem.