Multilingual websites with hreflang and separate URLs
We build websites in several languages so Google shows the right version to the right people: each version has its own address, hreflang, translated metadata and formats. We also help you plan how many languages you can really maintain, because each one is work for years.
A language version is a page of its own
Google recommends a separate URL for each language version rather than switching language by cookie or browser settings. An address is content too.
- PL, this page/pl/oferty/strony-wielojezycznehreflangEN/en/offer/multilingual-websitesThe service name in the reader's language: multilingual-websites.
- PL/pl/oferty/integracje/kurierzyhreflangEN/en/offer/integrations/couriersEvery segment of the address translated.
- PL/pl/oferty/wspolpracahreflangEN/en/offer/working-with-usThe meaning translated, not word for word.
- PL/pl/oferty/migracjahreflangEN/en/offer/migrationShort in both languages.
- PL/pl/oferty/integracje/gus-regonno hreflangENno English versionA Polish-only page, so hreflang points to no version that does not exist.
Canonical for itself
Each version is canonical for itself and does not point to the Polish one.
Links both ways
If two pages do not both point to each other, Google ignores those tags. A check script reports every tag whose target address does not exist in the built site.
x-default
x-default points to the page for people whose language is not listed. On pages in both languages it points to the English one, and on a Polish-only page to the page itself.
Every language in a subdirectory of one domain
We put language versions in subdirectories, such as twojafirma.pl/de/: one domain works for every language, and upkeep is the cheapest. Beside it, three other layouts and why we do not use them.
Country domain
Two separate domains, no shared root- PLexample.pl
- DEexample.de
- Clear country targetingYes
- Easy to set upNo
- Low maintenanceNo
- Advised against by GoogleNo
We do not use it: every domain is a separate cost and separate work on visibility in Google.
Subdomain
example.com- PLpl.example.com
- DEde.example.com
- Clear country targetingPartly
- Easy to set upYes
- Low maintenancePartly
- Advised against by GoogleNo
We do not use it: a subdomain builds visibility from scratch, and the address hardly shows the country.
Subdirectory
example.com- PLexample.com/pl/
- DEexample.com/de/
- Clear country targetingPartly
- Easy to set upYes
- Low maintenanceYes
- Advised against by GoogleNo
One domain, the lowest upkeep and the whole domain working for every language. This site works this way: /pl/ and /en/.
Parameter
example.com/stoly- PL?loc=pl
- DE?loc=de
- Clear country targetingNo
- Easy to set upPartly
- Low maintenancePartly
- Advised against by GoogleYes
We do not use it: Google advises against a language in a parameter of one address.
The language switch
The switch leads to the same page in the other language, and the address decides the version, not the browser settings.
The same page in the other language
You are reading/en/tables/made-to-measure-oak-table- PL in the menu leads to/pl/stoly/stol-debowy-na-wymiar
- not to the home page/pl/
Google suggests adding links to the page's versions in other languages, so users choose the language themselves. The switch in the menu is plain links to the same page in the other language, with the section anchor translated.
The address decides the version
A browser set to Polish opens/en/tables/made-to-measure-oak-table- and gets the English version of that address/en/tables/made-to-measure-oak-table
- not a redirect to/pl/stoly/stol-debowy-na-wymiar
Google advises against redirecting by the user's assumed language, because people and search engines may not see every version. An address under /pl/ or /en/ always shows its own version, whatever the browser language.
What gets translated beyond the text
The layers people forget most are the ones you do not see at first glance. This is how they depend on each other when a language version is added.
Language version
Address
Every version has its own address with translated segments, such as /en/offer/migration.
Content
Page copy, image descriptions and downloads. Someone who knows the language and the field translates them.
The page in that language
hreflang and canonical
The versions point to each other, and each one is canonical for itself.
Depends on: Address
Title and description
The title and description in search results, in the language of the version.
Depends on: Address, Content
Formats
Currencies, dates with times, numbers and units, written the way the reader writes them.
Depends on: Content
Messages
Form errors, system emails and notifications: what only shows up while the site is in use.
Depends on: Content
For search engines
Sitemap
It lists the same pairs of addresses as the page head, from one registry of addresses.
Depends on: hreflang and canonical
Structured data
They describe the page in its language, so they take the title, description and formats from the same version.
Depends on: Title and description, Formats
Copy is translated by someone who knows the language and the field: your team or a translator, while we prepare the translation files and a process where no version falls behind.
How many languages to start with
Every further language is work for years, so we add one when there is an audience for it and someone to maintain it.
- 2 languagesPolish and English with full metadata and translated addresses.At this number
- whenYou sell in Poland and abroad.
- addressesPolish and English words in the address, such as /pl/oferty/migracja and /en/offer/migration.
- upkeepYou have someone to keep the second version current.
hreflang of the tables pagepl example.com/pl/stolyen example.com/en/tablesx-default example.com/en/tablesThe default version points to English. - 3-5 languagesWe add more versions when there is an audience and someone to maintain them. The architecture allows it from day one.At this number
- whenYou have real traffic or sales in that country.
- addressesOne more subdirectory on the same domain, such as example.com/de/, with no change to the existing addresses.
- translationsTranslation files, currencies, dates and system messages in each language.
hreflang of the tables pagepl example.com/pl/stolyen example.com/en/tablesde example.com/de/tischex-default example.com/en/tablesA new version is added on every page in every language. - 6 or moreEach language means translating every new page, post and email, so fewer and current beats more and behind.At this number
- hreflangEvery version lists itself and all the others, so a new language is a new line on every page in every version.
- upkeepEach language has a person responsible for the content.
- checksA script checks hreflang, canonicals and missing translations on every page.
hreflang of the tables pagepl example.com/pl/stolyen example.com/en/tablesde example.com/de/tischefr example.com/fr/tableses example.com/es/mesasit example.com/it/tavolix-default example.com/en/tablesThe same set of lines stands on every version.
Common questions about multilingual websites
Answers about language versions, addresses and the quote.
Read next
Services that often go with several languages.
Entering a new market?
Tell us which languages and countries you want to be visible in. We will reply within an hour with questions and a quote.


