Skip to content

International SEO and hreflang: right language, right country

Building a bilingual site is easy. Telling search engines which version to show whom is the hard part.

If you publish in more than one language or country you have two problems to solve: showing users the right version, and stopping search engines treating those versions as duplicates. hreflang does both.

URL structure first

Three options:

  • Country domains (site.de): the strongest geographic signal, the most expensive to run
  • Subdomains (de.site.com): easy to separate, weak authority sharing
  • Subdirectories (site.com/de/): consolidates authority on one domain, usually the best choice

Unless you have a specific reason, use subdirectories.

How hreflang works

Every page lists all language versions, including itself. Three rules:

  1. It must be reciprocal. If A points to B, B must point back to A. One-way hreflang is ignored.
  2. It must be self-referencing. Each page includes its own language code in the list.
  3. Use absolute URLs. Relative paths do not work.

Example

<link rel="alternate" hreflang="tr" href="https://site.com/tr/sayfa">
<link rel="alternate" hreflang="en" href="https://site.com/en/page">
<link rel="alternate" hreflang="x-default" href="https://site.com/en/page">

x-default declares which version to show when no language matches. Usually English, or a language selection page.

Language code or country code?

hreflang="tr" targets all Turkish speakers. hreflang="tr-TR" targets Turkish speakers in Turkey only. Use the second form only when you have country-specific content: different currency, different stock, different legal text.

If you do not have a separate page for Turkish speakers in Germany, do not declare tr-DE.

Common mistakes

  • Wrong codes. The United Kingdom is en-GB; en-UK is not a valid code.
  • Conflicting canonicals. If your Turkish page canonicalises to the English one, hreflang will not work.
  • Pointing at redirects. hreflang must always reference the final URL.
  • Automatic redirection. Forcing users by IP prevents crawlers from seeing other versions. Suggest, do not force.
  • Translating only the navigation. If the content stays in one language, hreflang achieves nothing.

The machine translation question

Raw machine translation counts as low quality content. If you use it, at minimum put it through human review — particularly for product descriptions and legal text.

Validation

The international targeting report in Search Console lists hreflang errors. Check it a few weeks after implementation; "no return tag" is the most frequent warning.