Индексирование многоязычного веб-сайта


Я пытаюсь создать многоязычный веб-сайт с использованием платформы Django, все содержимое по умолчанию на английском языке. Я добавил перевод на родной язык (голландский).

Https://mydomain.com / перенаправляет на настройку языка запроса пользователя. (Это поведение по умолчанию, если добавить локальное программное обеспечение Django )

LocaleMiddleware пытается определить языковые предпочтения пользователя , следуя следующему алгоритму:

Во-первых, это ищет языковой префикс в запрошенном URL-адресе. Это выполняется только при использовании функции i18n_patterns в корневом URLconf. Дополнительные сведения о языковом префиксе и о том, как интернационализировать шаблоны URL, см. в разделе Интернационализация: в шаблонах URL -адресов.

В противном случае он ищет ключ django_language в сеансе текущего пользователя .

В противном случае он ищет файл cookie.

Имя используемого файла cookie устанавливается ИМЯ_ЯЗЫКА_НАЗВАНИЯ_ЯЗЫКА установка. (Имя по умолчанию - django_language.)

В противном случае он просматривает HTTP-заголовок на языке принятия. Этот заголовок отправляется вашим браузером и сообщает серверу, какой язык(языки) вы предпочитаете, в порядке приоритета. Django пробует каждый язык в заголовке , пока не найдет язык с доступными переводами.

В противном случае он использует глобальный параметр LANGUAGE_CODE.

Таким образом, посещение '/' приведет к либо:

Https://mydomain.com/en / или https://mydomain.com/nl/

Заголовок, описание, ключевые слова и контент основаны на языке, поэтому каждая страница (почти) полностью переведена. Итак:

Https://mydomain.com/en/my-awesome-page/

Имеет голландский флаг (переключатель языка), который содержит эту ссылку:

Https://mydomain.com/nl/mijn-fantastische-pagina/

Это отлично работает. Кроме того, заголовок моей страницы содержит альтернативный контент основываясь на языковой переменной, вот псевдокод:

<html lang="{{ current_language }}" />
<head>
    {% for lang_code in other_languages %}
        <link rel="alternate" hreflang="{{ lang_code }}" href="{% url current_url language=lang_code %}"/>
    {% endfor %}
</head>

В результате страница на английском языке будет выглядеть следующим образом:

<html lang="en" />
<head>
    <link rel="alternate" hreflang="nl" href="https://mydomain.com/nl/mijn-fantastische-pagina/"/>
</head>

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

Я полагаю, что проблема может быть связана с автоматическим перенаправлением корневого URL-адреса ('/') или автоматической настройкой языка, должен ли я каким-то образом исключить роботов? Я прочитал эту статью, но я не разобрался в проблеме:

Http://googlewebmastercentral.blogspot.nl/2010/03/working-with-multilingual-websites.html

Также, если я добавлю карту сайта на многоязычный сайт, будет ли лучше добавить другую карту сайта для каждого языка или создать одно большое дерево на основе языковых корней?

Author: Hedde, 2013-01-11

1 answers

Я полагаю, что проблема может быть связана с автоматическим перенаправлением корневого URL-адреса ('/') или автоматической настройкой языка, должен ли я каким-то образом исключить роботов?

Правильно. Googlebot и другие не отправляют заголовок Accept-Language и не принимают файлы cookie, поэтому он будет видеть все, что по умолчанию используется сайтом без него, что в данном случае выглядит как английский. Вы можете проверить это, используя Fetch как Googlebot в инструментах для веб-мастеров.

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

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

Также, если я добавлю карту сайта в многоязычный сайт, было бы лучше добавить другую карту сайта для каждого языка или создать одно большое дерево на основе языковых корней?

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

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

 4
Author: GDVS, 2017-05-23 12:37:07