Техническое SEO

hreflang, который ломает языковые версии: пять способов сделать двуязычный сайт одноязычным

У сайта две языковые версии, переключатель работает, hreflang объявлен — и при этом поисковик видит только один язык. Разбираем пять реальных конфигураций, в которых языковая разметка формально есть, а работает против сайта.

Двуязычный сайт — это не две версии текста, а договорённость с поисковой системой: вот эта страница на украинском, вот её аналог на другом языке, показывайте каждому ту, которая ему подходит. Договорённость оформляется атрибутом 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. Формально не ошибка, практически — разметка, которая не делает ничего: группа из одной страницы ни с чем её не связывает.

Как проверить свой сайт

  1. Откройте главную на украинском и посмотрите код: найдите все строки с hreflang. Их должно быть столько, сколько у вас языковых версий, плюс, при необходимости, x-default.
  2. Проверьте коды языков: uk-UA для украинской, ru-UA для русскоязычной версии украинского сайта. Каждый код должен встречаться ровно один раз.
  3. Откройте каждую ссылку из hreflang и убедитесь, что по ней открывается именно тот язык, который объявлен, и что страница отдаёт 200, а не редирект.
  4. Проверьте обратность: на странице, куда ведёт hreflang, должна быть ссылка обратно на первую. Односторонние объявления поисковик не учитывает.
  5. Сравните <html lang> с тем, что объявляет hreflang, — они должны совпадать.
  6. Проверьте карту сайта: есть ли в ней адреса обеих языковых версий.
  7. Проверьте <title> и meta description на второй языковой версии — они должны быть переведены, а не унаследованы.

Сколько это работы

Сама разметка — часы: это блок ссылок в <head>, который генерируется из перечня языковых версий страницы. Сложнее бывает разгрести ситуацию, когда разметку ставят одновременно тема и расширение: сначала нужно найти оба источника и отключить один.

Самый дорогой пункт обычно четвёртый — перевод метатегов на всех страницах второй языковой версии. Это уже не техническая работа, а контентная, и на каталоге в тысячи позиций она требует либо переводчика, либо автоматизации с последующей выборочной проверкой.

Границы этих данных

Цифры — это замеры на конкретные даты (август 2026 года), названия сайтов мы сознательно не приводим. Рыночная выборка строительных компаний, из которой взят пример с удвоенным кодом языка, состояла из восьми сайтов — так что доля «1 из 8» характеризует именно эти сайты, а не рынок.

Теги

SEO

Вам понравилась статья?

Ваше мнение помогает нам создавать лучший контент

Поделитесь с друзьями

Нашли что-нибудь полезное?

Помогите другим узнать это — поделитесь статьей в социальных сетях

Спасибо, что помогаете нам расти

Основатель LIONEX

Владислав Чистяков

Пишет о том, что делает руками: интернет-магазины на OpenCart, приложения на Next.js, интеграции и скорость сайтов. В статьях — замеры и проверки, которые читатель может повторить на своём проекте, а не общие советы. Коммерческая разработка с 2015 года.

Вопросы

Частые вопросы

Ответы на популярные вопросы по теме

Какой правильный код hreflang для русскоязычной версии украинского сайта?

ru-UA: первая часть — язык, вторая — регион. Код uk-RU, который мы встречали на одном из замеренных сайтов, читается как «украинский язык, регион Россия».

Может ли hreflang быть объявлен дважды?

Технически да, и это реальный дефект: тема и отдельное расширение добавляют разметку независимо друг от друга. Мы видели сайт, где два набора противоречили друг другу.

Почему вторая языковая версия не попадает в индекс, если hreflang правильный?

Самая частая причина — карта сайта содержит адреса только одного языка. Поисковик начинает обход с карты, и вторая версия остаётся доступной только по внутренним ссылкам.

Достаточно ли перевести интерфейс, чтобы языковая версия работала?

Нет. Если title и meta description остались на языке оригинала, для поисковика страница выглядит дубликатом.

Что такое обратность hreflang и зачем она?

Если страница A объявляет страницу B своей языковой версией, страница B должна объявлять A так же. Односторонние объявления не учитываются.

Получайте лучшие статьи на почту

Подпишитесь на нашу рассылку и получайте полезные советы, инсайты и новости о веб-разработке, маркетинге и бизнесе.

Мы уважаем вашу конфиденциальность. Отписаться можно в любой момент.

Ещё в блоге

Похожие статьи

Мы потеряли собственный магазин вместе с доменом: что об этом знает веб-архивТехническое SEO

Мы потеряли собственный магазин вместе с доменом: что об этом знает веб-архив

17 сентября 2026 мы пересчитали по веб-архиву, как выглядела потеря собственного магазина вместе с доменом: 2 378 снимков главной в марте 2022, первый 301 первого апреля, последний снимок нашего содержимого 18 мая. Показываем, что из архива восстанавливается, а что нет.

Читать дальше
IndexNow отвечал 200, а страницы не поданы: 6 файлов вместо 867 адресовТехническое SEO

IndexNow отвечал 200, а страницы не поданы: 6 файлов вместо 867 адресов

Со 2 августа по 3 сентября 2026 наш скрипт IndexNow подавал в Bing шесть адресов файлов карты сайта вместо страниц, и на каждую подачу приходило «успешно». Разбираем, почему код 200 ничего не доказал и как за 15 минут проверить, что именно подает ваш модуль.

Читать дальше
Первый экран прыгает: как мы искали сдвиг от шрифта и что не сработалоБыстродействие сайта

Первый экран прыгает: как мы искали сдвиг от шрифта и что не сработало

17.08.2026 аудит показал CLS 0,2283 на десктопной главной нашего сайта. Причиной оказался шрифт: единица ch в абзаце и наклоненная декоративная полоса. Разбираем, какие советы по замерам не помогли, что дало 0,0056 и как проверить свой сайт.

Читать дальше