Перейти к содержанию
🚀
Продвинутый SEO
Урок 3 из 9 · Приватность и данные
БЕСПЛАТНО +60 XP

Международное SEO: hreflang и структура сайта

Международное SEO — это работа с версиями сайта для разных языков и регионов, и главный его инструмент — аннотации hreflang. Они сообщают Google, какие страницы являются локализованными вариантами одного содержимого. Важно понимать, чего hreflang не делает: Google не определяет по нему язык страницы и не «угадывает» без него неверно в каждом случае. Ниже — по справке Google о локализованных версиях и руководству по мультирегиональным сайтам: правила записи, коды, структура адресов, чего не делать и какие популярные утверждения не подтверждены.

🌍
Украинский сайт получает визиты из Германии
«Немецкие пользователи попадают на украиноязычные страницы и уходят. Версии для разных языков есть, но Google о связях между ними не сообщено.»

Зачем указывать версии

Google может найти языковые версии и сам, но справка советует указывать их явно: так Поиск точнее подбирает версию по языку или региону. Рекомендуется это в таких случаях: основное содержимое на одном языке, а переведён только шаблон (навигация, подвал — как на форумах с пользовательским контентом); небольшие региональные различия в одном языке (например, английский для США, Великобритании и Ирландии); полностью переведённый сайт. Локализованные версии считаются дубликатами, только если основное содержимое осталось непереведённым (дублированный контент).

Три способа указать версии

Google поддерживает три способа: теги в HTML, HTTP-заголовок и карта сайта. С точки зрения Google они равнозначны, выбирайте удобный. Использовать все три можно, но пользы в поиске это не даёт, а поддерживать три реализации сложнее.

<head>
  <link rel="alternate" hreflang="en-GB" href="https://example.com/en-gb/page/" />
  <link rel="alternate" hreflang="en-US" href="https://example.com/en-us/page/" />
  <link rel="alternate" hreflang="en" href="https://example.com/en/page/" />
  <link rel="alternate" hreflang="de" href="https://example.com/de/page/" />
  <link rel="alternate" hreflang="x-default" href="https://example.com/" />
</head>
  • HTML: элементы <link rel="alternate" hreflang="…"> в <head>; набор ссылок одинаков в каждой версии и включает ссылку на саму страницу. Не объединяйте hreflang с другими атрибутами (например, media) в одном теге.
  • HTTP-заголовок: подходит для не-HTML файлов, например PDF; заголовок Link со всеми версиями, включая запрошенную.
  • Карта сайта: для каждого URL — <xhtml:link rel="alternate" hreflang="…"> со всеми версиями, включая саму страницу (XML-карта).

Правила для всех способов

  1. Каждая версия перечисляет себя и все остальные.
  2. Связи должны быть взаимными. Если две страницы не указывают друг на друга, теги игнорируются: так посторонний сайт не может объявить себя вашей версией. Если полный набор поддерживать трудно, на некоторых страницах можно пропускать часть языков; но новые версии нужно обязательно связать в обе стороны с исходной.
  3. Адреса полные, с протоколом: https://example.com/foo, а не //example.com/foo или /foo. Альтернативы могут быть и на других доменах.
  4. Резервная страница. Если есть отдельные версии для одного языка в разных регионах (en-IE, en-CA, en-AU), предусмотрите общую (en) для остальных. Для несопоставленных языков, особенно для страниц выбора языка или главных с автоперенаправлением, советуют x-default. Справка говорит «рассмотрите», а не «без него Google не знает, что показать».

Коды языков и регионов

Значение hreflang состоит из кода языка по ISO 639-1 и необязательного кода региона по ISO 3166-1 Alpha 2 через дефис. Поддерживаются только коды из этих стандартов: например, es-419 не поддерживается. Регистр не важен, но регион принято писать заглавными (en-GB). Нельзя указывать только страну: первый код — это язык, и Google не выводит его из страны. Поэтому для бельгийцев: de-BE, nl-BE, fr-BE, а просто be — это белорусский язык. Допустимы и записи только с языком (de) и варианты письма — zh-Hant, zh-Hans. Таким образом, ru и ru-RU — разные записи: первая для языка независимо от региона, вторая для пользователей из России.

