International SEO Guide
Last updated
International SEO is the practice of optimising a site so search engines can identify which countries and languages it targets, and serve the correct version to the right audience. Without it, international sites cannibalise their own rankings, serve the wrong language to users, and waste crawl budget on duplicate content.
Step 1: Choose a URL structure
The first decision is how to separate content by country or language in the URL. There are three options:
Country-code top-level domains (ccTLDs)
Separate domains per country: example.de, example.fr, example.co.uk.
Pros:
- Strong geo-targeting signal — clearest way to tell Google a site targets a specific country
- Independent domain authority per country — poor performance in one market does not affect others
- Can be hosted separately in each country
Cons:
- Requires registering and maintaining multiple domains
- Authority is split — links to
example.comdo not benefitexample.de - Higher cost and operational complexity
- Requires separate Search Console properties for each
Best for: Large multinational organisations with dedicated local teams and budgets, where brand recognition in each country justifies independent domains.
Subfolders (subdirectories)
Content separated by path on the same domain: example.com/de/, example.com/fr/.
Pros:
- All authority consolidates on one domain — links benefit the whole site
- Easiest to manage — one Search Console property, one hosting setup
- Geo-targeting via Search Console property settings
- Crawl budget shared efficiently across all versions
Cons:
- Weaker geo-targeting signal than ccTLDs (mitigated by hreflang and content)
- If one region’s content causes quality issues, it can affect the whole domain
Best for: Most sites. The default recommendation unless there is a specific reason for ccTLDs.
Subdomains
Language or country content on subdomains: de.example.com, fr.example.com.
Pros:
- Can be hosted separately per region
- Separate Search Console properties possible
- Cleaner separation than subfolders
Cons:
- Google treats subdomains as separate sites for authority purposes — links to the main domain do not benefit subdomains
- More complex to manage than subfolders without meaningful benefit over ccTLDs
- Requires separate Search Console properties
Best for: Rarely the right choice. Legacy setups that cannot restructure, or cases where technical requirements (different infrastructure per region) make subdomain separation necessary.
Step 2: Implement hreflang
hreflang is an HTML attribute that tells Google which language and/or region a page targets, and which alternative versions exist for other audiences. It is the primary mechanism for international SEO signal clarity.
When hreflang is required
Use hreflang when:
- You have the same content translated into multiple languages
- You have separate content for the same language in different regions (en-GB vs. en-US vs. en-AU)
- You have a generic international version and region-specific versions
Do not use hreflang for:
- Country-specific sites with no translated content and no regional variants (hreflang adds no value)
- Language variations covered entirely by
langattribute on a single URL
hreflang syntax
hreflang tags go in the <head> of each page. Each page must declare all of its language/region variants, including itself.
<link rel="alternate" hreflang="en-GB" href="https://example.com/en-gb/page/" />
<link rel="alternate" hreflang="en-US" href="https://example.com/en-us/page/" />
<link rel="alternate" hreflang="de" href="https://example.com/de/page/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/page/" />
Language codes: ISO 639-1 two-letter codes (en, de, fr, es, zh). Use lowercase.
Region codes: ISO 3166-1 alpha-2 country codes (GB, US, AU, DE). Use uppercase. Region codes are optional — use them when you have region-specific content for the same language.
Combined: Language + region as language-REGION: en-GB, en-US, zh-TW, pt-BR.
x-default: The fallback URL shown to users who do not match any other hreflang target. Typically the homepage or an international language selector page. Required when targeting specific regions — without it, unmatched users are served an arbitrary version.
The reciprocal tag requirement
Every hreflang tag must be reciprocated. If Page A references Page B as the German version, Page B must reference Page A as the English version (and all other versions). Unreciprocated tags are ignored by Google.
<!-- On the English page -->
<link rel="alternate" hreflang="en" href="https://example.com/en/page/" />
<link rel="alternate" hreflang="de" href="https://example.com/de/page/" />
<!-- On the German page — must mirror the above -->
<link rel="alternate" hreflang="en" href="https://example.com/en/page/" />
<link rel="alternate" hreflang="de" href="https://example.com/de/page/" />
hreflang via XML sitemap
For large sites, managing hreflang in <head> tags across thousands of pages is impractical. hreflang can be declared in the XML sitemap instead:
<url>
<loc>https://example.com/en/page/</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://example.com/en/page/"/>
<xhtml:link rel="alternate" hreflang="de" href="https://example.com/de/page/"/>
</url>
<url>
<loc>https://example.com/de/page/</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://example.com/en/page/"/>
<xhtml:link rel="alternate" hreflang="de" href="https://example.com/de/page/"/>
</url>
Add the xmlns:xhtml namespace to the <urlset> element:
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xhtml="http://www.w3.org/1999/xhtml">
hreflang via HTTP header
For non-HTML content (PDFs, for example), hreflang can be declared in the HTTP response header. Less common; use in <head> or sitemap for HTML pages.
Step 3: Geo-targeting in Search Console
For sites using subfolders or subdomains (not ccTLDs), you can specify the target country in Google Search Console.
- Open Search Console for the relevant property
- Go to Settings (bottom-left) > International Targeting
- Select the Country tab
- Choose the target country
This is not available for subfolders within a single property — you would need separate Search Console properties per subfolder to set per-folder geo-targeting. In practice, hreflang is the stronger signal; geo-targeting in Search Console is a secondary reinforcement.
For ccTLDs, geo-targeting is automatic — Google infers the target country from the TLD.
Step 4: Localise content
Translation and localisation are different things.
Translation converts text from one language to another. Machine translation (Google Translate, DeepL) produces readable output but misses nuance, idiom, and cultural context.
Localisation adapts content for a specific market: currency, date formats, units of measurement, cultural references, legal requirements, and local search behaviour.
For SEO, the distinction matters because:
- Keyword volumes differ between language variants — UK English searches differ from US English searches
- Local intent signals differ — local idioms, product names, and competitor references vary by market
- Direct translation of keyword-optimised content may not produce keyword-optimised content in the target language
Minimum standards for localised content:
- Keyword research conducted in the target language for the target market, not translated from English
- Native speaker review of all page copy, not just machine translation
- Local currency, date formats, and contact information
- References to local competitors, partners, or institutions where relevant
Avoid:
- Serving machine-translated content without human review
- Using
hreflangto point to thin or machine-translated pages — Google may apply quality signals to translated content, and thin translations can drag the site down
Common hreflang mistakes
Missing reciprocal tags. The most common error. Every page in the hreflang cluster must reference every other page in the cluster, including itself.
Incorrect language or region codes. Use ISO 639-1 for language (en, not eng or english) and ISO 3166-1 alpha-2 for region (GB, not UK or GBR). en-UK is invalid; the correct code is en-GB.
hreflang pointing to non-canonical URLs. hreflang tags must reference the canonical version of each page. If a page has a canonical tag pointing elsewhere, the hreflang tag pointing to it is ineffective.
hreflang on redirecting pages. If the URL in a hreflang tag redirects, the signal is weakened. All hreflang URLs should return 200.
Using hreflang for content in the same language targeting the same region. hreflang is not a tool for A/B testing or segmenting audiences within the same region — it is specifically for language and country targeting.
No x-default. Without x-default, users who do not match a specific hreflang target may receive an arbitrary page. Always include an x-default pointing to your international fallback URL.
Auditing international SEO
Check hreflang implementation
- Crawl with Screaming Frog (use the hreflang tab to identify missing reciprocal tags, incorrect codes, and non-200 hreflang URLs)
- Review International Targeting report in Search Console for language errors
Check for cannibalisation
- Search Google for key pages using
site:to confirm the correct regional version ranks in each target market - Check whether Google is indexing duplicate content across language versions
Check for indexation of the correct versions
- Use URL Inspection in Search Console on each regional version to confirm it is indexed
- Confirm the correct version appears in SERPs for region-specific searches
Check geo-targeting signals are consistent
- URL structure (subfolder/subdomain/ccTLD)
- hreflang tags
- Search Console geo-targeting setting
- Server location or CDN configuration
- Local currency, phone numbers, and contact details on-page
Inconsistency between these signals (e.g., a German-language page on a .com with no hreflang and no geo-targeting) makes it harder for Google to determine the correct audience.