Оптимизация мультиязычных и мультирегиональных сайтов

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

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

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

Обо мне

Александр Крыжановский, в SEO с 2011 года. Консультирую, помогаю бизнесам продвигать сайты, руковожу командами, выстраиваю и автоматизирую SEO-процессы. Работаю со стартапами, небольшими и крупными международными компаниями. ГЕО – бурж, СНГ, Россия.

Телеграм: @alexkrads

Когда сайту нужны региональные версии и версии на разных языках

Сразу определимся: мультиязычность и мультирегиональность – разные понятия. На мультиязычном сайте публикуется контент на разных языках. Мультирегиональный может содержать контент на одном языке, но ориентированный на пользователей из разных стран. Сайт может быть одновременно и мультиязычным, и мультирегиональным.

При этом нет никаких ограничений на комбинации страна-язык. То есть страницы на английском могут таргетироваться, например, на пользователей из Великобритании, Италии и России. Подробнее – в справке Google.

Сайт может быть мультиязычным даже в рамках одной страны. Например, в Канаде население разговаривает на английском и французском, и оба языка являются официальными, а в Бельгии сразу три официальных языка: нидерландский, французский и немецкий. В Армении, несмотря на то что армянский является официальным, а русский – нет, русским владеет 70% населения.

При продвижении сайта в таких регионах следует ориентироваться на распространенные в них языки. Со стороны SEO есть 3 возможных варианта:

  • Таргетинг страниц (или сайта целиком) на пользователей, разговаривающих на разных языках;
  • Таргетинг на аудиторию определённой страны;
  • Таргетинг на пользователей из определённой страны, говорящих на определенном языке.

Разные методы оптимизации позволяют продвигать сайт как в определенных странах (мультирегиональность), под определенные языки (мультиязычность), так и сочетать одновременно мультирегиональность с мультиязычностью.

Перевод контента и дубликаты страниц

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

Например, на страницах для США и Великобритании контент обычно идентичный или почти идентичный, то же самое справедливо для страниц на французском для Франции и Канады.

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

Такие ситуации возникают довольно часто. SEO специалисты могут даже не замечать проблем, поскольку они сложно детектируются софтом для технических аудитов. Например, Screaming Frog найдет страницы без атрибутов hreflang или с ошибками в них, но не покажет страницы, фактически не адаптированные под целевой язык. Посетителям тяжело пользоваться таким сайтом, так как нет перевода для промежуточных страниц.

Пример

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

При создании и SEO оптимизации таких сайтов важно проверить целостность их структуры для каждого региона/языка. Каждая версия такого сайта должна иметь свою главную страницу (она может быть в папке с указанием языка, для простоты все равно будем считать ее главной), свои страницы разделов, категорий, тегов, товаров и т.д.

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

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

Внедрение атрибутов Hreflang

Атрибуты Hreflang – универсальный метод оптимизации мультирегиональных и/или мультиязычных сайтов, именно его рекомендует Google. Эти атрибуты сообщают поисковикам, какую версию страницы показывать посетителю из конкретного региона или для конкретного языка. Яндекс также поддерживает hreflang для различных регионов внутри России, но примеров внедрения я ни разу не видел.

Тут важно учесть, что атрибуты hreflang – не директива, а сигнал для Google. Он работает совместно с другими факторами ранжирования, поэтому часто даже с использованием hreflang в некоторых регионах ранжируются страницы, адаптированные для других регионов.

Внедрить атрибут hreflang можно тремя способами:

  • HTML теги с атрибутом hreflang
  • HTTP заголовки
  • Файлы sitemap.xml

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

  • lang_code – языковой и региональный код языка и страны;
  • url – URL адрес языковой/региональной версии текущей страницы.

lang_code обязательно должен содержать язык, опционально в нем можно указать язык и страну. Только страну указать нельзя. Если в языке используется несколько систем письма, дополнительно указывается набор символов – например, для китайского. Наборы символов поддерживает только Google.

Язык и страна могут быть указаны только те, которые поддерживаются поисковой системой. В таблице ниже собраны стандарты ISO, поддерживаемые Яндекс и Google.

Оптимизация мультиязычных и мультирегиональных сайтов

Яндекс поддерживает не все языки стандарта ISO 639-1. Список поддерживаемых приведен в справке Яндекса.

url должен содержать URL-адрес версии, соответствующей языку/региону. Для одного url указывается только один lang-code. Если создаются страницы для определенного языка с указанием региона, Google рекомендует делать еще и общую страницу для этого языка без указания страны. Ссылку на нее включают в url, как адрес канонической страницы. Для неканонических hreflang указывать не рекомендуется.

