Поисковая система Google рекомендует использовать для разных языковых версий страницы, разные URL. Помимо этого требуется применять атрибут hreflang для более точного определения нужной версии страницы, которую необходимо показать в SERP поисковых систем.
Есть несколько вариантов, как можно реализовать мультиязычность сайта:
- Каждая языковая версия сайта на отдельном субдомене. Например: ru.site.com, en.site.com
- Каждая языковая версия сайта на отдельном домене. Например: site.de, site.ru.
- Каждая языковая версия сайта в отдельном подкаталоге. Например: site.com/en/, site.com/ru/.
Крайне не рекомендуется использовать анализ IP-адресов для адаптации контента.
Методы указания альтернативных страниц:
1. Атрибут hreflang
Hreflang – атрибут, который указывает поисковым системам, какую версию страницы мультиязычного сайта, нужно показывать пользователю. Атрибут hreflang может и должен указываться для любой страницы у которой есть больше одной языковой версии.
Поисковые системы рекомендуют использовать атрибут в случаях:
- Каждая версия страницы — полный и точный перевод страницы на основном языке сайта.
- Версии страницы на одном языке, но различаются в мелких деталях. Например различается цена товара, для разных регионов.
- Версии страницы отличаются только языком шаблона. Например переведены только элементы навигации.
- Язык содержимого страниц определяется настройками пользователя (заголовок Accept-Language, IP-адрес), или на страницах есть селектор для выбора языка.
Использование:
Каждая версия страницы должна содержать информацию о всех ее альтернативных версиях, включая её саму. Для этого в элемент head нужно добавить элемент link, имеющий следующий формат:
<link rel="alternate" hreflang="lang_code" href="url" />
Lang_code в Google и Яндекс, нужно использовать в формате ISO 639-1 для языка и в формате ISO 3166-1 Alpha 2 для региона или ISO 3166-2:RU (для регионов России).
Правила написания:
Язык запроса в поисковой системе — Для пользователей из страны в которой делают поисковой запрос:
pt-br | Португальский — Бразилия
ru-ua | Русский — Украина
uk-ua | Украинский — Украина
Версии страницы могут быть расположены на разных поддоменах и доменах.
Атрибуты должны подтверждаться со страниц, на которые они указывают. Если страница А ссылается на страницу В, страница В должна ссылаться на страницу А. В противном случае атрибут может неправильно интерпретироваться
Пример использования: У страницы http://site.com/ru/company/, должны быть указанны все версии на других языках, включая ее саму:
<link rel="alternate" hreflang="ru" href="http://site.com/ru/company/" />
<link rel="alternate" hreflang="en-us" href="http://site.com/en/company/" />
<link rel="alternate" hreflang="de" href="http://site.com/de/company/" />
Страницы с автоматическим определением языка
Если на сайте есть страницы, язык которых определяется настройками пользователя (Accept-Language, IP), или содержащие селектор для выбора языка, их следует указать вместе с жестко локализованными документами. Допустим, главная страница сайта example.com из примера выше меняет язык в зависимости от IP-адреса пользователя. Это следует отразить, присвоив атрибуту hreflang значение x-default:
<link rel="alternate" hreflang="x-default" href="http://example.com/" />
<link rel="alternate" hreflang="ru" href="http://example.com/o-kompanii/" />
<link rel="alternate" hreflang="en-us" href="http://example.com/company/about/" />
<link rel="alternate" hreflang="tr-tr" href="http://example.com/firma-hakkinda" />
Подробнее: https://developers.google.com/search/blog/2023/05/x-default?hl=ru
Заголовки HTTP
Такой вариант особенно подходит для файлов, формат которых отличается от HTML (например, PDF).
Заголовок должен иметь следующий синтаксис: Link: <URL 1>; rel=»alternate»; hreflang=»код языка 1″, <URL 2>; rel=»alternate»; hreflang=»код языка 2″, …
Пример использования:
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 для локализованных страниц
Список необходимых тегов в sitemap.xml, для мультиязычного сайта:
| url | Да | Родительский тег для каждой страницы сайта |
| loc | Да | Адрес страницы |
| xhtml:link | Да | Ссылки на все языковые и региональные версии страницы, включая основную |
Правила ПС Google для составления sitemap.xml:
- Указывайте пространство имен xhtml следующим образом:
xmlns:xhtml=»http://www.w3.org/1999/xhtml» - Создавайте отдельный элемент <url> для каждого URL.
- В каждом элементе <URL> должен быть дочерний элемент <loc>, в котором указывается URL страницы.
- В каждом элементе <URL> должен быть дочерний элемент <xhtml:link rel=»alternate» hreflang=»код языка»>, в котором перечисляются все варианты страницы, включая текущую. Порядок дочерних элементов <xhtml:link> не имеет значения, но вы можете придерживаться определенной последовательности, чтобы было проще отслеживать ошибки.
Пример карты сайта:
<?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, а не связи этих испаноязычных страниц друг с другом.
- Также можно создать резервную страницу для языков, которых нет на вашем сайте, особенно для выбора языка/страны или главной страницы с автоматической переадресацией. Для этого используйте значение x-default:
<link rel="alternate" href="http://example.com/" hreflang="x-default" />
Документация:
- https://yandex.ru/support/webmaster/yandex-indexing/locale-pages.html
- https://support.google.com/webmasters/answer/182192?hl=ru&ref_topic=2370587
- https://support.google.com/webmasters/answer/189077?hl=ru&ref_topic=2370587
Инструменты
- Инструмент для генерации hreflang
- Инструмент анализа тегов hreflang — https://technicalseo.com/tools/hreflang/
- Программа анализа тегов hreflang — Screaming Frog SEO Spider.

