A Multilingual Website Without the Pain: hreflang, Localisation and the Mistakes That Cost Rankings

A second language usually gets added like this: take the copy, send it to a translator, paste the result back, put a switcher in the header. Three months later it turns out Google is showing the English page to Ukrainian visitors, the Ukrainian one to Poles, and some pages have dropped out of the index entirely.

Multilingual sites do not break on translation. They break on technical details, each of which costs rankings.

Three ways to organise languages

StructureExampleAdvantagesDrawbacks
Subdirectorysite.com/en/Domain authority stays shared, simple to maintainHarder to separate by country
Subdomainen.site.comCan be split across serversAuthority is divided, more configuration
Separate domainsite.co.ukStrongest country signalMost expensive, each domain ranks on its own

For most companies the right answer is the subdirectory. Separate domains are justified when each country has its own legal entity, its own pricing and effectively a different business.

How hreflang works

It is a hint to the search engine: here is the same page in another language. Without it the versions compete with each other and the wrong one surfaces in results.

Three rules, violated more often than any others:

  • Reciprocity. If the English page points to the German one, the German page must point back. A one-way reference is ignored entirely.
  • Self-reference. Every page must include an hreflang pointing at itself. This is almost always forgotten.
  • Absolute URLs. Full addresses with protocol only; relative paths do not work.

Set x-default separately as the version for visitors whose language matches none of yours.

Mistakes that cost rankings

MistakeWhat happens
Wrong language codeua instead of uk. That is a country code, not a language, and the whole annotation is ignored
hreflang pointing at a non-canonical pageConflicting signals, the engine decides for itself
Automatic redirect by IPA crawler in a US data centre sees only English and never indexes the rest
One sitemap with no language annotationHalf the signals about version relationships are lost
Untranslated system pages404, cart and form messages stay in the original language
Identical titles and descriptionsPages look like duplicates

The most insidious is the automatic geo-redirect. It feels like consideration for the user, but in practice it blocks the crawler from every version but one. The correct solution is to suggest a switch with a banner and leave the choice to the visitor.

Translation and localisation are different things

Translation carries the words. Localisation carries the meaning and accounts for the market context.

What changes beyond the text:

  • Formats. Dates, numbers, separators, currency, units of measurement.
  • Length. German runs roughly a third longer than English, and buttons stop fitting their labels.
  • Examples and case studies. A reference to a local company works better than an abstraction.
  • Contacts. Phone format, address, opening hours in local time.
  • Legal text. Privacy policies and terms are not translated literally; the requirements differ.

Technical traps

  • The lang attribute. The <html lang="en"> tag must change with the version. It affects both search and screen readers.
  • Non-Latin slugs. They encode into unreadable strings, look poor in results and break when copied. Latin characters are safer.
  • A switcher that goes to the homepage. Someone reading an article switches language and lands on the homepage. The switcher must lead to the same page.
  • Unlinked versions in the CMS. If the system does not know these are translations of one page, hreflang will not be generated automatically.
  • Cache that ignores language. The classic cause of visitors seeing the wrong language.

Pre-launch checklist

  1. Every page has hreflang for all versions, including itself.
  2. Language codes are correct: uk, en, bg, not ua.
  3. x-default is set.
  4. The lang attribute matches the version.
  5. No automatic redirects by IP.
  6. Titles and descriptions are unique per language.
  7. The switcher leads to the equivalent page, not the homepage.
  8. System pages and form messages are translated.
  9. Slugs use Latin characters.
  10. The sitemap contains all versions with language annotations.

A multilingual site pays off because the same work starts drawing traffic from several markets. But only if the search engine understands which version to show to whom. Anything less is one page competing against itself.