International SEO: hreflang, subdirectories, subdomains and ccTLDs

How to structure a multi-language or multi-region site, what hreflang actually does, and the implementation mistakes that make international SEO fail.

Published ·3 min read·3 sources cited

The short version

  • Two separate decisions: URL structure (ccTLD, subdomain or subdirectory) and hreflang annotation. They are often conflated.
  • hreflang does not affect rankings. It tells search engines which version to show to which audience.
  • Subdirectories (example.com/de/) are the usual default — cheapest, and they consolidate domain signals.
  • The commonest failure is non-reciprocal hreflang. Every version must reference every other, including itself.

International SEO is one of the few areas where the implementation is genuinely difficult rather than merely tedious, and where getting it wrong produces confusing symptoms — the German page ranking in the UK, the US page shown to Australians, duplicate content warnings across versions that are supposed to be duplicates.

Separating the two decisions makes it tractable. First, where do the different versions live? Second, how do you tell search engines which is for whom?

Decision one: URL structure

Three structures compared
StructureExampleProsCons
ccTLDexample.deStrongest local signal, clear to usersExpensive, each domain builds authority separately
Subdomainde.example.comEasy to host separatelySignals may be treated more loosely; linking often neglected
Subdirectoryexample.com/de/Consolidates domain signals, cheapestWeaker local signal, single infrastructure

For most businesses, subdirectories. They keep everything on one domain, so authority earned in any market supports all of them, and they are the cheapest to run. ccTLDs earn their cost when local presence is genuinely commercially important — a brand where German customers would hesitate to buy from a .com.

Decision two: hreflang

Hreflang tells search engines that several URLs are equivalent versions for different languages or regions, so the right one is shown to the right audience. It does not improve rankings; it prevents the wrong version being served and helps avoid versions competing with each other.

Reciprocal annotation — every version references every version, including itself
<link rel="alternate" hreflang="en" href="https://example.com/" />
<link rel="alternate" hreflang="de" href="https://example.com/de/" />
<link rel="alternate" hreflang="fr" href="https://example.com/fr/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/" />
  1. Reciprocity is mandatory. If the English page lists the German one, the German page must list the English one. Non-reciprocal annotations are ignored.
  2. Self-reference. Each page must include an hreflang entry pointing at itself.
  3. Use absolute URLs, always.
  4. Language code first, region optional — de for German, de-AT for German in Austria. Region alone is invalid.
  5. Add `x-default` for the fallback shown when nothing matches.
  6. Keep canonicals self-referential. A canonical pointing at a different language version cancels the hreflang entirely.

The last point causes more silent failures than any other. A German page canonicalised to the English version tells search engines the German page should not be indexed at all — which defeats the entire exercise while looking correct in a template.

The content question underneath the technical one

Hreflang and URL structure are solvable engineering problems. The harder question is whether you have genuinely different content for each market or the same content in different languages — and the two need different treatment.

Machine-translated pages with no local adaptation tend to underperform regardless of how correct the annotation is, because they read as translations and answer the wrong version of the question. Prices, regulations, examples and terminology often differ by market in ways a translation does not capture. Google’s guidance on people-first content applies in every language, and a technically immaculate hreflang setup pointing at content nobody in that market wants is an expensive way to be correct.

Two operational details cause disproportionate trouble. Automatic redirection based on a visitor’s IP address will send crawlers to a single version and can prevent the others being indexed at all — offer a suggestion banner instead of a forced redirect. And Search Console treats each structure differently: a ccTLD is a separate property, subdirectories share one, which affects how you monitor performance per market and is worth deciding deliberately rather than discovering later.

Validate it — you will not see the errors otherwise

Crawl with Screaming Frog, which reports hreflang errors including missing reciprocity and missing self-references. Check the international targeting reporting in Search Console too. Hreflang mistakes produce no visible symptom on the page — the only way to find them is to look.

Frequently asked questions

Does hreflang improve rankings?

No. It tells search engines which language or region version to show to which audience, which prevents the wrong version ranking and stops versions competing with each other.

Subdirectory or ccTLD for international SEO?

Subdirectories for most businesses — cheapest and they consolidate domain signals. ccTLDs when local presence genuinely affects whether customers will buy.

What is the most common hreflang mistake?

Non-reciprocal annotation. Every version must reference every other version including itself, or the annotations are ignored. A close second is canonicalising translations to the original language version.

Do I need hreflang for the same language in different countries?

Yes, if you have genuinely separate pages for, say, UK and US English. Use en-GB and en-US so the right version reaches the right audience.

Sources

Every figure on this page traces to one of these. Dates are when we last read the page — pricing and features change, so treat anything older than a few months as a starting point rather than gospel. All outbound links here are nofollow.

  1. [1]
    Creating Helpful, Reliable, People-First Content

    Google Search Central · developers.google.com · Official documentation · read 2026-09-18

  2. [2]
    Google Search Console

    Google · search.google.com · Vendor page · read 2026-09-18

  3. [3]
    Screaming Frog SEO Spider Pricing

    Screaming Frog · screamingfrog.co.uk · Vendor page · read 2026-09-18

Keep reading

International SEO is one of the few areas where the implementation is genuinely difficult rather than merely tedious, and where getting it wrong produces confusing symptoms — the German page ranking…