Skip to main content
All fixes

SEO, schema, meta tags

Fix Broken Hreflang: Resolve Reciprocation and 404 Errors

Hreflang requires reciprocal annotations: page A pointing to B requires B to point to A. Broken hreflang shows up in Search Console as 'No return tags'.

What's happening

Hreflang is the protocol for telling Google which language and regional variant of a page should appear for which audience. Tags can be set as in, in HTTP headers (Link: <...>; rel="alternate"; hreflang="..."), or in XML sitemaps. Each annotation must be reciprocated: if /en/page declares hreflang=es-ES pointing to /es/page, then /es/page must declare hreflang=en-US pointing back to /en/page.

Search Console's Legacy Tools > International Targeting > Language report flags hreflang errors. The most common are 'No return tags' (the reciprocation rule violated), '404 errors on alternate URLs' (one of the hreflang targets returns 404), and 'Wrong language code' (using en-UK instead of en-GB, or zh instead of zh-Hans).

Hreflang is one of the most error-prone SEO areas because it scales with the cartesian product of language variants. A site with 10 language versions has 10 sets of hreflang tags, each with 9 alternate links plus self-reference, so 100 tags total per page — and any single broken target breaks the whole page's hreflang for that language pair.

Why it matters

Wrong language version ranks. When hreflang is broken, Google may show /en-US/page to French users instead of /fr-FR/page, leading to bounce and a worse user experience. Conversion suffers across international audiences.

Duplicate-content collapse risk. Without working hreflang, the multiple language variants look like duplicates to Google. Consolidation may pick the wrong canonical, demoting some language variants entirely.

International expansion ROI drops. Companies that invest in localization and translation rely on hreflang to surface those investments to the right audience. Broken hreflang means the localized pages get less traffic than the source language version, regardless of translation quality.

Common causes

  • Reciprocation missing — page A points to B but B does not point back.
  • Hreflang target returns 404 (the linked page was deleted or moved).
  • Wrong language/region code (en-UK vs en-GB; zh vs zh-Hans/zh-Hant).
  • Self-reference missing — the page does not include hreflang for its own variant.
  • x-default missing — no fallback declared for unmatched audiences.
  • Hreflang URLs include trailing parameters that change the canonical.
  • Hreflang in head tag and sitemap conflict with each other.

Detect this on your site

Run a quick scan with the SEO Auditor. The tool surfaces this exact issue with the records and context needed to apply the fix below.

Open SEO Auditor

How to fix it

  1. 1

    Audit current hreflang coverage

    Crawl the site and report hreflang tags per page. The SEO Auditor identifies missing reciprocation, 404 targets, and wrong language codes. Search Console's Legacy Tools > International Targeting also surfaces these errors.

  2. 2

    Make every hreflang block reciprocal

    If page A declares hreflang for B, B must declare hreflang for A. The simplest correct pattern is to declare ALL alternate URLs (including self) on every variant. So /en-US/page lists itself as en-US plus links to es-ES, fr-FR, de-DE, etc. — and so does every other variant.

  3. 3

    Use correct ISO 639-1 + ISO 3166-1 codes

    Format is languageCode-regionCode (e.g., en-US, fr-FR, es-ES, de-DE, pt-BR, zh-CN, zh-TW). Common mistakes: en-UK (use en-GB), zh (specify zh-Hans for Simplified or zh-Hant for Traditional). Check the W3C language subtag registry for non-obvious codes.

  4. 4

    Add x-default for unmatched audiences

    tells Google what to show users not in any of your declared regions. Usually the English version or a global landing page. Required for international sites.

  5. 5

    Pick one declaration mechanism

    Hreflang can live in, HTTP headers, or sitemap. Pick one and stick with it — having both head and sitemap with conflicting values causes Google to ignore the signal. Sitemap is best for large sites with hundreds of language variants because it scales without HTML bloat.

  6. 6

    Validate with Search Console

    Search Console > Legacy Tools > International Targeting > Language report shows hreflang errors per page. Fix highest-error pages first, then watch for the count to drop on the next crawl pass (1-2 weeks).

Example

<!-- On https://example.com/en-US/blog/article -->
<link rel="alternate" hreflang="en-US" href="https://example.com/en-US/blog/article" />
<link rel="alternate" hreflang="es-ES" href="https://example.com/es-ES/blog/article" />
<link rel="alternate" hreflang="fr-FR" href="https://example.com/fr-FR/blog/article" />
<link rel="alternate" hreflang="x-default" href="https://example.com/en-US/blog/article" />

Reciprocal hreflang block with self-reference and x-default

Frequently asked

It means the hreflang reciprocation rule is violated — page A declares hreflang for page B but page B does not declare hreflang for page A. Hreflang requires bidirectional declarations. Add the missing reciprocal tag.

Yes. The cleanest approach is for every variant to declare hreflang for itself plus every other variant in the set. Partial declarations are fragile and break easily. The cartesian-product cost is real but unavoidable.

Hreflang is not a ranking factor in the traditional sense. It is a targeting signal — it tells Google which variant to show to which audience. Working hreflang protects rankings across language versions; broken hreflang causes the wrong version to surface.

Related fixes