Многие сайты предоставляют разные версии страницы в зависимости от языка или региона пользователя. Ссылки hreflang сообщают поисковым системам URL-адреса всех версий страницы, чтобы они могли отображать правильную версию для каждого языка или региона.
Почему аудит hreflang Lighthouse терпит неудачу
Маяк помечает неправильные ссылки hreflang :

Lighthouse проверяет наличие ссылок hreflang в head страницы и в заголовках ответов .
Затем Lighthouse проверяет действительные языковые коды в ссылках hreflang . Lighthouse сообщает о любых ссылках hreflang с недопустимыми языковыми кодами.
Lighthouse не проверяет коды регионов или карту сайта .
Как определить ссылку hreflang для каждой версии страницы
Предположим, что у вас есть три версии страницы:
- Английская версия на
https://example.com - Испанская версия на
https://es.example.com - Немецкая версия на
https://de.example.com
Есть три способа сообщить поисковым системам, что эти страницы эквивалентны. Выберите тот метод, который проще всего подходит для вашей ситуации.
Вариант 1. Добавьте ссылки hreflang в <head> каждой страницы:
<link rel="alternate" hreflang="en" href="https://example.com" />
<link rel="alternate" hreflang="es" href="https://es.example.com" />
<link rel="alternate" hreflang="de" href="https://de.example.com" />
Каждая версия страницы должна ссылаться на все другие версии, включая саму себя . В противном случае поисковые системы могут игнорировать ссылки hreflang или интерпретировать их неправильно.
Для страниц, которые позволяют пользователям выбирать язык, используйте ключевое слово x-default :
<link rel="alternate" href="https://example.com" hreflang="x-default" />
Вариант 2. Добавьте заголовки Link в свой HTTP-ответ:
Link: <https://example.com>; rel="alternate"; hreflang="en", <https://es.example.com>;
rel="alternate"; hreflang="es", <https://de.example.com>; rel="alternate"; hreflang="de"
Вариант 3. Добавьте информацию о языковой версии в карту сайта .
<url>
<loc>https://example.com</loc>
<xhtml:link rel="alternate" hreflang="es"
href="https://es.example.com"/>
<xhtml:link rel="alternate" hreflang="de"
href="https://es.example.com"/>
</url>
Рекомендации по значениям hreflang
- Значение
hreflangвсегда должно указывать код языка. - Код языка должен соответствовать формату ISO 639-1 .
- Значение
hreflangтакже может включать необязательный региональный код. Например,es-mxпредназначен для говорящих по-испански в Мексике, аes-cl— для говорящих по-испански в Чили. - Код региона должен соответствовать формату ISO 3166-1 альфа-2 .