На сайте могут быть страницы, которые не переведены, но рассчитаны на аудиторию из разных стран. Например, страницы на английском для США и Канады. В таком случае тоже рекомендуется вводить hreflang.

Оптимизация мультиязычных и мультирегиональных сайтов

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

Важно! Страницы всегда должны ссылаться друг на друга. Каждая страница должна содержать в hreflang URL всех других языковых/региональных версий, а также ссылку на саму себя.

Оптимизация мультиязычных и мультирегиональных сайтов

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

Согласно справке Google

Алгоритмы Яндекс и Google могут определять целевой язык и регион страниц вне зависимости от того, используются теги hreflang или нет, но все-таки рекомендуется указывать их явно.

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

Все способы внедрения атрибутов hreflang

Интегрировать hreflang на сайт можно тремя способами. Для Google не имеет значения, какой вариант вы использовали – робот будет обрабатывать теги с одинаковой эффективностью. Поэтому используйте способ, который наиболее удобен для вас.

1. HTML теги с атрибутами hreflang

Чаще всего это самый удобный вариант.

Теги добавляются внутрь раздела (Google рекомендует добавлять в начало). Выглядят следующим образом:

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

Для языков, перевод на которые отсутствует на сайте, рекомендуется использовать “x-default" в качестве значения lang_code. При этом в url может быть указан адрес страницы с языком по умолчанию (например, английской версии), главной страницы или страницы с выбором языка. URL, указанный в x-default, может совпадать с URL для языковых/региональных версий страниц с указанным lang_code.

Примеры внедрения

Пример 1

Предположим, на сайте есть 4 страницы на английском для США, на английском для Великобритании, на немецком и французском языках с адресами:

  • https://site.com/page-name
  • https://site.com/en-gb/page-name
  • https://site.com/de/page-name
  • https://site.com/fr/page-name

При этом страница, не содержащая подкаталогов с указанием страны и/или языка предназначена для пользователей из США.

Тогда, в разделе head в html коде каждой из этих страниц должно быть указано следующее:

<link rel="alternate" hreflang="en-us" href="https://site.com/page-name" /> <link rel="alternate" hreflang="en-gb" href="https://site.com/en-gb/page-name" /> <link rel="alternate" hreflang="de" href="https://site.com/de/page-name" /> <link rel="alternate" hreflang="fr" href="https://site.com/fr/page-name" />

Пример 2

Допустим, что на сайте из Примера 1 страница на английском пользователей из США также используется для всех пользователей, перевод на язык которых отсутствует.

В таком случает в разделе head должно быть представлено:

<link rel="alternate" hreflang="en-us" href="https://site.com/page-name" /> <link rel="alternate" hreflang="en-gb" href="https://site.com/en-gb/page-name" /> <link rel="alternate" hreflang="de" href="https://site.com/de/page-name" /> <link rel="alternate" hreflang="fr" href="https://site.com/fr/page-name" /> <link rel="alternate" hreflang="x-default" href="https://site.com/page-name" />

2. HTTP заголовки

HTTP заголовки позволяют внедрить hreflang для не HTML контента: например, для pdf-файлов. При этом их также можно использовать для HTML-страниц. Не запрещается для обычных страниц использовать HTML-теги hreflang, а для файлов – HTTP заголовки.

Согласно справке Google, HTTP-заголовки должны иметь вид

Link: <url1>; rel="alternate"; hreflang="lang_code_1", <url2>; rel="alternate"; hreflang="lang_code_2", …

Атрибуты hreflang в HTTP-заголовках не поддерживаются Яндекс.

Пример внедрения hreflang в HTTP заголовках

Предположим, что нам требуется внедрить hreflang для pdf файлов на сайте, который, так же как и в примере для HTML заголовков, содержит несколько языковых версий. Каждый pdf файл на сайте доступен по представленным ниже урлам:

  • https://site.com/file.pdf

  • https://site.com/en-gb/file.pdf

  • https://site.com/de/file.pdf

  • https://site.com/fr/file.pdf

Внедрение для Apache в файле htaccess

