Technical SEOE-commerce and business

The Russian version of a website: 60 of 97 Ukrainian sites declare it in hreflang

On 7–8 August 2026 we externally measured Ukrainian websites in 19 niches. Russian appears in hreflang on 60 of the 97 homepages we could read, and on 24 of 34 among stores. We break down the codes, the spread across niches, what a second language does to the sitemap, and how to check your own site.

Sooner or later, the owner of a Ukrainian store asks themselves whether to keep a Russian version of the site. Until now there was nothing to compare against: our earlier write-ups dealt with specific mistakes in language markup, but we never counted how many sites declare that version at all.

On 7 and 8 August 2026 we externally measured Ukrainian websites in 19 niches, from restaurants and beauty salons to optics, footwear and power tool stores. Among other things, we recorded which languages the homepage declares in the hreflang attribute, and we parsed the sitemap. For this article we recounted the same raw records around a single question: how many sites declare a Russian version, and what it does to the sitemap.

Where the denominator of 97 comes from

102 sites responded. Five of them served our script not the homepage but a page with no title, no language in the markup, no structured data and no counters. For such sites we cannot say they have no hreflang — we simply did not see it. So for the language question we count the 97 homepages we actually read.

What the numbers showed

The Russian language code is present in hreflang on 60 of 97 homepages. The hreflang attribute was found at all on 66 of them, and only six of those had no Russian. In other words, if a site in the sample had language markup at all, Russian was almost always in it.

Among stores — that is seven niches: stationery, power tools, optics, household chemicals, textiles, jewelry, footwear — Russian is declared on 24 of 34 homepages we read.

The spread across niches is sharp:

  • footwear — 5 of 5
  • building materials — 6 of 6
  • optics — 5 of 7
  • construction companies — 5 of 8
  • household chemicals — 4 of 6
  • furniture, healthcare, legal services, stationery — 3 of 4 each
  • fitness, car repair, textiles — 3 of 5 each
  • education, tourism — 3 of 6 each
  • jewelry — 2 of 3
  • beauty salons, power tools, real estate — 2 of 4 each
  • restaurants — 0 of 7

Restaurants are the only niche here where not a single site had Russian in its markup. There are two niches where it is present on every site: footwear and building materials. Each niche has between 3 and 8 sites, so these rows describe specific sites as of the measurement date, not the niche.

Which codes mark it

Codes across all 102 records (the five unread ones have no codes, so the result is the same as on 97):

  • ru — 38 sites
  • ru-ua — 20
  • ru-ru — 3
  • ru-gb, ru-kz, ru-uz — one each

The last three are not a mistake: they are declared by two sites that have versions for several countries, and the regional codes match those countries.

Something else is more interesting. ru-ru in hreflang means “Russian language for people in Russia.” Three sites on .ua domains marked their Russian version exactly this way, and their markup has no other Russian version, for Ukraine. Why this is the wrong code and which one is right, we already covered in the article on five ways to break language versions, so we won’t repeat it here.

And one more finding that was not in that write-up. On 4 of 66 sites with hreflang, the Ukrainian version is marked only with the code ua or ua-ua. Three of them declare Russian alongside it. Google accepts a language code from the ISO 639-1 list in hreflang, and ua is not on it: it is a country code, while Ukrainian is marked uk. These three sites declared their Russian version in a way the search engine understands, but not their Ukrainian one.

What a language version does to the sitemap

The second half of the measurement is the sitemap. We read the sitemap to the end on 85 of 102 sites. On the rest, the sitemap was either not found or turned out to be longer than the limit at which our script stopped.

In 32 of 85 sitemaps, a single language branch under a prefix — /ru/, /ua/ or /uk/ — takes up 45 to 55% of all URLs. Usually the other half is the main language without a prefix. One of these 32 sitemaps consists of only two URLs, so this share says nothing about it.

In stores the picture is even more even. Of 31 stores with a fully read sitemap, 19 have this “half and half” split. The /ru/ branch made it into the largest sitemap sections in 14 stores, and in 12 of them it takes up 49.8 to 50.2% of URLs. In the other two it is 46.5% and 32%.

This is not a defect. On the contrary, if the sitemap had only one language, that would be a mistake from our earlier write-ups. The figure shows the mechanical cost of a language version: every catalog page exists twice, and to crawl the site fully a bot has to request twice as many URLs. Every thousand products adds another thousand URLs that the bot has to recrawl from time to time. How crawling gets spent in practice and what eats it up, we showed on our own site.

