Hreflang return link is missing or has the wrong language value

In the reportHreflang return link missing

hreflang_missing_return_link · Issue

Short answer

A page declares an alternate, but that alternate does not return to it correctly. Compare the exact language value, including its region, and add or correct the reciprocal declaration.

Severity: High. Resolve the incompatible alternate relationship soon.

Why it matters

A broken reciprocal relationship can prevent the intended localized pair from being understood.

What to do

  1. Find the declaring page and alternate in the finding.
  2. Add the declaring page to the alternate’s HTML, HTTP Link header or own sitemap with the declaring page’s self-reference value.
  3. Keep exact region values consistent; a fallback entry alone does not assert a concrete language.

What we read

The audit reuses this run’s admitted page and canonical-target captures, then selects at most 20 additional distinct HTTPS alternates across internal and external hosts. Requests use the shared robots, safety, pacing and redirect controls. A probe is not a billed page. The captured terminal document is parsed once; JavaScript and foreign sitemaps are not read.

The return set combines the alternate’s HTML and HTTP Link declarations and, for an internal alternate, its own entries in the site’s sitemaps. A matching concrete return is sufficient for clean even when another channel is unread.

Without that match, a verdict requires every return channel complete, well-formed declarations and agreeing admitted aliases. No return fires; only x-default is clean; x-default together with a wrong concrete value fires as a mismatch. de-AT and de-CH differ.

A foreign alternate’s sitemap is always unread: a matching concrete HTML or Link return can be clean; a visible wrong value, x-default-only or no visible return remains unknown. Disagreeing self labels on the declaring page remain with the cross-method owner.

Example & evidence

Illustrative example — declared addresses and responses, not a live audit.

A declares B with de-AT as A’s self value; B returns to A only with de-CH.

Correction: B returns to A with de-AT.

Confirm & check again

Check for yourself: Compare A’s self-reference values with every complete return channel on B; inspect the gap reason before treating an absent visible return as a defect.

Check again: Full audit — Run another audit of the same declared target and its declaring pages. A sufficient clean check can fix the same target finding. If the declaration disappears, every previously affected page needs complete HTML, HTTP Link and own-sitemap coverage, a well-formed target set and agreeing admitted aliases. Missing, malformed or unread evidence carries the finding.

Limits & sources

The check compares exact annotations, not the actual language of the text. Without a self-reference on A, only a missing return can be decided. Redirected alternates use their final document for this return check.

A refused, over-budget, failed or unread target remains unknown. Different or unread admitted aliases qualify declaration completeness; their declarations are never merged into the representative page. These observations do not establish Google’s indexing or chosen canonical.

Confidence: High High for the retained response or declarations that directly establish this defect. Coverage gaps remain separate and never count as a clean result.

Sources

Editorial review: 3 November 2026