RewriteRule ([^/]+)\.pdf$ - [E=FILENAME:$1] <FilesMatch "\.pdf$"> SetEnvIf Request_URI "([^/]+)\.pdf$" FILENAME=$1 Header add Link "<https://site.com/%{ENV:FILENAME}>; rel=\"alternate\"; hreflang=\"en-us\"", "<https://site.com/en-gb/%{ENV:FILENAME}>; rel=\"alternate\"; hreflang=\"en-gb\"", "<https://site.com/de/%{ENV:FILENAME}>; rel=\"alternate\"; hreflang=\"de\"", "<https://site.com/fr/%{ENV:FILENAME}>; rel=\"alternate\"; hreflang=\"fr\"", "<https://site.com/%{ENV:FILENAME}>; rel=\"alternate\"; hreflang=\"x-default\"" </FilesMatch>

Внедрение для Nginx

location ~ ^/(?<filename>[^/]+)\.pdf$ { add_header Link "<https://site.com/$filename.pdf>; rel=\"alternate\"; hreflang=\"en-us\"", "<https://site.com/en-gb/$filename.pdf>; rel=\"alternate\"; hreflang=\"en-gb\"", "<https://site.com/de/$filename.pdf>; rel=\"alternate\"; hreflang=\"de\"", "<https://site.com/fr/$filename.pdf>; rel=\"alternate\"; hreflang=\"fr\"", "<https://site.com/$filename.pdf>; rel=\"alternate\"; hreflang=\"x-default""; }

3. Файл Sitemap

Можно использовать, как альтернативный вариант указания hreflangдля файлов, а также совместно с другими вариантами. Общий вид:

xmlns:xhtml="http://www.w3.org/1999/xhtml"> <url> <loc>page_url_1</loc> <xhtml:link rel="alternate" hreflang=" lang_code_1" href=" page_url_1"/> <xhtml:link rel="alternate" hreflang=" lang_code_2" href=" page_url_2"/> </url> <url> <loc>page_url_2</loc> <xhtml:link rel="alternate" hreflang=" lang_code_1" href=" page_url_1"/> <xhtml:link rel="alternate" hreflang=" lang_code_2" href=" page_url_2"/> </url>

Обратите внимание, что для каждого URL должны быть перечислены все версии страницы, включая этот же URL в качестве одной из них.

В справке Google указана, на мой взгляд, более подробная информация, поэтому дублировать ее нет смысла.

Атрибуты hreflang в файлах XML Sitemap не поддерживаются Яндекс. Поддержку индексирования языковых версий страниц через Sitemap Яндекс остановил, пруфы по этой ссылке.

Пример внедрения hreflang через файлы Sitemap.xml

Содержимое файла sitemap.xml для набора url, рассмотренного в примере для HTTP заголовков:

<?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>https://site.com/page-name</loc> <xhtml:link rel="alternate" hreflang="en-us" href="https://site.com/page-name"/> <xhtml:link rel="alternate" hreflang="en-gb" href="https://site.com/en-gb/page-name"/> <xhtml:link rel="alternate" hreflang="de" href="https://site.com/de/page-name"/> <xhtml:link rel="alternate" hreflang="fr" href="https://site.com/fr/page-name"/> <xhtml:link rel="alternate" hreflang="x-default" href="https://site.com/page-name"/> </url> <url> <loc>https://site.com/en-gb/page-name</loc> <xhtml:link rel="alternate" hreflang="en-us" href="https://site.com/page-name"/> <xhtml:link rel="alternate" hreflang="en-gb" href="https://site.com/en-gb/page-name"/> <xhtml:link rel="alternate" hreflang="de" href="https://site.com/de/page-name"/> <xhtml:link rel="alternate" hreflang="fr" href="https://site.com/fr/page-name"/> <xhtml:link rel="alternate" hreflang="x-default" href="https://site.com/page-name"/> </url> <url> <loc>https://site.com/de/page-name</loc> <xhtml:link rel="alternate" hreflang="en-us" href="https://site.com/page-name"/> <xhtml:link rel="alternate" hreflang="en-gb" href="https://site.com/en-gb/page-name"/> <xhtml:link rel="alternate" hreflang="de" href="https://site.com/de/page-name"/> <xhtml:link rel="alternate" hreflang="fr" href="https://site.com/fr/page-name"/> <xhtml:link rel="alternate" hreflang="x-default" href="https://site.com/page-name"/> </url> <url> <loc>https://site.com/fr/page-name</loc> <xhtml:link rel="alternate" hreflang="en-us" href="https://site.com/page-name"/> <xhtml:link rel="alternate" hreflang="en-gb" href="https://site.com/en-gb/page-name"/> <xhtml:link rel="alternate" hreflang="de" href="https://site.com/de/page-name"/> <xhtml:link rel="alternate" hreflang="fr" href="https://site.com/fr/page-name"/> <xhtml:link rel="alternate" hreflang="x-default" href="https://site.com/page-name"/> </url> </urlset>

В таблице ниже собрал все варианты внедрения атрибутов hreflang и информацию об их поддержке со стороны Яндекс и Google.

Оптимизация мультиязычных и мультирегиональных сайтов

Как видно из таблицы, единственный вариант, который одновременно поддерживают и Google, и Яндекс – это HTML теги с атрибутами hreflang.

Частые ошибки при внедрении hreflang

Собрал 10 самых распространенных ошибок при интеграции hreflang, из-за которых страницы могут некорректно отображаться для релевантной аудитории. Это:

  • Отсутствие тегов на всех версиях одной и той же страницы.

  • Отсутствие тега с url ведущим со страницы на саму себя.

  • «Битые» ссылки на языковые/региональные версии.

  • Ссылки на языковые/региональные версии, работающие через редирект.

  • Неправильно указанные коды языка.

  • Атрибут hreflang содержит только страну и не содержит язык.

  • В атрибуте hreflang указатели страны и языка расположены в обратном порядке: сначала страна, потом язык.

  • Hreflang содержит ссылки на неканонические версии страниц.

  • Отсутствует X-Default. Не является критичной ошибкой.

  • Для одного и того же hreflang (с одним и тем же кодом языка или кодом языка и региона) указано более одного url.

Неиспользование hreflang в случаях, когда нет версии для какого-либо языка или региона, не является ошибкой. Другими словами, для разных языковых и региональных версий сайта могут быть разные наборы страниц. Более того, даже структура сайтов может различаться, но администрирование и управление такими сайтами может быть очень сложным.

Тонкости внедрения мультирегиональности

Помимо геотаргетинга с атрибутами hreflang, можно указать целевой регион в URL. Такой вид геотаргетинга для мультирегиональных сайтов можно внедрить такими способами:

  • Использование национального домена верхнего уровня (ccTLD).

  • Создание поддоменов gTLD домена.

    ru.site.com, ae.site.com, fr.site.com

  • Создание подкаталогов на gTLD домене. Например, site.com/ru/, site.com/ae/, site.com/fr/.

  • Добавление параметров в URL gTLD домена. Вариант с параметрами в URL хотя и допустим, но Google его не рекомендует.

Достоинства и недостатки каждого метода подробно описаны в справке Google.

gTLD (Generic Top Level Domain) – общий домен верхнего уровня, не относящийся к какой-либо стране.

ccTLD (Country Code Top Level Domain) – домен верхнего уровня с кодом страны. Список всех gTLD и ccTLD доменов можно найти по этой ссылке.

Если основной сайт находится на национальном домене – .ru, .fr, .ae и т.д., его региональные версии размещаются либо на других национальных доменах, соответствующих целевым странам, либо на поддоменах gTLD доменов, либо в каталогах на gTLD домене. ccTLD домены ассоциируются только с одной страной.

Для геотаргетинга поисковых систем может иметь значение слово, указанное в качестве названия поддомена или папки в URL. Об этом упоминал Джон Мюллер в видео English Google SEO office-hours from February 18, 2022 на 56:40.

We try to group URLs by clear patterns that we can recognize. And that’s, for example, by subdomain or by subdirectory. So, if you have the country in the subdirectory, in a higher place in the path, then it’s a lot easier for us to say everything under this path is for this country, everything under this other path is for another country.

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

При этом в справке Google указано следующее:

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

Таким образом информация несколько противоречивая, но на основе сложившейся практики и рекомендаций для hreflang можно предположить, что будет оптимальным называть подпапки и/или поддомены в соответствии с форматом ISO 3166-1 Alpha 2.

Другие сигналы

  • IP адрес сервера. Упомянут в справке Google, но является малозначимым сигналом.
  • Адреса и телефоны, указанные на сайте. Могут быть извлечены при индексации контента. Локация может быть привязана как в рамках домена, так и в рамках отдельных страниц. Технические подробности можно узнать по ссылке.
  • Язык и валюта, определяемые алгоритмами Google автоматически.
  • Внешние ссылки.
  • Данные, указанные в Google My Business. Для Яндекс – данные из Яндекс Справочника и Яндекс Вебмастера.

Настройка региона сайта через Google Search Console

Многие русскоязычные источники содержат информацию о том, что в Google Search Console (GSC) можно указать целевой регион (страну) для всего сайта, его поддомена или папки. То же самое упоминается в видео в справке Google.

Эта информация является устаревшей, сейчас данный функционал в GSC отсутствует. Пруфы вот здесь.

Как внедрить мультиязычность

  • Рекомендуется переводить слова в URL страниц на язык, соответствующий контенту на них, однако требование не является обязательным. URL должен быть в кодировке UTF-8.

  • Для разных версий можно использовать отдельные домены, поддомены или папки (в URL). В большинстве случаев предпочтительным вариантом будут папки, поскольку технически все версии будут размещены на одном домене, а не на разных. Таким образом удастся избежать проблем с разными ссылочными весами для поддоменов.

  • Внедрить селектор языка.

  • Внедрить атрибуты hreflang. Hreflang связывает все языковые версии страниц друг с другом. Его следует всегда указывать на страницах, если для них есть версия на другом языке.

Что делать не рекомендуется

1. Использовать для мультиязычной/мультирегиональной локализации, на поддоменах или папках домены с кодом страны (ccTLD).

Например, если у сайта предусмотрены версии для пользователей из России, Италии и Франции, не стоит размещать его на доменах в зонах «ru», «it» или «fr». Вместо этого предпочтительнее, например, «com». Подробнее о доменах, которые Google относит к gTLD и ccTLD, можно почитать в справке Google.

Однако в приведенном примере можно использовать разные домены – например, site.ru, site.it, site.fr.

2. Использовать редиректы на языковые/региональные версии страниц, срабатывающие на основе IP адреса посетителей.

Не показывайте различные варианты контента в зависимости от IP-адреса посетителя. Определить таким образом местоположение нелегко, и этот метод неточен. Кроме того, это может затруднить сканирование вариантов вашего сайта для Google. Большинство роботов Google запускается из США, и мы не указываем другие местоположения, чтобы обнаружить разные версии сайта. Используйте один из описанных здесь методов (аннотации hreflang, альтернативные URL и прямые ссылки).

Справка Google

Хотя боты Google по умолчанию отправляют запросы с американских IP адресов, они также могут осуществлять обход и индексацию сайта с IP адресов, относящихся к другим странам. Если на сайте все же используются редиректы на основе IP адресов пользователей, можно определять ботов по User-Agent и отдавать им контент для всех языковых и региональных версий страниц. Подробнее о сканировании таких страниц можно почитать по этой ссылке.

При этом следует помнить, что речь идет именно о редиректах. Замена контента, доступного по одному и тому же URL в зависимости от региона посетителя, недопустима.

Яндекс в своей справке также упоминает проблему редиректов и предлагает 2 варианта решения, которые соответствуют аналогичным рекомендациям от Google:

  • Использовать редиректы для пользователей из разных регионов, но в таком случае определять ботов Яндекса по User Agent и не использовать редиректы для них. Иначе будут проиндексированы страницы, являющиеся целями редиректов (те, на которые идет перенаправление).

  • Не перенаправлять пользователей на соответствующие их локации версии страниц, а вместо этого использовать переключатель языка или региона.

3. Использовать URL c параметрами, содержащими язык и регион.

4. Размещать автоматически переведенный контент для версий на разных языках.

Техническая SEO-оптимизация в целом и внедрение hreflang в частности – технически сложная задача, требующая внимания ко множеству деталей. Часто владельцы мультиязычных/мультирегиональных сайтов не уделяют этому атрибуту достаточного внимания либо внедряют его с ошибками, что приводит к проблемам индексации и ранжирования сайта в поисковиках.

Если вам нужно комплексное продвижение в Рунете или за рубежом, консультация по настройке мультиязычности или другим вопросам SEO-оптимизации, пишите в Телеграм на прямую или подписывайтесь на наш новый канал.

55
2 комментария

Грамотно настроенные атрибуты Hreflang и перевод контента помогают сделать сайт доступным для пользователей из разных стран и языковых групп, что в итоге способствует увеличению трафика и конверсии, что же это если не прелесть ?)

Ключевой момент в том, что все эти конфиги именно помогут сделать доступным. Если вы переведете контент, настроите hreflang и другие параметры, то это не гарантирует ранжирование в каждой отдельно взятой стране или на каждом языке, для которых на сайте есть контент. Более того, при наличии конкуренции нужна комплексная работа по продвижению включая on-page оптимизацию и работу со ссылочным для каждой версии (есть исключения). То есть вот все эти рекомендации – это необходимый конфиг, который не является “серебряной пулей” для получения топов.