International SEO & Hreflang
The problem: which version of the same content should rank where
A company serving English-speaking markets in the US and UK, plus a French market, ends up with multiple pages that are near-duplicates of each other — same product, different language or regional spelling and currency. Without explicit signals, search engines have to guess which version to show a given searcher, and they frequently guess wrong: showing the US English page to a UK searcher, or worse, treating the near-duplicate pages as competing or duplicate content and diluting ranking signal across all of them.
International SEO exists to solve exactly this: give search engines an explicit map of which page serves which language-and-region combination, so the right version surfaces for the right searcher without the versions cannibalizing each other.
Hreflang: the mechanism, not a ranking factor
The hreflang attribute tells search engines "this page has an equivalent version for this language/region — here's where to find it." It's a targeting signal, not a ranking signal — it doesn't make any individual page rank higher, it only helps Google serve the correct regional variant to the correct searcher. A page with no hreflang at all can still rank fine; the risk is just that the wrong variant shows up for a given audience, or that Google treats close variants as duplicates.
Hreflang values combine an ISO 639-1 language code with an optional ISO 3166-1 Alpha 2 region code: en (English, any region), en-us (English, United States specifically), en-gb (English, United Kingdom), fr-ca (French, Canada) — note region codes are country codes, not language dialects, so en-gb is correct and a code like en-eu is not valid.
<!-- On the US English version of the page -->
<link rel="alternate" hreflang="en-us" href="https://example.com/us/shoes" />
<link rel="alternate" hreflang="en-gb" href="https://example.com/uk/shoes" />
<link rel="alternate" hreflang="fr-fr" href="https://example.com/fr/chaussures" />
<link rel="alternate" hreflang="x-default" href="https://example.com/shoes" />
<!-- x-default: fallback for searchers who match no listed language/region -->
<!-- CRITICAL: this exact set of tags must also appear, reciprocally,
on the UK, French, and default pages -->Hreflang must be reciprocal or Google ignores it
en-gb alternate but page B doesn't declare page A back, Google treats the annotation as unreliable and may disregard the entire cluster. This reciprocity requirement is the single most common implementation failure — most large-scale hreflang errors come from one page in a set being updated without the others being updated to match.ccTLD vs. subdirectory vs. subdomain: the structural choice
Before hreflang even matters, a site needs a URL structure for its international versions, and the three common options trade off differently on cost, SEO signal consolidation, and geo-targeting clarity:
- ccTLD (example.fr, example.de) — the strongest explicit geo-targeting signal, since the domain itself declares the country, and often earns the most local user trust. Most expensive and operationally complex: each ccTLD needs its own domain authority built essentially from zero, and backlinks earned by one don't benefit the others.
- Subdirectory (example.com/fr/) — consolidates all domain authority under one root domain, since every version is technically the same site. Easiest to maintain and generally the recommended default for most businesses, especially earlier-stage ones that can't afford to build authority on multiple domains independently.
- Subdomain (fr.example.com) — a middle ground; Google generally treats subdomains as closely associated with the root domain but historically with slightly less authority consolidation than a subdirectory, and it adds DNS/hosting complexity a subdirectory doesn't.
ccTLD vs. subdirectory vs. subdomain
| Dimension | ccTLD (.fr) | Subdirectory (/fr/) | Subdomain (fr.) |
|---|---|---|---|
| Authority consolidation | None — each domain independent | Full — single domain | Mostly, with caveats |
| Geo-targeting clarity | Strongest (explicit in domain) | Requires Search Console / hreflang config | Moderate |
| Setup & maintenance cost | High (per-domain hosting, SSL, SEO) | Low | Moderate |
| Recommended for | Large enterprises, strong local trust needs | Most businesses, especially growing ones | Teams with existing subdomain infrastructure |
Common international SEO mistakes
- Machine-translating content with no human review and publishing it as a full regional version — search engines and users both detect low-quality translation quickly, and it undermines trust in the specific market more than having no localized version at all.
- Auto-redirecting based on IP or browser language without letting users override it — this breaks hreflang's entire purpose, since Googlebot often crawls from a single location and gets redirected before it can see the other language versions, or gets stuck seeing only one variant regardless of which URL it requested.
- Treating hreflang as a one-time setup — new pages added to one locale need the full reciprocal tag set extended immediately, or the new page effectively has no international targeting at all.
- Confusing language targeting with currency/content localization — a page can be grammatically translated but still fail locally if prices, measurement units, cultural references, or legal requirements (tax-inclusive pricing, GDPR-specific copy) aren't adapted for that actual market.
Let users choose; don't force-redirect
What's next
International SEO solves which version of a page search engines should show; the technical foundation that makes any version crawlable and renderable in the first place is covered in the broader technical SEO fundamentals.
Next: Technical SEO Fundamentals →
I build these systems professionally.
Whether it's a RAG pipeline, analytics migration, or AI workflow — let's talk.