Двуязычный сайт — это не две версии текста, а договорённость с поисковой системой: вот эта страница на украинском, вот её аналог на другом языке, показывайте каждому ту, которая ему подходит. Договорённость оформляется атрибутом hreflang.
Проблема в том, что сломанный hreflang выглядит точно как рабочий: сайт открывается, переключатель работает, в коде разметка есть. Ошибку видно только тогда, когда её целенаправленно ищут.
Ниже — пять реальных конфигураций, которые мы встречали в замерах украинских сайтов.
1. hreflang заведён дважды, и два набора противоречат друг другу
Самый сложный случай из тех, что мы видели. На магазине белья языковая разметка была добавлена двумя разными механизмами одновременно — вероятно, темой и отдельным расширением, которые не знали друг о друге.
Первый набор объявлял ru-ru, uk-ua и pl, ведя на корневые адреса. Второй — ru, x-default и uk, ведя на адреса с префиксом /ua/. При этом по ссылке, объявленной как uk-ua, отдавался русский контент, и то же самое — по польской.
Для поисковика это не «два мнения», а противоречие, которое он разрешает на своё усмотрение — то есть чаще всего игнорирует оба набора.
2. Код языка указан неправильно
На магазине военного снаряжения языковые версии реально существовали — корневая и /ua/. В разметке они были объявлены как uk-UA и uk-RU.
Второй код не означает «русский для Украины»: первая часть — это язык, вторая — регион. uk-RU читается как «украинский язык, регион Россия». Правильный код для русскоязычной версии украинского сайта — ru-UA.
Дополнительный штрих на том же сайте: <html lang="ru"> на корневой версии, то есть атрибут языка страницы противоречил тому, что объявлял hreflang.
Отдельная разновидность этой ошибки встретилась в выборке строительных компаний: один и тот же код языка объявлен дважды — один сайт из восьми проверенных 8 августа 2026 года.
3. Карта сайта содержит только одну языковую версию
Сайт двуязычный, hreflang объявлен правильно — но в карте сайта адреса только одного языка. Вторая версия существует для человека с переключателем и не существует для краулера, который начинает обход с карты.
Из реальных замеров:
- магазин специй: все 590 уникальных адресов карты ведут на русскую версию, хотя в коде
<html lang="uk"> и hreflang для украинской объявлен;
- магазин инструмента: 100% адресов в карте — русскоязычные, при том что сайт по умолчанию отдаёт украинскую;
- магазин садовой техники: в карте только украиноязычная ветка, русская версия заявлена в hreflang, но в карту не попала;
- оптовый магазин косметики: ни одного русскоязычного адреса в карте при полноценной двуязычности с переключателем.
Закономерности в том, какой именно язык «пропадает», нет — и это лучшее доказательство, что причина техническая, а не содержательная: так настроился генератор карты, и никто не проверил результат.
4. Перевод интерфейса без перевода метатегов
Более тонкий случай. Языковая версия существует, интерфейс переведён, <html lang="uk"> выставлен правильно — а <title> и meta description остались на языке оригинала.
Мы видели это на магазине белья: украиноязычная версия /ua имела переведённый интерфейс и правильный атрибут языка, но метатеги на ней остались русскими. Для поисковика такая страница выглядит как дубликат — именно по метатегам он в первую очередь и различает страницы.
Это классическая ошибка частичной локализации: переводят то, что видно в макете, и не переводят то, что видно только в выдаче.
5. hreflang есть, а второй версии нет
Обратный случай: разметка объявляет языковые версии, которых физически не существует, — остаток от планов или от шаблона. Поисковик идёт по ссылке, получает 404 или редирект на ту же страницу и перестаёт доверять всей группе.
Отдельный вариант — hreflang только с одной записью на саму себя плюс x-default. Формально не ошибка, практически — разметка, которая не делает ничего: группа из одной страницы ни с чем её не связывает.
Как проверить свой сайт
- Откройте главную на украинском и посмотрите код: найдите все строки с
hreflang. Их должно быть столько, сколько у вас языковых версий, плюс, при необходимости, x-default.
- Проверьте коды языков:
uk-UA для украинской, ru-UA для русскоязычной версии украинского сайта. Каждый код должен встречаться ровно один раз.
- Откройте каждую ссылку из hreflang и убедитесь, что по ней открывается именно тот язык, который объявлен, и что страница отдаёт 200, а не редирект.
- Проверьте обратность: на странице, куда ведёт hreflang, должна быть ссылка обратно на первую. Односторонние объявления поисковик не учитывает.
- Сравните
<html lang> с тем, что объявляет hreflang, — они должны совпадать.
- Проверьте карту сайта: есть ли в ней адреса обеих языковых версий.
- Проверьте
<title> и meta description на второй языковой версии — они должны быть переведены, а не унаследованы.
Сколько это работы
Сама разметка — часы: это блок ссылок в <head>, который генерируется из перечня языковых версий страницы. Сложнее бывает разгрести ситуацию, когда разметку ставят одновременно тема и расширение: сначала нужно найти оба источника и отключить один.
Самый дорогой пункт обычно четвёртый — перевод метатегов на всех страницах второй языковой версии. Это уже не техническая работа, а контентная, и на каталоге в тысячи позиций она требует либо переводчика, либо автоматизации с последующей выборочной проверкой.
Границы этих данных
Цифры — это замеры на конкретные даты (август 2026 года), названия сайтов мы сознательно не приводим. Рыночная выборка строительных компаний, из которой взят пример с удвоенным кодом языка, состояла из восьми сайтов — так что доля «1 из 8» характеризует именно эти сайты, а не рынок.