Отправка локализованных версий страницы в Google

Если у вас несколько версий страницы на разных языках или для разных регионов, помогите Google идентифицировать их. Тогда в результатах поиска будут представлены те версии ваших страниц, которые лучше всего подходят для языка и региона пользователя.

Google может найти альтернативные версии ваших страниц, даже если вы не предпримете никаких действий, но все же желательно указывать их явно.

Ниже приведены примеры ситуаций, в которых мы рекомендуем указывать альтернативные страницы.

  • Вы перевели только шаблон веб-страницы (например, панель навигации и нижний колонтитул), а основной контент остался на исходном языке. Такой формат характерен для страниц, контент которых создается пользователями (например, сообщения на форумах).
  • На сайте представлены материалы на одном языке, однако они немного различаются в зависимости от региона. Так, контент на английском языке может быть предназначен для пользователей из Великобритании, Ирландии и США.
  • Контент сайта полностью переведен на несколько языков. Например, если у каждой страницы есть версии на немецком и английском языках.

Локализованные версии страницы считаются дубликатами, только если основной контент остается непереведенным.

Методы указания альтернативных страниц

Версии страниц, предназначенные для пользователей из разных регионов, говорящих на разных языках, можно указать тремя способами.

Инструкции, которые относятся ко всем методам

  • Каждая языковая версия страницы должна содержать ссылку на версии для других языков, а также на саму себя.
  • URL вариантов страниц должны быть указаны полностью, включая названия протокола (http или https):
    используйте формат https://example.com/foo, а не //example.com/foo или /foo.
  • URL вариантов страниц могут находиться в разных доменах.
  • Если у вас несколько страниц на одном языке, но для разных регионов, мы рекомендуем создать ещё и общий URL без географического таргетинга. Например, если у вас есть отдельные URL для англоговорящих жителей Ирландии (en-ie), Канады (en-ca) и Австралии (en-au), создайте общую версию страницы (en) для пользователей из США, Великобритании и других регионов, где также говорят на английском. При желании вы можете использовать в качестве такой общей версии одну из страниц с кодом определенного региона.
  • Если страницы не ссылаются друг на друга, теги будут игнорироваться. Это сделано для того, чтобы на других сайтах нельзя было добавить тег, указывающий, что страница является вариантом одной из ваших страниц.
  • Если указание всех двусторонних ссылок для каждого языка занимает много времени, можно опустить некоторые языки на некоторых страницах: Google в любом случае обработает страницы, ссылающиеся друг на друга. Однако новые языковые версии страниц, за счет которых вы собираетесь расширить аудиторию, должны взаимно ссылаться на основные или исходные варианты. Например, если ваш сайт изначально был создан на французском языке в домене .fr, то важнее настроить двунаправленную переадресацию между основным доменом .fr и новыми страницами, предназначенными для мексиканцев (.mx) и испанцев (.es), а не между этими испаноязычными страницами (.mx и .es).
  • Также можно создать резервную страницу для языков, которых нет на вашем сайте, например страницу для выбора языка/страны или главную страницу с автоматической переадресацией. Для этого используйте значение x-default:
    <link rel="alternate" href="http://example.com/" hreflang="x-default" />

Теги HTML

Добавьте элементы <link rel="alternate" hreflang="lang_code"... > в заголовок своей страницы, чтобы сообщить Google обо всех локализованных вариантах страницы. Это удобно, если у вас нет файла Sitemap или возможности указать HTTP-заголовки ответа для сайта.

В элемент <head> каждого варианта страницы нужно добавить набор элементов <link> со ссылками на все версии страницы, включая ее саму. Во всех версиях страницы используется один и тот же набор ссылок. Подробнее…

Каждый элемент link должен иметь следующую структуру:

<link rel="alternate" hreflang="lang_code" href="url_of_page" />
Синтаксис
lang_code Поддерживаемый код языка и региона, соответствующий версии страницы, или тег x-default для языков, которые не указаны в атрибуте hreflang страницы.
url_of_page Полный URL версии страницы для указанного языка и региона.

Пример

Компания Example Widgets, Inc владеет веб-сайтом, который предназначен для пользователей из Великобритании, Германии и США. Перечисленные ниже страницы содержат в целом одинаковый контент с некоторыми различиями, зависящими от целевых регионов.

URL с региональными различиями
http://en.example.com/page.html Главная страница на английском языке с информацией о тарифах на международную доставку из США.
http://en-gb.example.com/page.html Страница для клиентов из Великобритании с ценами в фунтах стерлингов.
http://en-us.example.com/page.html Страница для клиентов из США с ценами в долларах США.
http://de.example.com/page.html Главная страница на немецком языке.
http://www.example.com/ Страница по умолчанию, не предназначенная для определенного языка или региона. Здесь пользователи могут выбрать свой язык и страну.

