Technical SEO

Hreflang Tags and Multilingual SEO, Explained

What hreflang tags do, the return-tag rule that breaks most implementations, hreflang vs canonical, and how to run multilingual SEO without duplicate-content damage.

9 min readBy the ProRank team
Language versions of a page interlinked with reciprocal hreflang annotations

Hreflang tells search engines which language version of a page to show whom — and it is probably the most error-prone tag in technical SEO, because one missing return link voids the whole mapping without a single visible error. Here is how it works, the rules that actually break, and the multilingual setup that survives growth.

multilingual seo” — 210 searches/mo (Google, US)
Hreflang and multilingual SEO demand
multilingual seo ($16.15 CPC)210/mo
hreflang attributes90/mo
hreflang alternate70/mo
what are hreflang tags50/mo
hreflang and canonical40/mo

Average monthly US search volume. Source: Google autocomplete demand via AnswerThePublic, 2026.

What it looks like

One pricing page, three audiences
<link rel="alternate" hreflang="en-us"
      href="https://example.com/pricing/" />
<link rel="alternate" hreflang="en-gb"
      href="https://example.com/uk/pricing/" />
<link rel="alternate" hreflang="de"
      href="https://example.com/de/preise/" />
<link rel="alternate" hreflang="x-default"
      href="https://example.com/pricing/" />

Read it as a contract: this page declares its siblings — US English, UK English, German — plus an x-default for everyone else, and every sibling must publish the same set pointing back.That reciprocity is the rule implementations break: a German page missing its return link voids the pair, and Google quietly resumes showing whichever version it prefers — usually the wrong one, in the wrong country, which is exactly the problem you added hreflang to solve.

Hreflang vs canonical — allies, commonly confused

Canonical

  • "Of these duplicates, index this one"
  • Consolidates signals to a single URL
  • Each language version points to ITSELF
  • Wrong use: pointing all languages at one

Hreflang

  • "These are equivalents — match user to version"
  • Routes searchers, transfers nothing
  • Each version lists ALL its siblings
  • Wrong use: annotating pages that differ in content

The interaction has one landmine: canonicalising every translation to the English original tells Google the translations are duplicates to discard — they leave the index, and the hreflang pointing at them dies with them. Self-canonical plus full hreflang set, on every version, always (canonicals explained).

The rules that actually break

  1. Return tags — every referenced page references back, including new pages added later in only one language.
  2. Self-reference — each page includes itself in its own set.
  3. Absolute URLs to final destinations — no relative paths, no URLs that redirect, no noindexed targets.
  4. Valid codes — ISO 639-1 language plus optional ISO 3166-1 region: en-gb works, en-uk silently fails.
  5. Translate the metadata too — an hreflang-perfect German page with English titles still reads wrong in German results.

The meta-rule: these constraints are trivially satisfiable on day one and reliably violated by month six, because every new page, deleted page, and URL change must update the sets on every sibling. Hreflang is a maintenance problem wearing a markup costume — which is the argument for generating it, not writing it.

Publishing in more than one language? Run the free audit — hreflang validity is part of the international checks.

Frequently asked questions

What are hreflang tags?
Hreflang tags are annotations that tell search engines which language and regional versions of a page exist, so each searcher gets the right one — a German user the German page, a UK user the UK page. They live as link elements in the head, in HTTP headers, or in the XML sitemap, and each page must list every version including itself.
What is the return-tag rule in hreflang?
Every page referenced by an hreflang annotation must reference back. If your English page lists the German version but the German page fails to list the English one, Google ignores the pair entirely. This reciprocity requirement is why most hreflang implementations fail — one missing return link silently voids the mapping, with no error shown anywhere.
What is x-default in hreflang?
x-default names the version to show searchers who match none of your declared languages — typically your primary page or a language selector. It is optional but recommended: without it, engines guess which version suits unmatched users, and the guess is often wrong.
Is hreflang the same as canonical?
No — they answer different questions and work together. Canonical says "of these duplicate URLs, index this one"; hreflang says "these are equivalent pages for different audiences — show each user theirs". Each language version should canonicalise to itself and hreflang to all its siblings. Canonicalising all languages to one version is the classic error that removes translations from the index.
Do I need hreflang for a single-language site?
No. Hreflang exists to disambiguate multiple versions of the same content in different languages or regions. One language, one region, one version per page — skip it entirely. Add it when you genuinely translate or regionalise, and automate it when you do, because hand-maintaining reciprocal pairs across a growing site does not survive contact with reality.

See where your site stands — free

Run a free SEO audit on up to 25 pages. Executive summary, issues by category, priority pages, and a PDF report — no signup required.