hreflang set does not include the page itself
hreflang_missing_selfShort answer
This page has hreflang annotations for other language versions, but none of them points to the page’s own URL. Google’s guidelines say each language version must list itself as well as all the other versions. Add a self-referencing hreflang with the page’s own language code.
Why it matters
hreflang describes one set of equivalent pages, and every page should carry the same complete set. When a page leaves itself out, its set differs from the sets on the other versions, which makes the cluster harder to interpret and is a common sign that the annotations are generated inconsistently (for example by a template that skips the current language).
How Glimana detects it
For every page that returns 200, is not canonicalised to another URL and carries hreflang (in the HTML, the HTTP header or the sitemap — the three are combined), Glimana checks whether any hreflang target is the page’s own URL. The rule fires when none is. The evidence shows how many hreflang links the page has.
How to fix it
- Find the affected pages in Glimana. Open Issues › hreflang set does not include the page itself. Every affected page is a row; open one to see the evidence Glimana recorded for it (the measured value, the offending element or the target URL). The same list sits on the task card under Tasks, and the page's own detail view under Pages shows its full signals.
-
Apply the fix on your platform.
Add an hreflang annotation that points to the page itself, using its own language (and region) code, so that every page of the set lists the same complete set of URLs, itself included.
WPML, Polylang and the major SEO plugins include the current page automatically. If yours does not, check whether a custom hreflang block in the theme replaces the plugin’s output, or whether the current language is excluded in the plugin settings.
Shopify Markets prints a complete set including the current page. A custom hreflang loop in
theme.liquidthat skips the current locale causes this error; remove it or make the loop include every locale.Generate the tags from the full list of language versions without filtering out the current one. The same list should produce identical sets on every page; if you also publish hreflang in the sitemap, generate it from the same list.
-
Publish and clear caches. Save and publish, then make sure the crawler will see the new version: WordPress — clear the page cache in your cache plugin and purge the CDN; Shopify — theme and content changes go live on save, but purge any CDN in front of the store; custom code — deploy and purge the edge cache. Check in a private window or with
curl -s https://your-domain/page | grep -i '<title\|canonical\|robots'that the live HTML has changed; Glimana reads what the server sends, not what your browser has cached. - Verify in Glimana. Open the task under Tasks and click Mark as done. The affected pages are queued for a verification crawl, and the task closes when each page’s hreflang set includes its own URL.
How the fix is verified
The next crawl re-reads the hreflang sets; the task closes when every page lists itself.