Every language found in its own search
A multilingual website done right
A multilingual website done right gives each language its own address, tells search engines which pages are translations of each other with hreflang tags, lists every version in the sitemap, and lets visitors switch language on any page. Then each language is found in its own search results instead of competing with the others.
HERON does all of this from one line in site.yaml. Below: how language addresses work, what hreflang is, the usual mistakes, and how to add a language.
How language addresses work
The main language lives at the root, each other language under its own prefix. Addresses can be translated too.
| Way | Example | Verdict | |
|---|---|---|---|
| Home | / | /ru/ | /de/ |
| Services | /services/ | /ru/uslugi/ | /de/leistungen/ |
| One service | /services/implants/ | /ru/uslugi/implanty/ | /de/leistungen/implantate/ |
| Folder per language | example.com/ru/ | Simple, one site, one domain authority. What HERON does | |
| Subdomain | ru.example.com | Works, but counts more like a separate site | |
| Language switch without a new address | example.com/?lang=ru or a script | Avoid: search engines see one language only |
What hreflang does
hreflang is a set of tags in the page header that lists every language version of the page, like the table below. It tells Google which version to show to whom: the Russian page to people searching in Russian, the English one to the rest.
| hreflang | Address |
|---|---|
en | https://example.com/services/ |
ru | https://example.com/ru/uslugi/ |
x-default | https://example.com/services/ |
Common mistakes
Automatic redirect by browser language
Machine translation published as is
One title for all languages
A switcher that drops you on the home page
Missing return links in hreflang
Adding a language in HERON
- 1
List the language
Insite.yaml:languages: [en, ru], and the main one indefault_lang: en. Or tick it in the configurator. - 2
Add the pages
Each language has its folder insidecontent/. A translation goes into the folder of its language with the same file name as the original, for examplecontent/en/services.mdandcontent/ru/services.md. That is how HERON knows which pages belong together. - 3
Translate addresses if you want
Addslug: uslugito the Russian page, and the address becomes/ru/uslugi/. Links in texts keep working: they are written once, by file name. - 4
Build
HERON writes hreflang, the language switcher, a sitemap per language, andllms.txtper language. - 5
- 6
- 7
One page in two languages
A translation is a copy of the file with the text rewritten. The file name stays the same, so HERON pairs the two versions.
content/en/services.md content/ru/services.md
--- ---
title: "Dental services in Vienna" title: "Стоматология в Вене: услуги"
h1: "Our services" h1: "Наши услуги"
description: "Treatment, implants…" description: "Лечение, импланты…"
slug: uslugi
--- ---
Addresses
/services/ and /ru/uslugi/. The main language has no prefix.Links inside the text
/services/ on the Russian page becomes /ru/uslugi/ on its own.A page not translated yet
What else changes per language
Site name and title suffix
Address, phone, company description
address_ru, and shown in the right language.Interface words
Structured data
Questions
Do I need a separate domain for each language?
No. A folder per language on one domain is simpler and keeps the search authority of the site together. Separate domains make sense when you run separate businesses per country.
What if a page is not translated yet?
The page simply is not in that language. The switcher shows the language as unavailable on that page, and hreflang does not mention it.
Can I write the second language first?
Yes. A page can exist only in the second language: it builds normally and goes into that language's sitemap, and the build report reminds you that the main version is missing. Only a site whose main language has no pages at all is stopped, because its home address would show an error.
How do I check hreflang works?
Open the page source and look for the hreflang lines, then open each address listed there: every one must answer and list the others back. Crawling tools that audit SEO check this for the whole site.
Does HERON translate the texts?
No. Translation is your text, or an AI agent's work that you check. HERON takes care of addresses, tags and the switcher.