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.self-reference-missing

hreflang block must include a self-reference

site.hreflang.self-reference-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: lowFixable: 1-click

Why it matters

Each page in an hreflang cluster must list itself as one of the alternates. Without the self-reference, the page declares "these are my sibling locales" but never says which locale IT is: and Google drops the entire annotation.

The fix

Wrong:

```html
<!-- /en-us/page is en-US but never says so -->
<link rel="alternate" hreflang="en-gb" href="https://example.com/en-gb/page">
<link rel="alternate" hreflang="fr-fr" href="https://example.com/fr-fr/page">
```

Right:

```html
<!-- /en-us/page declares itself plus siblings -->
<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">
<link rel="alternate" hreflang="fr-fr" href="https://example.com/fr-fr/page">
```

If you have a single template that emits every locale's alternate block, ensure the loop includes the current page's own locale. The same approach that fixes return-tags also fixes self-references.

References