Guides
International SEO Checklist: Structure, Hreflang and Targeting
The structure decision is made once and is expensive to change. Everything else in international SEO is downstream of getting it right.
Run a fresh DomainLens audit and use the report as your priority list.
Choosing a URL structure
For most sites the subdirectory is correct. It keeps everything on one domain, so authority accumulates in one place, and it is by far the cheapest to operate. Choose a ccTLD when local trust genuinely matters commercially — a German customer preferring example.de is a real effect, and it costs you a separate site to run.
| Structure | Example | Trade-off |
|---|---|---|
| Subdirectory | example.com/de/ | Simplest; shares domain authority |
| Subdomain | de.example.com | Separable hosting; weaker consolidation |
| ccTLD | example.de | Strongest local signal; most expensive |
| Parameter | example.com?lang=de | Avoid — poor signals, easy to break |
Language and region are different questions
A site can target a language, a region, or a combination. Spanish for Spain and Spanish for Mexico are the same language and different markets; English for the UK and English for the US likewise.
Decide which axis you are actually varying. Publishing a page per language-region combination when only the language differs creates near-duplicates with nothing to distinguish them, and none of them earn their place.
- Language only — one page per language, hreflang with a language code.
- Region only — one page per region, hreflang with language plus region.
- Both — the full matrix, and only if each cell is genuinely different.
- Neither — one page. Not every international site needs localisation.
The hreflang rules that break implementations
Three rules cause almost every failure, and all three are mechanical rather than strategic.
- Reciprocity — every page in the set must list every other, including itself. A missing return link voids the whole annotation.
- Valid codes — ISO 639-1 for language, ISO 3166-1 for region. "uk" is Ukrainian, not the United Kingdom.
- Self-canonical — each version canonical to itself. Canonicalising translations to the original removes them from the index.
<link rel="canonical" href="https://example.com/de/page">
<link rel="alternate" hreflang="en" href="https://example.com/page">
<link rel="alternate" hreflang="de" href="https://example.com/de/page">
<link rel="alternate" hreflang="es" href="https://example.com/es/page">
<link rel="alternate" hreflang="x-default" href="https://example.com/page">
<!-- Identical on all four URLs. Generate the set from
one shared list, never per page. -->
Partial translation, handled honestly
Most international sites are partially translated, and the correct handling is to annotate only what genuinely exists. A locale URL serving the original language because no translation was written is a duplicate: canonicalise it to the original and leave it out of the hreflang set. Advertising five language versions when three of them are the English page is worse than advertising two. See hreflang vs canonical and hreflang tags .
Things that are not international SEO
The IP redirect is the most damaging and the most common. Googlebot crawls predominantly from the US, so an IP-based redirect can mean your German pages are never seen.
- Automatic redirection by IP address — it prevents crawlers and travellers reaching the version they asked for. Offer a suggestion, not a redirect.
- Machine translation published without review; it ranks badly and reads worse.
- Duplicating the entire site for a market you have no ability to serve.
- Geo-targeting in Search Console for a ccTLD, which already carries the signal.
How DomainLens contributes
DomainLens reports the canonical and hreflang annotations a page serves together, which is where the contradictions surface — a translation canonicalised to the original, or an alternate set that does not match between pages. See the HTML lang attribute for the page-level declaration.
- Subdirectory, subdomain or ccTLD?
- Subdirectory for most sites — cheapest and keeps authority consolidated. A ccTLD when local trust matters commercially and you can run a separate site.
- Should I redirect users by IP address?
- No. It stops crawlers and travellers reaching the version they requested. Suggest an alternative version instead and let the user choose.
- Do I need hreflang for a single-language site?
- No. There is nothing to annotate and a one-entry set conveys nothing.
- What if only some pages are translated?
- Annotate only the languages that genuinely exist per page, and canonicalise untranslated locale URLs to the original.