Обратите внимание, что Google не определяет целевую аудиторию страниц по субдоменам в URL (en, en-gb, en-us, de) – вы должны указать ее явно.

Ниже приведен фрагмент кода HTML, который нужно было бы вставить в раздел <head> всех перечисленных в таблице выше страниц. Благодаря этому фрагменту у пользователей из США и Великобритании, прочих англоговорящих пользователей и тех, кто говорит по-немецки, открывались бы подходящие локализованные страницы, а у всех остальных – страница по умолчанию. В результатах поиска будет показываться страница, соответствующая настройкам браузера пользователя.

<head>
 <title>Widgets, Inc</title>
  <link rel="alternate" hreflang="en-gb"
       href="http://en-gb.example.com/page.html" />
  <link rel="alternate" hreflang="en-us"
       href="http://en-us.example.com/page.html" />
  <link rel="alternate" hreflang="en"
       href="http://en.example.com/page.html" />
  <link rel="alternate" hreflang="de"
       href="http://de.example.com/page.html" />
 <link rel="alternate" hreflang="x-default"
       href="http://www.example.com/" />
</head>

Заголовки HTTP

Чтобы сообщить Google о версиях страницы на других языках и для других регионов, можно использовать заголовок HTTP в ответах на запрос GET страницы. Такой вариант особенно подходит для файлов, формат которых отличается от HTML (например, PDF).

Заголовок должен иметь следующий синтаксис:

Link: <url1>; rel="alternate"; hreflang="lang_code_1", <url2>; rel="alternate"; hreflang="lang_code_2", ...
Синтаксис
<url_x> Полный URL альтернативной версии страницы, соответствующей региональным настройкам, указанным в связанном атрибуте hreflang. URL должен быть заключен в угловые скобки: < и >. Пример <https://www.google.com>
lang_code_x Поддерживаемый код языка и региона, соответствующий версии страницы, или значение x-default для языков, которые не указаны отдельно в атрибутах hreflang на этой странице.

Набор значений <url>, rel="alternate" и hreflang необходимо указать для каждой версии страницы, включая запрашиваемую. Наборы значений разделяются запятыми, как показано в примере ниже. Заголовок Link: одинаков независимо от версии страницы. Подробнее…

Пример

Ниже приведен пример заголовка Link:, возвращаемого сайтом, где есть три версии PDF-файла: для англоговорящих посетителей, для швейцарцев, говорящих на немецком, и немецкая версия для пользователей из других стран.

Link: <http://example.com/file.pdf>; rel="alternate"; hreflang="en",
      <http://de-ch.example.com/file.pdf>; rel="alternate"; hreflang="de-ch",
      <http://de.example.com/file.pdf>; rel="alternate"; hreflang="de"

Файл Sitemap

Сообщить Google о том, что на вашем сайте есть версии для разных языков или стран, можно с помощью файла Sitemap. Для этого добавьте в него элемент <loc>, указав в нем URL страницы, а в дочерних тегах <xhtml:link> – ссылки на все ее языковые и региональные варианты, включая саму страницу. Таким образом, если у вас есть три варианта страницы, в файле Sitemap будет три элемента с тремя идентичными дочерними тегами.

Правила в отношении файлов Sitemap

  • Указывайте пространство имен xhtml следующим образом:
    xmlns:xhtml="http://www.w3.org/1999/xhtml"
  • Создавайте отдельный элемент <url> для каждого URL.
  • В каждом элементе <url> должен быть дочерний элемент <loc>, в котором указывается URL страницы.
  • В каждом элементе <url> должен быть дочерний элемент <xhtml:link rel="alternate" hreflang="supported_language-code">, в котором перечисляются все варианты страницы, включая текущую. Порядок дочерних элементов <xhtml:link> не имеет значения, но вы можете придерживаться определенной последовательности, чтобы было проще отслеживать ошибки.
  • Подробнее…

Пример

Ниже приведен пример для страницы на английском языке для англоговорящих пользователей со всего мира, имеющей два варианта для говорящих на немецком: для посетителей из Швейцарии и из других стран. Вот все URL, которые должны быть на сайте:

  • www.example.com/english/page.html – страница для англоговорящих пользователей.
  • www.example.com/deutsch/page.html – страница для пользователей, говорящих на немецком.
  • www.example.com/schweiz-deutsch/page.html – страница для пользователей, говорящих на немецком, из Швейцарии.

