Hreflang на практике: как писать, региональные страницы, взаимные ссылки и типичные ошибки
1. Что решает hreflang: не бонус к позициям, а защита от неверного определения
Сначала развеем популярный миф: hreflang не улучшает позиции. Google не раз заявлял, что тег hreflang не является фактором ранжирования. Он решает другую задачу: если ваша немецкая и английская страницы рассказывают об одном товаре, Google может счесть немецкую страницу дублем английской.
Без hreflang Google определяет язык сам и угадывает, какую версию показать пользователю из какой страны. Цена ошибки — немецкий пользователь попадает на английскую страницу, высокий показатель отказов, и позиции падают. hreflang — это ваша инструкция для Google: эти страницы являются переводами друг друга, показывайте их по языку пользователя.
| Заблуждение | Реальность | Последствия |
|---|---|---|
| hreflang улучшает позиции | Не фактор ранжирования, влияет только на выбор версии | Даже с ним позиции не вырастут |
| Если прописать, точно сработает | Нарушение одного правила ломает всю группу | Отчёт «Международные страницы» показывает ошибки |
| Достаточно прописать только на английской странице | Нужно на каждой версии страницы и взаимно | Односторонний тег не работает |
| Заменить на rel=alternate | Это для адаптивной и мобильной версии | Для мультиязычности обязателен hreflang |
2. Три способа размещения: выбирайте по размеру сайта
hreflang можно разместить в трёх местах. Результат одинаковый, но затраты на поддержку и скорость обхода различаются. Выбирайте по числу языковых версий и страниц.
| Способ размещения | Синтаксис | Для какого масштаба | Скорость обхода |
|---|---|---|---|
| Тег link в head | link rel=”alternate” hreflang=”de” | Языковых версий ≤5, страниц ≤200 | Сразу, при обходе страницы |
| XML sitemap | Дочерний тег xhtml:link | Крупные мультиязычные сайты, рекомендуется | Повторный обход за 3–7 дней |
| HTTP-заголовок | Поле Link в заголовке ответа | Только для PDF и других не-HTML файлов | При обходе файла |
Пример: у вас сайт на 5 языках — английском, немецком, французском, испанском и арабском, по 50 страниц товаров на каждом, всего 250 страниц. Выводите теги через шаблон head link: 5 строк тегов в head каждой страницы, поддерживать несложно. Если вырастете до 12 языков и 2000 страниц, head link начнёт тормозить загрузку — тогда переходите на XML sitemap и генерируйте alternative-записи программно.
В HTML-страницах не используйте способ через HTTP header — он предназначен для ссылок на скачивание PDF. Смешение трёх способов приведёт к тому, что одна и та же группа тегов будет объявлена дважды, Google возьмёт одну из них, и разбираться станет сложнее.
При способе через sitemap структура такая: под каждым узлом URL висят два дочерних тега xhtml:link — один указывает на английскую версию, другой на немецкую, плюс строка x-default. Плюс в том, что при изменении языковой версии правится только один файл sitemap, а не head каждой страницы; минус в том, что Google переобходит sitemap с задержкой 3–7 дней, поэтому для срочных правок он не подходит. Многоязычным сайтам с более чем 500 страницами советуем генерировать sitemap программно, а не писать вручную.
3. Коды языка и страны, региональные страницы и взаимные ссылки
Правила кодов — место, где в hreflang ошибаются чаще всего. Код языка — две строчные буквы по ISO 639-1 (de, fr, ar), код страны — две прописные буквы по ISO 3166-1 (DE, AT, US). Только код языка означает все регионы этого языка, с кодом страны — конкретную страну.
| Как писать | Значение | Где использовать |
|---|---|---|
| hreflang=”de” | немецкий, без привязки к стране | общая страница для Германии и Австрии |
| hreflang=”de-DE” | немецкий для Германии | локализованный контент только для Германии |
| hreflang=”de-AT” | немецкий для Австрии | страница различий в ценах и законах для Австрии |
| hreflang=”en-GB” | британский английский | страница с ценами в фунтах |
| hreflang=”x-default” | запасная версия по умолчанию | нужна во всех группах, обычно указывает на английскую страницу |
Как решить с региональными страницами: если в Германии и Австрии отличаются только цены, законы и контакты, а товары те же, достаточно сделать немецкую версию плюс страницу различий для Австрии — не переводите весь текст для каждой немецкоязычной страны. Когда нужна отдельная региональная страница, смотрите границы в Посадочные страницы по странам, чтобы не сделать doorway-страницы и не попасть под фильтр за спам.
Как писать взаимные ссылки: в head немецкой страницы укажите hreflang=”en” на английскую, а в head английской обязательно укажите hreflang=”de” на немецкую; на каждой из двух страниц должна быть ещё ссылка на саму себя (на свою языковую версию), и обе должны нести x-default. Пропустите хоть одну — и Google не станет использовать всю группу тегов.
Ссылку на саму себя часто упускают. Многие пишут только «я указываю на другую версию» и забывают, что «я и есть эта версия». В правильном наборе тегов на английской странице должна быть строка hreflang=”en”, ведущая на её собственный канонический URL, а на немецкой — строка hreflang=”de-DE”, ведущая на её собственный. Google использует самореференцию, чтобы убедиться: вы признаёте эту версию одной из канонических. Без неё Google сочтёт набор тегов неполным и просто пропустит его.
4. Список частых ошибок и порядок проверки
Через 3–7 дней после запуска hreflang нужно проверить. В отчёте «Международные настройки» в Search Console перечислены конкретные ошибки — исправляйте их по таблице ниже.
| Тип ошибки | Причина | Действие |
|---|---|---|
| URL возвращает 404 | Страница-партнёр удалена, а тег остался | Удалите тег или перенаправьте на новую страницу |
| В списке есть страница с noindex | Версия с noindex всё ещё содержит hreflang | Уберите страницу из набора тегов |
| Ошибка в регистре языкового кода | Написано de-de вместо de-DE | Исправьте код страны на верхний регистр |
| Несогласованность HTTP и HTTPS | В sitemap указан http, а страница работает по https | Приведите все URL к https |
| Попали страницы пагинации и фильтров | Страница с параметрами фильтра товаров принята за языковую версию | Теги проставлены только на канонических страницах |
| Нет x-default | Забыли резервный тег | Добавьте в каждый набор строку, ведущую на английскую страницу |
Проверка состоит из трёх шагов. Первый: прогоните один URL через Rich Results Test или сторонний инструмент проверки hreflang и посмотрите, полон ли весь набор тегов. Второй: в отчёте «Международные настройки» в Search Console посмотрите, сколько ошибок Google нашёл фактически. Третий: после исправлений нажмите «Проверить исправление» — Google переоценит страницу примерно за 2–4 недели. Полный список из пяти этапов перед публикацией многоязычного контента — в статье Процесс публикации многоязычного контента, и hreflang — последний из них.
Есть граница, которую легко упустить: hreflang работает только для страниц, которые действительно являются переводными версиями друг друга. Если немецкая и английская страницы — на самом деле две совершенно разные статьи, просто на разных языках, не стоит насильно объединять их в один набор hreflang. Google проверяет, действительно ли контент является взаимным переводом, и при несовпадении тоже игнорирует весь набор. Страницы на разных языках должны быть переводом одного и того же товара или темы с примерно совпадающей структурой и числом абзацев.
На эффект от hreflang влияет и качество перевода: псевдолокализованные страницы машинного перевода Google не покажет пользователям соответствующей страны из-за низкого качества контента, даже если теги проставлены верно. Поэтому до запуска hreflang контент должен пройти постпереводческое редактирование и выборочную проверку; о локализации терминов и цифр читайте также в статье Работа с графиками на многоязычном сайте.
FAQ: частые вопросы
Так где же размещать hreflang — в head или в sitemap?
Помогает ли разметка hreflang улучшить позиции?
Почему я прописал hreflang, а он не работает?
В Германии и Австрии говорят по-немецки — нужно ли два hreflang?
Что такое x-default и обязательно ли его добавлять?
Как скоро будет виден результат после исправления ошибок hreflang?
В заключение
hreflang — типичный технический момент из серии «сделал правильно — никто не похвалит, сделал с ошибкой — всё насмарку». Роста позиций он не даёт, но стоит пропустить одну строку или ошибиться в одном символе — и ваш многоязычный контент Google может счесть дублем, а труды пропадут зря.
Три шага к внедрению: на этой неделе проверьте через инструменты аудита полноту всей группы hreflang на 5 ключевых страницах товаров; на следующей — добавьте по четырём железным правилам двусторонние ссылки, self-reference, x-default и абсолютные URL; на третьей неделе, убедившись в отчёте «Международный таргетинг» в Search Console, что ошибок нет, нажмите «Проверить исправление». Если на уровне архитектуры вы всё ещё сомневаетесь между подкаталогами и отдельным сайтом, вернитесь к Перенос Hreflang для мультиязычности общей оценке.
Запомните одну фразу: hreflang нужен не для того, чтобы поднять вам позиции, а для того, чтобы передать Google карту переводных связей. Карта должна быть полной, двусторонней и с запасным вариантом — не хватает одного звена, и вся карта недействительна.
