International SEO Basics: Hreflang Without the Headaches
Targeting multiple countries or languages? Learn how hreflang works, the mistakes that cause wrong-region rankings, and how to implement it cleanly.
Table of Contents
If your site targets users in multiple countries or languages, hreflang tells Google which version of a page to serve to which audience. Without it, Google has to guess — and it often gets it wrong, showing the English version to Spanish-speaking users, or the US pricing page to UK shoppers. Hreflang solves this, but it’s one of the most commonly misimplemented technical SEO signals, and the mistakes compound: incorrect implementation can confuse Google more than no implementation at all.
This guide covers the basics cleanly — what hreflang does, how to implement it, and the errors that most often cause it to fail.
The Short Version
- Hreflang signals which regional/language version to serve — it doesn’t control indexing or rankings, only which version appears for which audience.
- Annotations must be fully reciprocal — every page in the set must reference every other page, plus itself, or Google may ignore the whole cluster.
- Non-reciprocal annotations are the single most common cause of hreflang failure — always validate with Search Console’s International Targeting report.
- Subdirectories are generally the easiest URL structure to manage for international SEO, sharing one domain’s authority across all regions.
What hreflang does (and doesn’t do)
Hreflang annotations tell Google: “For users searching in [language/region], show [this URL].” A page targeting UK English and US English would have annotations pointing to the UK URL for en-gb and the US URL for en-us. Google then uses this signal — along with user location and language settings — to serve the appropriate version in search results.
What hreflang doesn’t do: it doesn’t prevent pages from being indexed. Both the UK and US versions will be indexed; hreflang only influences which one appears for which regional audience. It also doesn’t affect rankings for keywords — it’s purely a regional targeting signal, not a content quality or authority signal.
The hreflang tag format
Hreflang is implemented either in the <head> of each page, in HTTP headers, or in the XML sitemap. The <head> method is most common and easiest to manage for WordPress and CMS sites:
<link rel="alternate" hreflang="en-gb" href="https://example.com/uk/page/" />
<link rel="alternate" hreflang="en-us" href="https://example.com/us/page/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/page/" />
The x-default tag designates the fallback URL for users who don’t match any of the specific language/region targets. This is typically the default or global version of the page.
Language codes follow ISO 639-1 (two letters: en, fr, de). Region codes follow ISO 3166-1 Alpha-2 (two letters: GB, US, AU). You can target language only (en), region only (not supported — must have a language), or language + region (en-gb).
The reciprocal link requirement
The most common implementation mistake: hreflang annotations must be reciprocal. If the UK page lists the US page as its US alternate, the US page must also list the UK page as its UK alternate — and both must reference themselves with a self-referential hreflang tag. If any page in the set doesn’t reciprocate, Google may ignore all the annotations in that cluster.
A complete, valid set for two English versions looks like this on the UK page:
<link rel="alternate" hreflang="en-gb" href="https://example.com/uk/page/" />
<link rel="alternate" hreflang="en-us" href="https://example.com/us/page/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/page/" />
And the same three tags must appear on the US page and the default page, with all three URLs referenced in each set. For sites with many regional versions, this creates a large number of hreflang tags — a page targeting 10 regions needs 10 + 1 (x-default) hreflang tags, all reciprocated. Sitemap-based implementation is often more manageable at scale.
Common hreflang errors
| Error | Why it breaks the implementation |
|---|---|
| Missing x-default | Users who don’t match any specific target have no designated fallback version |
| Non-reciprocal annotations | The most frequent cause of failure — the annotation set is incomplete on one or more pages in the group |
| Hreflang pointing to redirecting URLs | All URLs in hreflang annotations must return 200 — a redirect breaks the implementation for that region |
| Wrong language or region codes | Case mismatches (EN vs en) or country names instead of ISO codes invalidate the annotation |
| Hreflang on noindexed pages | Hreflang only works on indexable pages — pointing to a noindexed URL produces no benefit |
Validate your implementation with Google Search Console (International Targeting report under Legacy Tools) or use the hreflang checker at ahrefs.com/hreflang-checker or hreflang.net to catch reciprocity and code errors. For the full technical audit framework, see the SEO audit checklist.
Choosing a URL structure for international targeting
Three structures, one tradeoff
A worked example: three regions, one broken reciprocal set
A subscription business targeting the UK, US, and Australia in English added a new Australian subdirectory (/au/) alongside its existing UK and US versions. The team added a full, correct hreflang set to the new /au/ pages — referencing UK, US, and itself — but didn’t go back and update the existing UK and US pages to add the new Australian alternate. Search Console’s International Targeting report flagged this almost immediately as a reciprocity error, and the Australian pages weren’t appearing for Australian searches despite having seemingly complete markup.
The fix required updating both the UK and US page templates to add the missing en-au alternate tag, completing the three-way reciprocal set across all pages rather than just the newest one. Within roughly two weeks of Google re-crawling all three regional versions, the International Targeting report showed “Confirmed” status, and Australian search queries began returning the /au/ version rather than defaulting to the UK or US page. The broader lesson: any change to a hreflang cluster — adding, removing, or renaming a regional URL — requires updating every other page in that cluster, not just the one that changed.
Frequently asked questions
International SEO without chaos
Hreflang is worth implementing correctly once and maintaining. The alternative — Google choosing which regional version to rank for which audience without guidance — typically means inconsistent results that are hard to diagnose and fix. A clean implementation with reciprocal annotations and valid URLs is straightforward to maintain in a CMS and largely automatic once set up correctly.
If you’re planning a multilingual or multi-region site and want the technical implementation reviewed before you build, get in touch.
