
Атрибут hreflang появился, когда стало нужно объяснять поисковым системам, что у одного и того же по сути контента есть несколько языковых или региональных версий. Если у вас есть русская версия для России и для Казахстана, или версии на казахском и узбекском — без hreflang поиск работает «на удачу». С ним — отдаёт пользователю нужную страницу, не дробит вес сайта и не ругается на дубли.
01Что такое hreflang и зачем он нужен
Hreflang — это атрибут, который указывает альтернативные версии страницы по языку и/или региону. Поддерживается Google и Яндексом. Простыми словами: страница говорит поисковику «у меня есть братья и сёстры: вот эта — для России, вот эта — для Казахстана, вот эта — на казахском».
Когда это критично:
- Один контент на нескольких языках (русский, казахский, узбекский, английский).
- Один язык, но разные регионы (русская версия для России и отдельная для Казахстана с другими ценами и контактами).
- Любая мультидоменная или мультипапочная структура с локализованными версиями.
02Синтаксис: язык, регион, коды
В hreflang используются коды по стандартам ISO 639-1 (язык) и ISO 3166-1 alpha-2 (регион). Примеры реальных значений:
ru— русский язык, без региональной привязки.ru-RU— русский для России.ru-KZ— русский для Казахстана.kk-KZ— казахский для Казахстана.uz-UZ— узбекский для Узбекистана.en— английский без региона.x-default— версия по умолчанию для всех остальных пользователей.
Региональная часть указывается только если контент реально отличается по региону (цены, оплата, доставка, юр.информация). Если у вас одна универсальная русская версия, достаточно ru — добавлять ru-RU «на всякий случай» не стоит, это запутает поисковики.
03Три способа внедрения
Hreflang можно прописать тремя способами. Какой выбрать — зависит от стека и объёма страниц.
В HTML, в секции head
Самый понятный вариант. На каждой версии страницы в head перечисляются все альтернативы, включая её саму:
<link rel="alternate" hreflang="ru" href="https://example.com/" />
<link rel="alternate" hreflang="kk" href="https://example.com/kk/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/" />Плюс — видно при отладке прямо в HTML. Минус — раздувает страницу, если версий много.
В XML-карте сайта
Внутри sitemap.xml для каждой страницы указываются её альтернативы через xhtml:link. Удобно, если сайт большой: правки идут централизованно, без перевыкатки HTML. Главный минус — сложнее проверять руками, нужны валидаторы.
В HTTP-заголовке Link
Используется в основном для не-HTML файлов (PDF, например). На сайтах применяется редко.
На практике мы чаще выбираем HTML-вариант для небольших мультиверсий и sitemap-вариант для крупных сайтов с десятками тысяч страниц.
04Важное правило: взаимные ссылки
Это самая частая ошибка. Hreflang работает только если все версии ссылаются друг на друга. Если у вас 3 версии (ru, kk, x-default), то на каждой из них должны быть указаны все 3 — включая саму себя. Если русская версия знает про казахскую, но не наоборот, поиск проигнорирует разметку.
Проверка простая: возьмите URL версии A, посмотрите её hreflang — там должна быть версия B. Откройте версию B — там должна быть версия A. И так по кругу для всех связок.
05X-default: зачем и куда его ставить
X-default — это «версия для всех остальных», которую поисковик покажет, если ни одна другая не подходит пользователю. Обычно её роль выполняет международная или русская версия — наиболее универсальная.
Указывать x-default не обязательно по стандарту, но настоятельно рекомендуется при двух и более версиях. Иначе пользователю из страны, которой нет в вашем списке, поиск выберет версию случайно.
06Hreflang и canonical: как они уживаются
Это место путаницы. Hreflang — это про языковые/региональные варианты. Canonical — про «какая страница главная среди дублей». Правила сосуществования простые:
- Canonical каждой языковой версии указывает на саму себя — не на «главную» версию, а именно на свой URL.
- Hreflang перечисляет все альтернативы.
- Никогда не ставьте canonical с русской версии на казахскую (или наоборот) — это сигнал «это дубль», и hreflang перестанет работать.
Если структура задана правильно, у поиска появляются два независимых сигнала: «вот это главные страницы своих версий» и «вот связь между версиями».
07Как проверить, что hreflang работает
После внедрения нужно убедиться, что разметка корректна. Полезные инструменты и шаги:
- В Google Search Console — отчёт «Международный таргетинг», там видны ошибки взаимных ссылок.
- Внешние валидаторы hreflang — быстро находят пары без обратных ссылок.
- Просмотр исходного кода руками — проверьте, что коды языков и регионов корректны (например,
kzвместоkk— частая ошибка:kzэто код страны, а язык —kk). - В Яндекс Вебмастере явно укажите регион сайта для каждой версии, если используете поддомены или национальные домены.
Эффект от hreflang виден не мгновенно — Яндексу и Google нужно время на повторный обход. Как правило, 2–4 недели до того, как в выдаче чётко появится «правильная» версия. Сама разметка — часть базовой работы по SEO-продвижению и обязательно делается параллельно с локализацией контента, о которой мы писали в материале о языковых версиях для СНГ.
08Чек-лист настройки
- Решили, какие версии у вас есть: язык, регион, x-default.
- Выбрали способ внедрения (HTML, sitemap или оба).
- На каждой версии перечислены все альтернативы, включая саму себя.
- Указан x-default.
- Canonical каждой версии — на саму себя.
- Проверена корректность кодов (kk-KZ, не kz; uz, не uzb).
- В Search Console и Вебмастере привязаны регионы.
- Через пару недель проверены отчёты на ошибки.
Hreflang — в составе подписки на SEO
Когда мы делаем сайт для нескольких стран или языковых версий, hreflang настраивается сразу — в head или через карту сайта, со взаимными ссылками и x-default. Параллельно подключаем регионы в Вебмастере и Search Console и следим, что версии не конкурируют друг с другом в выдаче.
Официальная документация по теме — Справка Яндекс.Вебмастера.
