We respect your privacy.

We use strictly necessary cookies to keep you signed in and to protect against CSRF. With your permission we also use a small amount of first-party analytics to improve the product. We do not sell your data and we do not use third-party advertising trackers. See our cookie policy and privacy policy .

← All learn topics

Rule site.hreflang.return-tag-missing

hreflang return tags are not bidirectional

site.hreflang.return-tag-missing is a check in Crawlmind's site audit that grades high-impact issues of this kind. This page explains why the rule matters and the exact fix.

Impact: highEffort: mediumFixable: 1-click

Why it matters

Google enforces a bidirectional rule: if page A declares page B as the `en-GB` variant, then page B must declare page A as the variant it pairs with. When the return tag is missing, Google ignores the entire annotation rather than guess at half the relationship. Result: neither A nor B benefits from the locale signal.

The fix

Wrong (one-way):

```html
<!-- /en-us/page -->
<link rel="alternate" hreflang="en-us" href="https://example.com/en-us/page">
<link rel="alternate" hreflang="en-gb" href="https://example.com/en-gb/page">

<!-- /en-gb/page (declares only itself, not en-us) -->
<link rel="alternate" hreflang="en-gb" href="https://example.com/en-gb/page">
```

Right (bidirectional):

```html
<!-- /en-us/page -->
<link rel="alternate" hreflang="en-us" href="https://example.com/en-us/page">
<link rel="alternate" hreflang="en-gb" href="https://example.com/en-gb/page">

<!-- /en-gb/page -->
<link rel="alternate" hreflang="en-us" href="https://example.com/en-us/page">
<link rel="alternate" hreflang="en-gb" href="https://example.com/en-gb/page">
```

Practical implementation: generate the hreflang block from a single shared list of locale URLs per page-cluster. Every variant emits the same block. That structure makes return-tag bugs impossible.

References