Missing Reciprocal Hreflang (No Return-Tag): How to Fix It

No Comments
Missing reciprocal hreflang (no return-tag): how to fix it
TL;DR

Hreflang must be reciprocal: if page A points to page B, page B has to point back to A (and to itself), or Google ignores the entire annotation set as untrusted.

A "Missing Reciprocal Hreflang (No Return-Tag)" error means your international SEO annotations are broken in a way that quietly cancels them out. The pages still load, nothing visibly fails, and yet Google is throwing the whole hreflang cluster away. This is the single most common hreflang mistake on the web, and because it produces no error in the browser, it usually goes unnoticed for months. Here is exactly what the rule is and how to fix it.

What the return-tag rule is

Hreflang is not a one-way signpost. It is a mutual confirmation between pages. When your English page declares that a French page is its alternate version with hreflang="fr", that French page must contain a matching annotation pointing back at the English page with hreflang="en". Google's documentation calls this the return link, or return tag. As Google's own guidance puts it, if page X links to page Y, page Y must link back to page X. Without that confirmation, the relationship is unverified.

The same rule applies to every member of a language cluster, and each page must also reference itself. A three-language set (English, French, German) is only valid when all three pages list all three URLs, including their own.

Why bidirectionality is mandatory

The requirement is a security and trust mechanism, not an arbitrary rule. Google requires bidirectional linking so that an unrelated site cannot arbitrarily name itself as an alternate version of one of your pages. If hreflang were one-directional, anyone could place a tag claiming their page is the "Spanish version" of your homepage, and hijack the relationship. By demanding that both pages confirm each other, Google ensures both parties genuinely agree they belong to the same set. A claim that is not returned is treated as a claim that cannot be trusted.

How Google ignores non-reciprocal hreflang

This is the part that makes the error so costly. Hreflang is a hint, not a directive. When a return tag is missing, Google does not show a hard error or partially apply the annotation. It simply ignores the broken relationship, and in many cases discards the entire cluster as unreliable. Your carefully built multilingual setup delivers zero benefit. Users in France keep landing on your English page, the wrong regional URL keeps surfacing in search, and you have no warning that anything is wrong because the pages themselves work perfectly. Industry analyses have repeatedly found missing return tags to be the most frequent hreflang implementation error across sites that use the attribute at all.

How to diagnose it

Use a crawler that maps hreflang relationships across the whole site, not page by page. In Screaming Frog SEO Spider, crawl the site, open the Hreflang tab, and apply the Missing Return Links filter to list every URL whose alternates fail to reciprocate. In Sitebulb, the equivalent hint is "Missing reciprocal hreflang (no return-tag)," which flags any URL where at least one declared alternate does not link back. Both tools resolve the full set so you can see which specific page in a cluster is breaking the chain.

How to fix it

The fix is to make every member of a cluster reference all other members and itself, using identical, canonical, absolute URLs. Decide on your full language set, then ensure each page in that set carries the complete block of annotations. Below, the first example is broken because the French page omits the return link to English; the second is correct because every page confirms every other.

<!-- BAD: English page points to French, but French never points back -->
<!-- On /en/ -->
<link rel="alternate" hreflang="en" href="https://example.com/en/" />
<link rel="alternate" hreflang="fr" href="https://example.com/fr/" />
<!-- On /fr/  (return tag to /en/ is MISSING) -->
<link rel="alternate" hreflang="fr" href="https://example.com/fr/" />
<!-- GOOD: both pages reference each other AND themselves -->
<!-- On /en/ -->
<link rel="alternate" hreflang="en" href="https://example.com/en/" />
<link rel="alternate" hreflang="fr" href="https://example.com/fr/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/en/" />
<!-- On /fr/ -->
<link rel="alternate" hreflang="en" href="https://example.com/en/" />
<link rel="alternate" hreflang="fr" href="https://example.com/fr/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/en/" />

After deploying, recrawl to confirm the Missing Return Links filter is empty. Whether you declare hreflang in the HTML head, in HTTP headers, or in an XML sitemap, the same reciprocity rule applies, so keep one method as your single source of truth to avoid conflicting declarations.

Common mistakes

One-way links. The classic error: you add hreflang to a primary page when launching a new translation but forget to add the return annotation to the new page. Always update both ends at the same time.

Mismatched URLs. The return tag must point at the exact same URL the other page uses for itself. A trailing slash difference, an http versus https mismatch, a www inconsistency, or pointing at a URL that redirects all break reciprocity. Google compares the strings as canonical, indexable destinations.

Pointing at non-indexable pages. If a return link targets a URL that is noindexed, redirected, or canonicalised elsewhere, the confirmation fails and the cluster is discarded.

FAQ

Q: Will one missing return tag break my whole international setup?

A: It breaks at least the affected relationship, and Google often discards the entire cluster as unreliable. Because hreflang is a hint rather than a directive, a defective set is simply ignored with no visible warning, so you lose the benefit silently.

Q: Does every page really need to reference itself?

A: Yes. A self-referencing hreflang annotation must be present on each page in the cluster alongside the links to its alternates. A set is only valid when every member lists every URL, including its own.

Q: How do I confirm the error is gone after fixing it?

A: Recrawl with Screaming Frog and check that the Missing Return Links filter under the Hreflang tab is empty, or rerun the Sitebulb hint. A clean recrawl confirms every alternate now reciprocates.

Need a full technical audit?

SEO ProCheck runs deep crawls that catch issues like this across your whole site.

Get in touch

Claude Vincent is a technical SEO consultant focused on crawlability, rendering, and AI-search visibility. He writes the field guides and case studies at SEO ProCheck, with a bias toward the durable, unglamorous work that decides whether search engines and AI answer engines can actually read and cite a site.

About SEO ProCheck

Technical SEO consulting and GEO strategy with 20 years of enterprise experience. Case studies, resources, and tools for search and AI visibility.

Work With Me

Technical SEO audits, GEO strategy, site migrations, and international SEO. Hourly consulting for teams who need hands-on support, not just reports.

Subscribe to our newsletter!

More from our blog