Ниже приведен файл Sitemap для этих трех страниц.

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
  xmlns:xhtml="http://www.w3.org/1999/xhtml">
  <url>
    <loc>http://www.example.com/english/page.html</loc>
    <xhtml:link
               rel="alternate"
               hreflang="de"
               href="http://www.example.com/deutsch/page.html"/>
    <xhtml:link
               rel="alternate"
               hreflang="de-ch"
               href="http://www.example.com/schweiz-deutsch/page.html"/>
    <xhtml:link
               rel="alternate"
               hreflang="en"
               href="http://www.example.com/english/page.html"/>
  </url>
  <url>
    <loc>http://www.example.com/deutsch/page.html</loc>
    <xhtml:link
               rel="alternate"
               hreflang="de"
               href="http://www.example.com/deutsch/page.html"/>
    <xhtml:link
               rel="alternate"
               hreflang="de-ch"
               href="http://www.example.com/schweiz-deutsch/page.html"/>
    <xhtml:link
               rel="alternate"
               hreflang="en"
               href="http://www.example.com/english/page.html"/>
  </url>
  <url>
    <loc>http://www.example.com/schweiz-deutsch/page.html</loc>
    <xhtml:link
               rel="alternate"
               hreflang="de"
               href="http://www.example.com/deutsch/page.html"/>
    <xhtml:link
               rel="alternate"
               hreflang="de-ch"
               href="http://www.example.com/schweiz-deutsch/page.html"/>
    <xhtml:link
               rel="alternate"
               hreflang="en"
               href="http://www.example.com/english/page.html"/>
  </url>
</urlset>

Поддерживаемые коды языков и регионов

Атрибут hreflang указывает на язык (в формате ISO 639-1) и, при необходимости, на регион (в формате ISO 3166-1 Alpha 2), к которому относится альтернативная страница. Если указан только один код, он будет считаться кодом языка. Язык не обязательно должен относиться к определенному региону. Пример:

  • de – контент на немецком языке для любого региона;
  • en-GB – контент на английском языке для пользователей из Великобритании;
  • de-ES – контент на немецком языке для пользователей из Испании.

Если в языке несколько систем письма, то нужный вариант выбирается с учетом кода страны. Например, для пользователей из Тайваня с кодом zh-TW будет автоматически задан традиционный китайский язык. Набор символов также можно задать явным образом с помощью кодов ISO 15924, как показано ниже:

  • zh-Hant – китайский (традиционный);
  • zh-Hans – китайский (упрощенный).

Кроме того, можно указать комбинацию языка и региона. Например, zh-Hans-TW означает упрощенный китайский для пользователей из Тайваня.

Выбор страницы по умолчанию для пользователей, язык которых не соответствует настройкам страницы, с помощью тега x-default

Зарезервированное значение hreflang="x-default" применяется, когда язык или региональные настройки страницы не совпадают с настройками браузера. Оно не является обязательным, но мы рекомендуем его использовать. Например, тег x-default можно добавить, если пользователю предлагается выбрать свою страну на карте на главной странице сайта.

Указывать код языка для значения x-default не обязательно. Страница будет доступна пользователям, установившим в настройках браузера не тот язык, который задан на вашем сайте. Поэтому язык в настройках страницы не имеет значения.

Устранение неполадок

Распространенные ошибки

Ниже перечислены наиболее часто встречающиеся ошибки в применении атрибута hreflang.

  • Нет обратных ссылок. Если страница X содержит ссылку на страницу Y, то на странице Y должна быть обратная ссылка. В противном случае атрибуты hreflang могут быть не прочтены или неправильно интерпретированы. Предположим, на странице https://de.example.com/index.html есть следующая ссылка:
    <link rel="alternate" hreflang="en-gb" href="http://en-gb.example.com/index.html" />
    Тогда на страницу http://en-gb.example.com/index.html нужно добавить обратную ссылку с атрибутом hreflang, которая будет указывать на версию контента на немецком языке (de):
    <link rel="alternate" hreflang="de" href="http://de.example.com/index.html" />
  • Неверно заданы языковые коды. Все языковые коды должны указывать на язык (в формате ISO 639-1) и, при необходимости, на регион (в формате ISO 3166-1 Alpha 2) альтернативного URL. Значения только с регионами недействительны.

Устранение неполадок с атрибутом hreflang

Наиболее распространенные неполадки можно устранить с помощью отчета "Таргетинг по странам и языкам". Подождите, пока Google просканирует ваши страницы, а затем откройте вкладку Язык этого отчета, чтобы узнать, есть ли в них ошибки.

Также вы можете воспользоваться сторонними инструментами. Вот некоторые их них (Google не проверяет и не обеспечивает их работоспособность).