hreflang: разметка языковых версий
hreflang — разметка, которая сообщает поиску, что у страницы есть версии на других языках или для других стран, и какая кому предназначена. Без неё многоязычный сайт рискует конкурировать сам с собой.
Как это выглядит
На каждой языковой версии перечисляются все версии, включая её саму, с указанием языка и при необходимости региона. Дополнительно указывают запасной вариант для остальных стран. Разметка размещается в коде страницы, в заголовках ответа или в карте сайта — способ не важен, важна полнота.
Правила, которые нарушают чаще всего
| Правило | Что ломается при нарушении |
|---|---|
| Ссылки должны быть взаимными | Односторонняя разметка игнорируется целиком |
| Каждая версия ссылается и на себя | Набор считается неполным |
| Адреса — канонические и рабочие | Редирект или 404 обнуляет связку |
| Код языка по стандарту | Опечатка в коде отключает правило |
| Регион указывается только вместе с языком | Один регион без языка не работает |
Когда она нужна
- Сайт существует на нескольких языках.
- Есть версии на одном языке для разных стран — например, для Украины и Польши.
- Часть контента переведена, а часть нет: тогда размечают только реально существующие пары.
Частая путаница: язык и страна
Код языка обязателен, код страны — нет. Запись только с языком означает «эта версия для всех, кто читает на этом языке», а с языком и страной — «для этого языка в этой стране». Указывать один регион без языка нельзя: такая строка игнорируется. И помните, что регион здесь про страну пользователя, а не про то, где стоит сервер.
Как проверить
Посмотрите исходный код страницы и убедитесь, что версии перечислены полностью и взаимно. В нашей базе знаний, например, каждая статья существует на четырёх языках со своим адресом — и связаны они именно этой разметкой; подробности в статье о языковых версиях.