Checks

hreflang correctness

Validates that hreflang alternate links use valid language codes, include a self-reference, avoid conflicting duplicates, and link back from every page they point to.

Updated 2026-07-19majorInternationalization

What this check looks for

This site-wide check runs only on pages that declare hreflang alternate links at all — a site with none is treated as single-language and reports "na". For each annotated page, it validates every hreflang code against a BCP-47-style pattern (or x-default), checks for duplicate language codes pointing at different URLs, confirms the page includes a self-referencing hreflang entry, and — for any alternate that was itself crawled — confirms that target links back to this page (the "return tag" requirement). Invalid codes or missing return tags fail. A missing self-reference or a conflicting duplicate warns. A fully consistent hreflang set passes.

Why it matters

hreflang is how you tell Google which language or regional variant of a page to show a given searcher, and it only works reliably as a complete, symmetric set: if page A points to page B as its Spanish alternate but B doesn't point back to A, search engines can't trust the relationship and may ignore the whole annotation, serving the wrong regional version to searchers or treating both pages as competing duplicates instead of complements. An invalid language code is silently ignored rather than erroring loudly, which is precisely why this needs an explicit check. AI systems handling multilingual sites face the same ambiguity without a complete, valid hreflang set — they can't confidently determine which page to reference for a query in a given language.

How to fix it

Ensure every language variant declares a complete, mutually-referencing set of hreflang links, each with a self-reference:

html
<!-- On the English page -->
<link rel="alternate" hreflang="en" href="https://www.acme.com/en/headphones">
<link rel="alternate" hreflang="es" href="https://www.acme.com/es/auriculares">

<!-- On the Spanish page (must link back) -->
<link rel="alternate" hreflang="en" href="https://www.acme.com/en/headphones">
<link rel="alternate" hreflang="es" href="https://www.acme.com/es/auriculares">

Generate hreflang sets programmatically from your site's language/URL mapping rather than hand-maintaining them — that's the most common source of missing return tags at scale.

See how your site scores on this check

Run a free scan

See how your site scores on this check.

The free teaser scan checks a sample of your pages — no account, no card.