Multilingual SEO
Multilingual SEO in Latvia: Latvian, English and Russian Done Right
How to set up a Latvian, English and Russian website Google understands: URL structure, hreflang, translation quality and per-language keywords.
Also available in Latviešu
In this article
- Step 1: Decide which languages you actually need
- Step 2: Choose a URL structure
- Step 3: Add hreflang correctly
- Step 4: Do not force visitors by IP or browser language
- Step 5: Translate for people, not just words
- Step 6: Do keyword research in each language
- Step 7: Mirror the structure and treat missing pages honestly
- Step 8: Measure each language separately
- Common mistakes we see
- A short checklist
- Frequently asked questions
In Latvia, your customers do not all search in the same language. Some type Latvian, some Russian, and tourists, expats and export customers use English. A business that serves all of them with one website has a real advantage, but only if the site is set up so that search engines understand which version belongs to whom.
Done wrong, the results are familiar: the Russian page shows up for Latvian searches, the English page is treated as a duplicate, visitors land in the wrong language and leave. Done right, each audience finds a page written for them, in their language, in the search results. This guide covers the setup step by step.
Step 1: Decide which languages you actually need
More languages is not automatically better. Every language is a permanent commitment: it has to be written well, kept up to date and maintained whenever the original changes.
- Check your data first. In Google Search Console and analytics, look at the languages, countries and search terms that already reach you.
- Think about your customers, not just the market. Who actually buys? A dental clinic in Riga may want Latvian, Russian and English. A local plumber in a small Latvian town may only need Latvian.
- Start with fewer, better languages. One language written well beats three written badly. You can add another later once the first is working.
Step 2: Choose a URL structure
Each language version needs its own crawlable address. There are three common ways to do it.
| Option | Example | Good | Watch out for |
|---|---|---|---|
| Subdirectories | example.lv/lv/, example.lv/ru/ | One domain builds authority together, simplest to run | Needs clean routing so each language is a real URL |
| Subdomains | ru.example.lv | Can be hosted separately | Treated more separately, so authority is split |
| Separate domains | example.lv, example.ru | Strong local signal | Expensive to maintain, authority is split |
For most small and medium businesses, subdirectories on one domain are the best balance. This is what we use on velinx.eu and build for clients.
Avoid switching languages only with a cookie, a JavaScript toggle or a URL parameter such as ?lang=ru. Search engines need a separate, stable URL per language that they can crawl.
Step 3: Add hreflang correctly
hreflang is the signal that tells Google: "these pages are the same content in different languages, show the right one to the right person". It is powerful and easy to get wrong.
The rules that matter:
- Every page lists all its versions, including itself. A Latvian page lists Latvian, English and Russian, including its own address.
- Links must be reciprocal. If the English page points to the Latvian one, the Latvian one must point back. Otherwise Google may ignore both.
- Use absolute URLs with the full domain and protocol.
- Use valid language codes. Language first (
lv,en,ru), with an optional region (en-GB). Getting the code wrong is a common bug. - Add
x-defaultfor the fallback version, usually the language selector or your main language. - Only point to pages that work. Each target should return a normal 200 status, be indexable and be its own canonical. No redirects, no
noindex, no 404s. - Only connect true equivalents. Do not pair a page with a different page just because it is nearby in the menu.
An example for one service page, placed in the head of each language version:
<link rel="alternate" hreflang="lv" href="https://example.com/lv/pakalpojumi" />
<link rel="alternate" hreflang="en" href="https://example.com/services" />
<link rel="alternate" hreflang="ru" href="https://example.com/ru/uslugi" />
<link rel="alternate" hreflang="x-default" href="https://example.com/services" />You can set hreflang in the page head, in HTTP headers or in the XML sitemap. Pick one method and keep it consistent. Sitemap-based hreflang is often the easiest to maintain for larger sites.
Step 4: Do not force visitors by IP or browser language
It feels helpful to detect a visitor's country and redirect them to "their" language. It causes problems. Search engine crawlers often visit from a different country and without a language preference, so they may never see some versions. Real visitors also get stuck: an English speaker in Riga bounced to Latvian, a Latvian on holiday sent to English.
Better: serve each language at its own URL, and if you want to be helpful, show a small, dismissible banner suggesting the other language. Always keep a visible, working language switcher made of real links.
A note on the lang attribute: set <html lang="lv"> (or ru, en) properly because it helps accessibility tools and browsers. But Google says it does not use that attribute to work out a page's language. It reads the visible content, and it uses hreflang for the relationships between versions.
Step 5: Translate for people, not just words
Poor translation is both an SEO and a trust problem.
- Avoid unreviewed machine translation of a whole site. It can read as stiff or wrong, and thin, auto-generated content is the kind of thing search engines are designed to discount. Machine translation is fine as a first draft, provided a fluent human reviews and edits it.
- Localise, do not just translate. Check phone formats, currency (€), date formats, addresses, measurement units, legal wording and idioms. Decide on the formal or informal register ("Jūs", "Вы") that suits your brand and keep it consistent.
- Get local names right. Rīga, Riga and Рига are three ways people search for the same city.
- Translate everything that shows. That includes page titles, meta descriptions, headings, URL slugs, image alt text, button labels, form messages, error pages, the cookie banner, legal pages and structured data. A Latvian page with an English title tag is a common and avoidable mistake.
Step 6: Do keyword research in each language
The biggest mistake in multilingual SEO is translating your keywords. People do not search by translating.
A Latvian searcher might type "mājaslapas izstrāde", a Russian speaker "создание сайтов Рига", an English speaker "website development Latvia". They are different phrases with different volumes, different intent and different competition.
- Look at Google Search Console for the queries you already get in each language.
- Use autocomplete and "People also ask" for ideas in the real language of your audience.
- Check what local competitors rank for in that language.
- Look for gaps: in some niches, Russian-language local searches have noticeably less competition than Latvian ones, and many businesses overlook them. It is worth checking your own market.
Also remember that Latvian and Russian are heavily inflected, so the same intent appears in several word forms. Write naturally rather than repeating one exact phrase.
Step 7: Mirror the structure and treat missing pages honestly
- Keep the site structure similar across languages so users and search engines can follow it.
- You do not need every page in every language. But if a page has no translation, do not add hreflang for it and do not send the language switcher to a dead end. Link to the closest sensible page, such as that language's homepage or the blog index.
- Include language alternates in your XML sitemap. Search engines use it to discover all versions.
Step 8: Measure each language separately
- In Google Search Console, filter by page path (for example
/ru/) and by country to see how each language performs. - In analytics, split traffic by language, and track enquiries or calls per language so you can see where the real value is.
- Use a crawler tool to check hreflang errors after every big change. Missing return links and wrong codes are the usual culprits.
Common mistakes we see
- Machine-translated pages published without review.
- Language chosen by IP or browser and forced with a redirect.
- hreflang links that are one-way, or point to redirected or noindexed pages.
- Russian or English pages canonicalised to the Latvian version.
- The language switcher sending everyone to the homepage instead of the equivalent page.
- Titles and meta descriptions left in the original language.
- Keywords translated literally instead of researched.
- Launching three languages when there is capacity to maintain one.
A short checklist
- Choose the languages your customers actually use.
- Use one URL per language, ideally in subdirectories.
- Add reciprocal hreflang and
x-default, with self-canonicals. - Provide a real, visible language switcher made of links.
- Translate every visible and hidden element, with human review.
- Research keywords separately in each language.
- Add language alternates to the sitemap.
- Measure each language on its own.
Multilingual pricing is covered in our guide to what a website costs in Latvia, and local visibility in our Google Business Profile checklist.
Our own site runs in English and Latvian with proper alternates, and we build multilingual websites for clients on the same principles. If you want a second or third language done properly, tell us about your project and we will reply within 24 hours.
Frequently asked questions
Do I need a separate domain for each language?
No. For most businesses, one domain with a folder per language (such as /lv/ and /ru/) is simpler, cheaper and builds authority in one place. Separate domains make sense only for large organisations with different brands or local teams per country.
Will translated pages be treated as duplicate content?
Proper translations are not duplicates, because the language is different. Add hreflang so search engines understand they are alternatives. Duplicate issues arise mostly when two pages in the same language are nearly identical, for example a UK and US English page.
Can I use a Google Translate widget instead of real pages?
We do not recommend it. Widget translations happen in the visitor's browser, so search engines cannot index them as separate pages, and quality is uneven. Real translated pages on their own URLs are what rank.
Should I add Russian to my Latvian website?
It depends on who your customers are. If a meaningful share of them search in Russian, a properly written Russian version can open an audience your competitors ignore. If not, it is a maintenance cost with no return. Check your search data first.
How can I check that my hreflang works?
Use a site crawler that reports hreflang, check the page source of a few key pages, and review the sitemap. Look for missing return links, wrong language codes and target pages that redirect or are set to noindex.
Want this done properly, without the learning curve?
Tell us about your business. You get a free estimate within 24 hours, and a working demo before you pay anything.