- PVSM.RU - https://www.pvsm.ru -

SEO многоязычного сайта без географической привязки под Google

Введение

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

Мой опыт основывается на продвижении сайта для экспатов и путешественников со всего мира, контентные страницы которого формируются из базы данных. Сайт с миллионами страниц генерированного из базы данных контента.

Многоязычность и формирование URL

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

Есть четыре варианта как это можно сделать:

1- Каждый язык на отдельном субдомене
Пример: de.example.com, ru.example.com

Преимущества — не выявлены.
Недостатки — неудобство администрирования.

2- Каждый язык на отдельном домене (Пример: example.de, example.ru)

Преимущества — более высокий CTR с поиска за счет «родной» пользователю доменной зоны (Пример: Немец скорее кликнет в выдаче на домен в зоне .de, чем на .com).
Недостатки — трудность работы с внешними ссылками, крайне неудобное администрирование.

3- Для каждого языка свои параметры в URL (Пример: example.com?leng=de, example.com?leng=ru)

Преимущества — не выявлены.
Недостатки — URL с параметрами хуже индексируются и участвуют в поиске.

4- Каждый язык в отдельном подкаталоге (Пример example.com/de/, example.com/ru/)

Преимущества — не выявлены.
Недостатки — не выявлены.

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

Атрибут hreflang — показываем Google на каком языке показывать страницу в выдаче

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

Пример:

<link rel="alternate" href="http://example.com/ru-au" hreflang="ru-au" />

пользователям, запрашивающим на русском языке из Австралии будет показываться версия example.com/ru-au [1]

<link rel="alternate" href="http://example.com/ru-gb" hreflang="ru-gb" />

пользователям, запрашивающим на русском языке из Великобритании будет показываться версия example.com/ru-gb [2]

<link rel="alternate" href="http://example.com/de-au" hreflang="de-au" />

пользователям, запрашивающим на немецком языке из Великобритании будет показываться версия example.com/de-au [3]

<link rel="alternate" href="http://example.com/de-gb" hreflang="de-gb" />

пользователям, запрашивающим на немецком языке из Великобритании будет показываться версия example.com/de-gb [4]

Проблема моего сайта заключалась в том, что любая языковая версия страницы может быть запрошена из любой географической точки. Например, русскоговорящий человек может запросить страницу из России, Австралии, Германии и любой другой точки мира.

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

Решение заключается в установке параметров атрибута hreflang без указания географии, то есть мы показываем Google только языковые версии страницы, без привязки к региону.

Пример:

<link rel="alternate" href="http://example.com/ru/" hreflang="ru" />

пользователям, запрашивающим на русском языке из любой точки мира будет показываться версия example.com/ru [5]

<link rel="alternate" href="http://example.com/de/" hreflang="de" />

пользователям, запрашивающим на немецком языке из любой точки мира будет показываться версия example.com/de [6]

GeoShape — микроразметка географического положения объектов

Как оказалось, hreflang лишь частично решил проблему. Так как сайт формирует страницы из базы данных (а ее содержимое не переводится на разные языки) получилась ситуация что я имею миллионы страниц дублей по основному контенту, отличающихся лишь названием запрашиваемой страны в заголовке, а остальной контент часто абсолютно идентичен, либо незначительно отличался. Как пример, аналоги русских лекарств во Франции, Италии и вообще по Евросоюзу будут практически одни и те же. Получается что разные для пользователей страницы Италии и Франции, будут дублями в глазах Google.

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

На помощь мне пришла микроразметка. Столкнувшись с проблемой, я стал анализировать сайты, подобные моему, и на booking.com наткнулся на тег структурированных данных GeoShape. Они используют его для обозначения местоположения отелей.

Проверив валидность кода при применении GeoShape [7] в разметке лекарств [8] (сайт речь о котором в статье про аналоги лекарств) я установил все на сайт.

<div class="items-preparation full_match" itemprop="relatedDrug" itemscope itemtype = "http://schema.org/Drug">
        <span itemprop="subjectOf" itemscope itemtype="http://schema.org/GeoShape">
             <meta itemprop="addressCountry" content="AU">
        </span>...

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

Sitemap.xml — Улучшаем индексацию

Здесь все довольно просто, но также есть нюансы.

Простое

Размечаем все URL сайта с языковыми версиями в sitemap.xml с помощью атрибута hreflang в соответствии с рекомендациями гугла [9].


<url>
    <loc>http://www.example.com/english/</loc>
    <xhtml:link   
                 rel="alternate"
                 hreflang="de"
                 href="http://www.example.com/deutsch/"
                 />
    <xhtml:link 
                 rel="alternate"
                 hreflang="de-ch"
                 href="http://www.example.com/schweiz-deutsch/"
                 />
    <xhtml:link    
                 rel="alternate"
                 hreflang="en"
                 href="http://www.example.com/english/"
                 />
  </url>

Получится что hreflang дублируется и в страницы и в sitemap.xml.

Нюансы

  • При переводе на много языков, прямо пропорционально растет и количество страниц, поэтому стоит помнить что максимальное количество ссылок в одном файле sitemap.xml — 50 000, а сам файл должен весить не больше 10 МБ.
  • При наличии большого количества страниц рекомендуется разбить файлы sitemap по языкам и структуре сайта.

Ссылки:

Автор: RotgarSett

Источник [13]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/poiskovaya-optimizatsiya/276279

Ссылки в тексте:

[1] example.com/ru-au: http://example.com/ru-au

[2] example.com/ru-gb: http://example.com/ru-gb

[3] example.com/de-au: http://example.com/de-au

[4] example.com/de-gb: http://example.com/de-gb

[5] example.com/ru: http://example.com/ru/

[6] example.com/de: http://example.com/de/

[7] GeoShape: http://schema.org/GeoShape

[8] разметке лекарств: https://health-lifesci.schema.org/Drug

[9] рекомендациями гугла: https://support.google.com/webmasters/answer/2620865?hl=ru

[10] Формирование URL: https://support.google.com/webmasters/answer/182192?hl=ru#1

[11] Hreflang: https://support.google.com/webmasters/answer/189077?hl=ru&ref_topic=2370587

[12] Sitemap: https://www.sitemaps.org/ru/protocol.html

[13] Источник: https://habrahabr.ru/post/352082/?utm_campaign=352082