Создать URL
Генератор Правила транслитерации Как сделать ЧПУ Блог Вопросы и ответы Создать URL
Разбор

Ошибки hreflang, которые сводят его к нулю

После основ настройки разберём, что чаще всего ломает hreflang, — и почему система при этом ничего не сообщает.

Как выглядит главная ошибка

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

Страница Aуказывает на BСтраница Bне указываетна AСвязьне принимается
Страница Aуказывает на BСтраница Bне указываетна AСвязьне принимается
Нарушенная взаимность: связь не подтверждается с обеих сторон

Частые ошибки

Что чаще всего ломает hreflang
ОшибкаПочему это плохоКак исправить
Нет обратной ссылкиСвязь не подтвержденаДобавить взаимные ссылки на всех версиях
Нет ссылки на саму страницуНабор неполныйВключить собственный адрес в группу
Код en-UK вместо en-GBЗначение не распознаётсяИспользовать корректные коды ISO
Код ua вместо ukУказан несуществующий языкЯзык — uk, регион — UA
Ссылка на страницу с редиректомЦепочка вместо конечного адресаУказывать финальный адрес
Ссылка на закрытую от индексации страницуВерсия не попадёт в индексОткрыть страницу или убрать её из набора
Относительные адресаВозможна неверная трактовкаИспользовать абсолютные адреса
Разные наборы на разных версияхПротиворечивые сведенияФормировать набор программно из общего списка
Canonical указывает на другую версиюКонфликт сигналовКаждая версия — canonical на себя

Как находить ошибки

  1. Прогоните сайт краулером с проверкой hreflang: он покажет отсутствующие обратные ссылки и неверные коды.
  2. Выборочно откройте по одной группе версий и сверьте наборы вручную.
  3. Проверьте коды ответа адресов из наборов: все должны быть 200.
  4. Сравните hreflang с указаниями canonical на тех же страницах.

Как не допускать ошибок в будущем

Ручная поддержка hreflang на десятках страниц почти неизбежно приводит к расхождениям. Надёжнее формировать наборы программно из одного списка соответствий версий: тогда взаимность и ссылка на себя обеспечиваются автоматически. Общие принципы автоматизации служебных данных — в статье про автоматическую генерацию карты сайта, а базовые правила hreflang — в разборе настройки атрибута.

Помните: неверный hreflang редко вызывает заметный сбой. Он просто не работает, и пользователи из других стран продолжают попадать не на ту версию.

Как выглядит правильный набор

Для двух языковых версий одной страницы набор на каждой из них должен быть одинаковым:

<!-- на странице /ru/delivery/ и на странице /en/delivery/ -->
<link rel="alternate" hreflang="ru" href="https://example.com/ru/delivery/">
<link rel="alternate" hreflang="en" href="https://example.com/en/delivery/">
<link rel="alternate" hreflang="x-default" href="https://example.com/delivery/">

Ручная проверка одной группы версий

Порядок проверки группы версий
ШагЧто проверить
1На каждой версии присутствует полный набор записей
2В наборе есть адрес самой страницы
3Все адреса абсолютные и отвечают кодом 200
4Коды языков и регионов корректны
5Canonical каждой версии совпадает с её адресом в наборе

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

Почему hreflang не работает, хотя ошибок в панели нет?

Система может молча игнорировать нарушенную связь, например при отсутствии обратной ссылки, поэтому проверять hreflang стоит краулером.

Какой код указать для украинского языка?

uk для языка и UA для региона, то есть uk-UA; значение ua для языка не подходит.

Можно ли указывать в hreflang адреса с редиректом?

Не стоит: нужно указывать финальный адрес страницы, отвечающий кодом 200.

Готовый адрес можно собрать прямо сейчас: откройте генератор ЧПУ — он транслитерирует фразу по таблице Яндекса, уберёт служебные слова и покажет длину адреса.

Читайте также