Back to guides

Hreflang: Getting Multi-Language Pages Mapped Correctly

Hreflang maps the same content across languages and regions. The return-link, self-reference and canonical rules that decide whether it works at all.

Hreflang tells search engines that 2 or more URLs are the same content for different languages or regions, so the right version surfaces for the right searcher. It is the most error-prone markup in technical SEO, because it is the only markup that requires every page in a cluster to agree with every other page. The rules are unforgiving in a specific way. Each page must reference itself. Every page it names must name it back. Language and region codes must be valid ISO values, where en-GB is correct and en-UK is a common invalid guess. URLs must be absolute. If one page in a 12-language cluster omits its return link, search engines can discard the mapping for the whole cluster rather than for the single broken edge. Hreflang also has to agree with your canonicals. A page whose hreflang names a URL that canonicalizes elsewhere sends 2 conflicting instructions, and the engine resolves the conflict by trusting neither. The checks below verify the structure declared on the page, then fetch each alternate to confirm it responds, stays indexable, and canonicalizes to itself. Structure and target health are separate problems: a cluster can be perfectly formed and still point at 3 pages that no longer exist.

Hreflang self-reference missing

Why it matters

Hreflang annotations only work when their structural details are exact; small inconsistencies quietly disable the language mapping.

How we check it

Hreflang annotations were checked for self-referencing links.

How to fix it

Include the current page URL in its own hreflang annotations.

Hreflang x-default incorrect

Why it matters

x-default is an author-selected fallback; its intended audience cannot be inferred from hreflang declarations alone.

How we check it

The x-default declaration was recorded; URL validity, target health, reciprocal annotations, and canonical alignment were evaluated independently.

How to fix it

Set the x-default hreflang to point to the language-neutral or global landing page (not a language-specific variant). Why this matters: x-default is the fallback for users whose language preference does not match any of your declared variants; pointing it to a language-specific page confuses search engines and delivers the wrong experience to international visitors.

Malformed hreflang URL detected

Why it matters

Hreflang tells search engines which language version of a page to show; structural errors make the language versions compete with each other.

How we check it

Hreflang alternate URLs were validated for correct syntax and path structure.

How to fix it

Fix malformed hreflang alternate URLs — remove double slashes, empty path segments, and invalid URL syntax. Why this matters: Malformed hreflang URLs create canonical noise and may cause search engines to ignore your entire hreflang cluster.

Hreflang target broken

Why it matters

An hreflang link that points to a broken or blocked page wastes the annotation for that language version.

How we check it

Hreflang target URLs were fetched and checked for errors.

How to fix it

Fix broken hreflang target URLs that return errors or redirect.

Hreflang target not indexable

How we check it

Hreflang target pages were checked for indexability.

How to fix it

Remove noindex from hreflang target pages so search engines can index them.

Hreflang canonical mismatch

Why it matters

When an hreflang target names a different canonical, search engines follow that canonical instead and the language mapping is discarded.

How we check it

Hreflang target pages were checked for self-canonical tags.

How to fix it

Ensure hreflang target pages declare themselves as canonical.

See How Your Site Ranks

Get a free AI-powered SEO report with actionable findings and priority fixes for your website.

No signup required.