NEW CASE
Antana

We create digital solutions that work for businesses


Give us a call +38 (066) 35-14-529

Let's take the first step towards your website — write to us

Close
August 30, 2026 4 min read

Multilingual Websites: Getting hreflang Right

SEO
Multilingual Websites: Getting hreflang Right

You built the site in three languages. Every version is translated, the URLs are tidy, everything looks right. Yet search shows the English page to Ukrainian visitors, and Search Console starts warning about duplicates.

The cause is almost always the hreflang tags — or rather how they were set up. Here is how they work and where they break.

What hreflang tags do

They tell search engines: these pages are the same thing in different languages, show each visitor their own. Without them Google decides for itself, and not always the way you want.

There is a second, less obvious effect: without these tags similar pages can be read as duplicates. A translation is the same content in different words, and the algorithm may well conclude you are duplicating yourself.

The most common mistake on Ukrainian sites

The Ukrainian language code is uk, not ua. This trips people up because the country domain is .ua, so the hand writes it automatically.

The reason is that hreflang takes the language from one standard and the country from another. UA is the country code for Ukraine; the language is uk. Google simply ignores a tag using ua, and the language link never forms.

You can check your own site with the hreflang checker — it lists every code and says immediately what is wrong with it.

Three rules it will not work without

Self-reference. Every page must appear in its own set. The Ukrainian version lists English, Russian — and itself. Without that the set counts as incomplete and Google may discard it entirely.

Reciprocity. If the Ukrainian page points to the English one, the English page must point back. One-way links do not count.

The simplest way to satisfy both rules is to place the identical block of tags on every version. Not "each pointing at the others" but literally the same set. Reciprocity then follows automatically.

Absolute URLs. href="/en/page/" does not work: the specification requires full links with protocol and domain.

x-default: what it is and whether you need it

It is the fallback for visitors whose language matches none of yours. A German arriving at a trilingual Ukrainian site is exactly that case.

Technically optional. But without it Google picks the version, and not always the one you would choose. x-default usually points at the English version or a language-selection page.

Why it is configured yet still fails

The usual cause is a conflict with the canonical. The page says "my main version is English" through canonical while also carrying hreflang tags. Google follows the canonical and the language links are cancelled.

The rule is simple: every language version should name itself as canonical. You can verify that with the canonical checker.

The second frequent cause is tags placed only on the homepage. Each page needs its own set; the homepage does not pass these links deeper into the site.

The third is a target that redirects or 404s. Often a leftover from an https migration where the tags kept the old URLs.

Setup order

  1. List every language version of the page in question, including the page itself.
  2. Place the identical tag block on all of them.
  3. Add x-default, usually pointing at the English version.
  4. Make sure each page names itself as canonical.
  5. Run it through the checker, which verifies codes, reciprocity and target availability.

On large sites it is easier to declare the set in the sitemap rather than the page markup, keeping the HTML lean. The rules are the same.

How long it takes

Google has to recrawl every page in the set, not just one. Changes usually show within one to two weeks. Submitting the pages in Search Console speeds it up.

In short

Ukrainian is uk. The same block on every version, absolute URLs, self-reference required. Canonical pointing at itself, or none of the rest matters.

Rate this article
It helps us write better content
Be the first to rate 5.0 of 5 0 votes

Recommended reading

Let’s create something amazing together

Become a clientBecome a client
Telegram Viber Call us