International SEO is an area where technical mistakes are common and can be costly. A poorly implemented hreflang tag can cause the wrong language version to be shown in a country, a poorly chosen URL structure makes the site harder to manage, and near-identical versions of the same page can be grouped together by Google, which then indexes only one of them. This guide clarifies every technical decision for a successful multilingual strategy.
Choosing your international URL structure
Choosing your URL structure is the first strategic decision, and the hardest one to change later. There are three main options:
| Structure | Example | Pros | Cons |
|---|---|---|---|
| ccTLD | site.fr, site.de | Strong geographic signal, local trust | Authority split across several domains, high cost, complex management |
| Subdomains | fr.site.com, de.site.com | Easy technical separation, flexible hosting | Authority partly split, each subdomain to set up and monitor |
| Subdirectories | site.com/fr/, site.com/de/ | Consolidated authority, simpler management | Single hosting, weaker geo signal |
2026 recommendation: for most sites, subdirectories (site.com/fr/) are the simplest choice. They keep signals on a single domain and simplify technical management. Google accepts all three structures; ccTLDs mainly make sense for brands with teams and a local presence in each country.
Implementing hreflang correctly
The hreflang tag tells Google which language/regional version of a page to serve to which user. Implementation errors are common, and Google ignores annotations it considers inconsistent.
The fundamental rules
- Reciprocity is mandatory: If the FR page points to the EN page, the EN page MUST point back to the FR page
- Self-reference: Each page must reference itself in its hreflang block
- x-default: Provide an x-default version, which Google recommends for languages and countries you don't cover (a language selector page, for example)
- Absolute URLs: Always use full URLs (https://site.com/fr/page), never relative ones
- Correct ISO codes: Language in ISO 639-1 (fr, en, de), country in ISO 3166-1 Alpha 2 (FR, CA, BE). A country on its own isn't enough, and the United Kingdom is GB, not UK
Implementation methods
There are three possible methods. Google treats them the same way: use only one, to avoid contradictions between them:
- <link> tags in the <head>: The most common, suited to medium-sized sites
- HTTP headers: For non-HTML files (PDFs, images)
- XML sitemap: Handy for large sites, because it doesn't add weight to the HTML and is easier to generate
Avoiding international duplicate content
The most common trap in international SEO is duplicate content between closely related language versions. A French-language site targeting France, Belgium, Switzerland and Canada will often have near-identical content across these versions. Google doesn't penalize these duplicates, but it may group them and choose the canonical version to index itself. Hreflang annotations help it serve the right version in each country.
Solutions:
- Real localization: Adapt the vocabulary ("voiture" vs. "char" for "car" in Quebec French), cultural references and local examples
- Local data: Prices in local currency, local phone numbers, physical addresses
- Canonical: as a rule, each version keeps a self-referencing canonical. Never point one version's canonical to another language: the canonicalized page drops out of the index and hreflang can no longer serve it. Only consolidate with a canonical versions that are truly identical and that you no longer want to serve separately
How Zerkado detects hreflang errors
Zerkado's technical SEO audit automatically analyzes your hreflang implementation and detects:
- Non-reciprocal hreflang links
- Missing self-references
- Invalid language/country codes
hreflang URLs returning a 404 error or redirected, conflicts with the canonical tag and a missing x-default are not checked yet: verify them manually from the list of crawled pages.
Each issue comes with a fix sheet: where to make the change, the steps to follow and the effort to plan for. For international sites, Zerkado's full audit reruns these checks at every new crawl, which helps you catch a regression after a release.
Try Zerkado for free for 14 days, with no credit card, and run an audit of your hreflang implementation.

