Яндекс не поддерживает hreflang - у него свой подход к мультиязычным сайтам. Вот как настроить правильно.
Как Яндекс определяет язык
- Автоматический анализ текста на странице
- Атрибут lang в HTML:
<html lang="ru"> - Региональная привязка в Вебмастере
- Content-Language HTTP-заголовок
Настройка для Яндекса
- Атрибут lang: на каждой странице правильный
<html lang="XX"> - Вебмастер: если сайт на русском для российской аудитории - привяжите регион «Россия»
- Раздельные sitemap: для каждого языка свой sitemap (не обязательно, но помогает)
- Переключатель языка: видимый элемент навигации - и для пользователя, и для робота
Подводные камни
- Нет hreflang: Яндекс не понимает hreflang. Используйте раздельные URL и lang
- Автоматический редирект по IP: YandexBot ходит с российских IP - может видеть только RU-версию
- Дубли: одинаковый контент на /ru/ и /en/ - Яндекс может склеить. Убедитесь, что контент реально переведён