Hreflang tags tell Google there are multiple language versions of the same content and which version to serve to which user, based on their browser language and location. Misconfiguration causes wrong-language results or duplicate-content penalties across all variants.
Why this matters
A multilingual site without correct hreflang falls into one of three traps. First, Google serves the English version to a Hebrew searcher in Israel - because English accumulated more historical backlinks. Second, Google sees three variants (he, en, fr) of the same page and labels them all as duplicate content - every variant loses ranking. Third, link equity splits across variants instead of consolidating.
Hreflang is also critical for Google Discover and voice search. Google will not promote content in Discover if it cannot confirm the user's language match. On Bing and Yandex, hreflang is essentially the only language signal - without it, foreign-country search will not show your site at all.
How to detect
View source on a translated page and search for <link rel="alternate" hreflang=. You should see lines like:
<link rel="alternate" hreflang="he" href="https://example.com/he/page" />
<link rel="alternate" hreflang="en" href="https://example.com/en/page" />
<link rel="alternate" hreflang="x-default" href="https://example.com/en/page" />Verify there is one line per language, including self-reference (the current variant points to itself), plus one x-default line. Anything missing indicates a problem.
Complementary check: in Google Search Console > Legacy tools > International Targeting (where still available) or in Ahrefs Site Audit, the hreflang report flags common errors - missing self-reference, missing return tag, malformed language code.
Third check: free validators like https://www.aleydasolis.com/english/international-seo-tools/hreflang-tags-generator/ or https://technicalseo.com/tools/hreflang/ - they parse hreflang and surface issues clearly.
How to fix
If you use a multilingual plugin (Polylang, WPML, TranslatePress, Weglot), hreflang is generated automatically. Verify in plugin settings:
- Polylang > Settings > URL modifications - confirm hreflang is enabled.
- WPML > Languages > SEO Options - turn on "Add hreflang attributes".
- TranslatePress SEO Pack add-on (premium) emits hreflang automatically.
If you built translations manually without a plugin, add a filter in your theme's functions.php or via the Code Snippets plugin that injects the tags into wp_head. Every language variant must reference all variants, including itself.
Add one line with hreflang="x-default" pointing at the fallback variant - this is the version Google serves to users whose language is not explicitly mapped.
Common mistakes
First mistake: malformed language codes. The standard is ISO 639-1 for language (he, en, fr) optionally combined with the international country-code standard-1 alpha-2 for region (he-IL, en-US, en-GB). Never he_IL with an underscore, never iw (deprecated Hebrew code), never jp for Japanese (correct code is ja).
Second mistake: missing self-reference. Every variant must reference itself. If the English version only references Hebrew and French but not English, Google ignores the entire cluster.
Third mistake: hreflang pointing at a URL returning 404 or 301. If it references a non-existent page or one that redirects, the cluster breaks. Every URL in hreflang must return HTTP 200 directly.
Fourth mistake: missing return tag. If page A references page B via hreflang, page B must reference A back. Always validate both directions.
Fifth mistake: hreflang colliding with canonical. The canonical of each variant must point to itself, not another variant. canonical=he together with hreflang=en on the same page creates a conflict and Google ignores the cluster.
Verifying the fix
Run the page through https://technicalseo.com/tools/hreflang/ and confirm zero errors. In Google Search Console > Legacy tools > International Targeting, watch the error report drop to zero over 4-6 weeks. Check Performance > Search Type by country - traffic from the targeted regions should climb.