Укажите Google локализованные версии своей страницы

Как использовать атрибут hreflang или файлов Sitemap для страниц на других языках и для других регионов

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

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

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

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

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

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

Теги HTML

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

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

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

<link rel="alternate" hreflang="lang_code" href="url_of_page" />

lang_code
Стандартный код языка и региона, на которые настроен таргетинг страницы или тег x-default для языков, которые не указаны в атрибуте hreflang страницы.
url_of_page
Полный URL версии этой страницы для указанного языка и региона.
Теги <link> следует добавлять в начало элемента <head>. В любом случае они должны находиться в правильно отформатированном разделе <head> или перед любыми элементами, которые могут привести к преждевременному закрытию этого раздела (например, перед тегом <p> или пикселем отслеживания). Если у вас есть сомнения, вставьте код страницы в инструмент HTML Validator: он покажет, находятся ли теги link внутри элемента <head>.

Пример

Компания 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="стандартный_код_языка">, в котором указаны все альтернативные и основная версия страницы.  Порядок дочерних элементов <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>

Рекомендации для всех методов

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

Стандартные коды языков и регионов

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

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

Не указывайте код страны. Google не может автоматически определить язык по коду страны. Используйте код языка  и добавляйте после него код страны, чтобы открыть доступ к странице только для отдельного региона.  Примеры:

  • be – содержание на белорусском языке для любого региона (не бельгийский французский);
  • nl-be – содержание на нидерландском для пользователей из Бельгии;
  • fr-be – содержание на французском для пользователей из Бельгии. 

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

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

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

Используйте тег x-default на случай отсутствия подходящего языка

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

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

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

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

  • Нет обратных ссылок. Если страница X ссылается на страницу Y, то вторая страница должна содержать обратную ссылку на первую. В противном случае атрибуты могут быть не прочтены или неправильно интерпретированы.
  • Неверные языковые коды. Все языковые коды должны указывать на язык (в формате ISO 639-1) и, при необходимости, регион (в формате ISO 3166-1 Alpha 2) альтернативного URL. Нельзя указывать только регион.

Отладка ошибок в атрибуте hreflang

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

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

Была ли эта статья полезна?
Как можно улучшить эту статью?