What hreflang does, and what it does not
hreflang is an attribute on rel="alternate" links that declares a URL's equivalents in other languages or regions, so Google can show each searcher the version meant for them. It selects which locale URL appears; it does not rank pages or override canonicalization, so every locale needs its own self-referencing canonical, a full set of reciprocal links, and valid ISO codes.
The annotation does not name an original. It describes a set of alternates that are all legitimate, each aimed at a different audience. That is the opposite claim from rel=canonical, which says a set of URLs are copies and one of them should be indexed. Keeping the two claims straight explains most of the rules that follow.
hreflang has no direct ranking effect. Gary Illyes said in a 2019 Reddit AMA that sites get no ranking benefit as such, only more targeted traffic, and that signals are not shared around within a cluster: each localized page stands on its own strength. So a well-linked English page does not lift its German counterpart by being annotated alongside it.
Nor does Google read hreflang to decide what language a page is in. Google's documentation says language detection is algorithmic and ignores both hreflang and the HTML lang attribute, and its multi-regional guidance adds that code-level language information and the URL are not used either. hreflang groups the URLs; the content itself reveals what language each one is in.
Three ways to declare it
Google's localized versions documentation treats all three methods as equivalent and notes that using them together brings no benefit in Search. Pick the one that fits how the site is built and maintain it in one place.
HTML link elements
Each page carries a block in its <head> listing every version, itself included, plus an optional x-default:
<link rel="alternate" hreflang="en-GB" href="https://example.com/en-gb/" />
<link rel="alternate" hreflang="de-CH" href="https://example.com/de-ch/" />
<link rel="alternate" hreflang="es" href="https://example.com/es/" />
<link rel="alternate" href="https://example.com/country-selector" hreflang="x-default" />
HTTP Link header
Useful for files with no HTML head, such as PDFs:
Link: <https://example.com/file.pdf>; rel="alternate"; hreflang="en", <https://example.com/de/file.pdf>; rel="alternate"; hreflang="de"
XML sitemap
The sitemap declares the xhtml namespace, and every <url> entry lists all alternates, including its own URL:
<urlset ... xmlns:xhtml="http://www.w3.org/1999/xhtml">
<url>
<loc>https://example.com/en-gb/</loc>
<xhtml:link rel="alternate" hreflang="en-GB" href="https://example.com/en-gb/" />
<xhtml:link rel="alternate" hreflang="de-CH" href="https://example.com/de-ch/" />
</url>
</urlset>
Sitemaps suit large sites, because the whole cluster lives in one file rather than in every template. Headers suit non-HTML files. HTML link elements suit smaller sites where templates already know every locale's URL.
Codes, return links and x-default
Most hreflang failures are formatting failures, and Google does not report them. The rules:
- Language first, region optional. The language is an ISO 639-1 code; a region, if added, is an ISO 3166-1 Alpha 2 code (
de-BE). Scripts use ISO 15924 (zh-Hant,zh-Hans). A country code cannot stand alone, sousis invalid, andbemeans Belarusian, not Belgium. - en-GB, never en-UK.
UK,EUandUNhave no effect in Google Search; Google ignores that part of the annotation. Underscores, as inen_US, are not the documented format either. - Every page lists itself. Each version names itself as well as all the others.
- Every link is returned. If page X names page Y, page Y must name page X, or the pair is ignored. The requirement exists so that an unrelated site cannot declare itself an alternate of someone else's page.
- Absolute URLs only. Write
https://example.com/foo, not//example.com/fooor/foo. - One purpose per link. Since a June 12, 2024 clarification, Google says not to combine hreflang with other attributes such as
mediain the same<link>.
x-default, introduced in April 2013, names the page for searchers whose browser language and region match none of the listed versions; a country selector or a global page is the usual target. For a language spoken in several markets, a language-only catch-all such as es alongside es-MX and es-ES gives Google something to show Spanish speakers elsewhere.
How hreflang interacts with rel=canonical
The canonical and hreflang must agree, and the rule that keeps them agreeing is simple: each localized URL canonicalizes to itself. Google's duplicate-URL guidance asks sites using hreflang to name a canonical in the same language, or the closest substitute language if none exists. A French page canonicalized to the English page asks Google not to index the French URL, while its hreflang asks Google to serve that same URL to French speakers. That conflict, and what Google does when it meets it, has its own guide on canonical tags versus hreflang; the points below are the ones an implementer needs while building the cluster.
- Translations are not duplicates. Google treats language versions as duplicates only when the primary content is in the same language and just the boilerplate is translated. A properly translated page has no reason to point its canonical elsewhere.
- Same-language regional pages may be merged anyway. For variants such as
fr-frandfr-be, Google's guidance is to use both canonicalization and hreflang. Mueller said in 2025 that one of two near-identical versions is commonly chosen as canonical, that hreflang will often still swap in the right URL, and that Search Console then reports on the canonical. Each page keeps its self-canonical; Google's choice is its own. - hreflang should point at canonical, indexable URLs. Google's spec does not address alternates that redirect, carry
noindexor canonicalize elsewhere, but crawlers flag them as hreflang to non-canonical. Treat it as best practice rather than a documented rule, and match protocol and trailing slash exactly. - hreflang on the canonical link is ignored. Google does not use a
rel="canonical"element that carrieshreflang,lang,mediaortypefor canonicalization. Keep the canonical and the alternates in separate elements. - noindex travels. Illyes has said that when Google treats cluster pages as duplicates, one
noindexcan affect the whole cluster, so each page to be removed should carry its own.
<!-- On https://example.com/fr-fr/ -->
<link rel="canonical" href="https://example.com/fr-fr/" />
<link rel="alternate" hreflang="fr-FR" href="https://example.com/fr-fr/" />
<link rel="alternate" hreflang="fr-BE" href="https://example.com/fr-be/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/" />What staff have said about indexing and display
Google's hreflang documentation does not use the words signal or hint, and it would be overstating the record to quote it as saying so. What exists is staff comment. Mueller said in 2025 that hreflang does not ensure indexing, so some variations may simply not be indexed, and in 2018 he said Google can follow hreflang even after choosing one version as the canonical URL. In practice that means hreflang influences which URL is displayed but cannot keep a thin or near-identical locale in the index on its own.
Two reporting consequences follow. A regional URL that Google folded into another will not show its own data in Search Console even while it is being displayed to searchers, because metrics go to the canonical. And a locale missing from the index is not necessarily an hreflang error; it may be a duplication decision that differentiated content, such as local currency, pricing or terms, would address better than more markup.
Bing and the content-language question
Bing's position has moved, which is why older articles contradict newer ones. In 2020 Fabrice Canel of Bing described hreflang as a much weaker signal than content-language at Bing, and Bing's 2011 guidance on country and language pointed to the content-language meta tag. Bing's December 2025 post, co-written by Canel, now recommends hreflang to define language and regional targeting, with the standard rel="alternate" syntax. Claims that Bing ignores hreflang are outdated or overstated.
The same post warns that localized pages which are nearly identical still count as duplicate content. For sites where Bing traffic matters, the low-risk approach covers both eras: hreflang for the cluster, plus an accurate <html lang> attribute and <meta http-equiv="content-language" content="en-gb"> on each page. Google ignores the last two for language detection, so they cost nothing there.
Checking hreflang now that the Search Console report is gone
Search Console once had an International Targeting report with hreflang errors. Google announced its deprecation in August 2022, with removal reported for September 22, 2022, and its help page now says country targeting had little value and is no longer supported, while hreflang continues to be supported and used. There is no native hreflang error report to replace it.
Verification now comes from three places. URL Inspection shows the Google-selected canonical for each locale, which is the quickest way to spot a regional page folded into a sibling. The Performance report, filtered by country and page, shows whether the expected URL is the one earning impressions in each market. Crawlers and validators, such as Screaming Frog, Sitebulb and Ahrefs, check return links, code formats and alternates that are not canonical across the whole site.
Common mistakes
- Every locale canonicalized to the English or main version.
- A missing self-reference or return link, which voids the pair.
en-UK, region-only codes and underscores.- Relative or protocol-relative hreflang URLs, or ones that differ from the canonical by protocol or trailing slash.
- Automatic redirects based on IP or browser language, which Google advises against between language versions.
Some sites do not need hreflang at all. A single-language site serving one market gains nothing from it, and a site with near-identical pages for several same-language markets should decide first whether the pages deserve to be separate, then add annotations.
Frequently asked questions
Does hreflang improve rankings?
No. Gary Illyes has said hreflang brings no ranking benefit as such, only more targeted traffic, and that signals are not passed between pages in a cluster. It changes which of your URLs is shown to a given searcher.
Should hreflang pages have a self-referencing canonical?
Yes. Each localized page should canonicalize to itself and list itself among its hreflang alternates. Canonicalizing every locale to one main version contradicts the hreflang annotations and can leave the other versions unindexed.
Is it en-GB or en-UK in hreflang?
en-GB. The region part uses ISO 3166-1 Alpha 2 codes, and Google says UK, EU and UN have no effect, so it ignores that part of the annotation. The same applies to other invented region codes.
Do I need an x-default hreflang?
It is optional but useful. x-default names the page for searchers whose language and region match none of your listed versions, typically a country selector or global page. Sites with a clear fallback should include it in every page's set.
Why does Google show a different country version than the one I annotated?
Often because the pages are in the same language and nearly identical, so Google chose one as canonical. The annotation may still swap in the right URL, but reporting goes to the canonical, and the other version may not be indexed. Check each locale in URL Inspection and differentiate the content if the markets need separate pages.
Does Bing support hreflang?
Yes, in its current guidance. Bing's December 2025 post recommends hreflang for language and regional targeting, replacing its 2020 description of hreflang as a weaker signal than content-language. Adding <html lang> and a content-language meta tag alongside hreflang costs nothing in Google and covers Bing's older guidance as well.
Where is the hreflang report in Search Console?
It no longer exists. The International Targeting report, which showed hreflang errors, was deprecated in 2022, and Search Console has no replacement. Use URL Inspection, the Performance report by country, and a site crawler to check hreflang.