Why this usually goes unnoticed

The owner sees the Russian version as a switcher in the header. The fact that behind the switcher sits a second copy of the entire catalog is not shown anywhere in day-to-day work: the admin panel usually counts products, not URLs. Few people open the sitemap, where this copy is visible right away. And mistakes like ua instead of uk produce no symptoms at all: the site works, the switcher switches, the browser console is silent.

How to check your own site in 10–15 minutes

  1. Which languages the homepage declares:
curl -s https://your-site.ua/ | grep -io 'hreflang="[^"]*"' | sort -u
  1. Codes. Ukrainian should be uk or uk-UA. If you see ua or ua-UA, the Ukrainian version is not declared for the search engine. For a Russian version aimed at Ukraine, the region code RU is not appropriate.

  2. How many URLs are in each language branch. For a regular sitemap:

curl -s https://your-site.ua/sitemap.xml | grep -o '<loc>[^<]*' > locs.txt
wc -l < locs.txt
grep -c '/ru/' locs.txt

If the sitemap is an index linking to other files, go through each nested file the same way. If the second language takes up roughly half, that is expected. If it is not there at all even though the site has that version, check the sitemap generator.

  1. Whether anyone reads this version. In Search Console, open the “Search results” report, add a page filter “URL contains /ru/” (or the prefix of your second language), and compare impressions and clicks with the whole site over the last three months.

  2. Whether the version is complete. Open a few pages in the second language and follow the links. If everything from it leads to the main language, that is a separate problem, covered here.

Only the fourth step gets you closer to answering “keep it or not.” The rest shows whether the version works as intended at all.

What this measurement does not tell you

It does not tell you whether to keep a Russian version. We have no traffic data for other people’s sites, and the conclusion “60 of 97 keep one, so you should too” would be a substitution: the measurement shows what sites do, not what it gives them.

It looked only at the homepage. A site that has a Russian version but does not declare hreflang did not make it into the 60, so the real number may be higher. The reverse is also possible: we did not check whether a Russian page actually opens at the declared URL.

The sample is 97 sites in 19 niches, 3 to 8 per niche. This is not “the Ukrainian market” but the sites we selected for the measurement. We do not touch on the legal questions of language legislation here: that requires a primary source, not a technical measurement.

If you have a second language version and want search to see it, start with the five steps above. What to do next is described on the page about language versions and hreflang.

Tags

SEOE-commerce

Did you like the article?

Your opinion helps us create better content

Share with friends

Found something useful?

Help others learn about it - share the article on social networks

Thank you for helping us grow

Founder of LIONEX

Vladyslav Chystiakov

Writes about what he builds himself: online stores on OpenCart, applications on Next.js, integrations and site speed. The articles carry measurements and checks a reader can repeat on their own project, not general advice. Commercial development since 2015.

Questions

Frequently asked questions

Answers to common questions on the topic

How many Ukrainian websites declare a Russian version in hreflang?

In our measurement on 7–8 August 2026, the Russian language code was in hreflang on 60 of the 97 homepages we could read, across 19 niches. Among stores in seven niches, it was on 24 of 34. This is the state of specific sites as of the measurement date, not a share of the whole market.

Why do you count from 97 sites and not 102?

102 sites responded, but five served our script a page with no title, no language markup, no structured data and no counters. We cannot say they have no hreflang, because we simply did not see it, so we exclude them from the language question.

Can Ukrainian be marked with the code ua in hreflang?

No. Google accepts a language code from the ISO 639-1 list in hreflang, and ua is a country code. Ukrainian is marked uk or uk-UA. In the measurement, on 4 of 66 sites with hreflang, Ukrainian was marked only with ua or ua-ua, meaning it was not declared for the search engine.

Is it normal for a language version to take up half the sitemap?

Yes, that is expected: every page exists in two languages, and both should be in the sitemap. It would be a mistake if one language were missing. But it means the bot has to crawl twice as many URLs. In stores where the /ru/ branch made it into the largest sitemap sections, it mostly took up almost exactly half.

Should I remove the Russian version of my site?

This measurement does not answer that question: it shows what sites declare, not what it gives them. Your own data gives the answer — in Search Console, filter pages with the /ru/ prefix and compare their impressions and clicks with the whole site over the last three months.

Get the best articles by email

Subscribe to our newsletter and receive useful tips, insights and news about web development, marketing and business.

We respect your privacy. You can unsubscribe at any time.

More from the blog

Related articles