IZN Tools

Генератор hreflang

Мультиязычные теги с взаимными ссылками и корректным x-default.

<link rel="alternate" hreflang="en" href="https://example.com/" />
<link rel="alternate" hreflang="ru" href="https://example.com/ru/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/" />
КорректноКаждая страница набора должна нести весь блок целиком, включая ссылку на себя — односторонняя разметка игнорируется
Посчитано на вашем устройстве

Взаимность и есть весь механизм

Hreflang работает через перекрёстное подтверждение. Страница A заявляет, что страница B — её русская версия; страница B обязана заявить, что A — её английская. Если одной стороны нет, робот не может проверить связь и отбрасывает разметку для этой пары.

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

Четыре ошибки, которые стоит проверять

  • Нет ссылки на себя. Каждая страница должна перечислять и себя.
  • Относительные адреса. Игнорируются молча. Только абсолютные, со схемой.
  • Неверный код. RU в верхнем регистре, en_GB через подчёркивание, ua для украинского (правильно uk). Всё игнорируется.
  • Нет x-default. Не фатально, но оставляет выбор роботу для каждого посетителя, под чей язык у вас страницы нет.

Куда это ставить

В <head>, в HTTP-заголовки или в sitemap — все три способа корректны, и нужен только один. Head проще всего проверять и труднее всего забыть, поэтому инструмент выдаёт теги link.

Для двуязычного сайта блок занимает три строки и не меняется. Положите его в layout, чтобы он не разъехался с реальностью.

Вопросы

Почему каждая страница должна указывать саму себя?+

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

Зачем нужен x-default?+

Это страница для тех, чьего языка у вас нет. Туда попадёт говорящий по-португальски, если вы предлагаете английский и русский. Без него поисковик решает сам и обычно выбирает страницу, которую обошёл первой, а не ту, которую выбрали бы вы.

Указывать язык или язык с регионом?+

Только язык, если региональные версии действительно различаются — цены, юридический текст, наличие товара. `en-GB` и `en-US` на сайте с одной английской версией стравливают ваши же страницы между собой без всякой пользы.

Адреса обязаны быть абсолютными?+

Да. Относительный href в hreflang игнорируется целиком, и это одна из самых частых причин, по которой корректный в остальном блок не работает. Инструмент это подсвечивает.