Как Google определяет язык страницы

Google не использует hreflang и атрибут lang для определения языка страницы: он смотрит на видимое содержимое. Помогите ему: один язык для текста и навигации на странице, без параллельных переводов. Если переведён только шаблон, а основной текст остался на одном языке, пользователь может увидеть в выдаче одно и то же содержимое с разной обвязкой.

Структура адресов

Справка рекомендует отдельные адреса для каждой языковой версии, а не подмену языка по cookie или настройкам браузера. Динамическое переключение может привести к тому, что Google не найдёт все версии: Googlebot обычно приходит из США и не задаёт заголовок Accept-Language. Варианты структуры:

ВариантПлюсыМинусы
Домен страны (example.de)чёткое геотаргетирование; расположение сервера неважно; сайты легко разделитьдорого, нужна инфраструктура, строгие требования к доменам; только одна страна
Поддомен (de.example.com)легко настроить; серверы можно размещать по-разномупользователь не поймёт по адресу, язык это или страна
Подпапка (example.com/de/)легко настроить, низкая нагрузка поддержки на одном хостегеотаргетинг по адресу менее очевиден; один сервер

Названия поддоменов вроде en-gb Google не использует для определения аудитории: целевую аудиторию нужно явно указать hreflang. Подробнее о доменах — в уроке про домены и поддомены.

Чего не делать

  • Не перенаправляйте автоматически пользователя на другую языковую версию по предполагаемому языку: это может помешать пользователям и поисковым системам видеть все версии (редиректы). Вместо этого добавьте ссылки на другие версии.
  • Не используйте анализ IP для подмены содержимого: он ненадёжен, а большинство обходов Google идёт из США.
  • Не полагайтесь на «автоматический перевод в масштабе». Политики против спама называют злоупотреблением масштабным контентом, в частности, создание множества страниц из скопированного содержимого, в том числе с автоматической обработкой — подменой синонимов, переводом, — если пользователю они почти не дают ценности (политики против спама, урок). Запрета на любой машинный перевод в этом тексте нет, но ценность для читателя нужна.
  • Не указывайте несуществующие адреса: ссылки должны вести на рабочие страницы без перенаправления (canonical каждой версии — на саму себя).

Как проверять эффект

Отсутствие hreflang — не обязательно ошибка, а наличие — не гарантия. Проверяйте на данных: по странам и запросам в Search Console и по сеансам в аналитике. Изменения вносите по плану с контролем (SEO-эксперименты). Утверждения вида «без hreflang Google часто ошибается» и показатели вроде «CTR 0,5% и отказы 90%» — частные случаи, а не документация.

Чек-лист

  1. Для каждой языковой версии отдельный адрес; основное содержимое переведено.
  2. Выбран один способ указания версий: HTML, заголовок или карта сайта.
  3. Каждая версия перечисляет себя и все остальные; связи взаимные; адреса полные.
  4. Коды: ISO 639-1 + необязательный ISO 3166-1 Alpha 2; регион отдельно не указывается.
  5. Есть общая или резервная версия (x-default) для несопоставленных языков.
  6. Нет автоперенаправления по языку и подмены по IP; есть ссылки на другие версии.

Ошибки

  • Считать, что hreflang определяет язык страницы.
  • Указывать hreflang только на одной версии или не включать в набор саму страницу.
  • Писать be вместо fr-BE или es-419.
  • Подключать все три способа сразу и расходиться в данных.
  • Массово генерировать переводы без ценности для читателя.

Что дальше

Дальше — модуль «Исследования в SEO»: начнём с SEO-экспериментов, чтобы проверять такие изменения на данных, а не на рассказах.

🎯
Задание к уроку
Проверьте понимание и получите +25 XP
← Первичные данные: как собирать их без сторонних cookie
Урок 3 из 9
Перейти к заданию →