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

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

https://mydomain.com/ redirects to the user request language setting. (This is default behaviour by adding Django's LocaleMiddleware)

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

     

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

     

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

     

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

     

Имя используемого файла cookie устанавливается с помощью LANGUAGE_COOKIE_NAME   установка. (Имя по умолчанию - django_language.)

     

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

     

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

Поэтому посещение «/» приведет к:

https://mydomain.com/en/ or https://mydomain.com/nl/

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

https://mydomain.com/ru/my-awesome-page/

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

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

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


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

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


<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 -с-многоязычная-websites.html

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

3
nl ja de

1 ответы

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

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

You could exclude robots, but then your site wouldn't get indexed at all, which rather throws out the baby with the bathwater. The best advice is don't automatically redirect based on perceived language of your users. Personally, I extend that to perceived location, too. Google offer the same advice.

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

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

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

You should probably also consider using Google's alternate/hreflang Sitemap, which is intended specifically for instances where there are multiple language versions/variants of a site.

4
добавлено
SEO chat
SEO chat
5 476 участник(ов)

Чат про SEO. Speak Russian! Др.чаты: @ppcchat @uiux_chat @devschat @smmhell Работа: @seohr Канал: @seolife Аудит: tpv.sr/1QoBSBb Стата: tpv.sr/1QoBMrK/ Запрещено: - мат и брань - команды ботам - реклама, вакансии - религия, политика, наркота, крипта

Django
Django
1 931 участник(ов)

Полезная информация и правила: https://github.com/django-ru/faq Вакансии и резюме: @django_jobs Пофлудить идём сюда: @django_flood Статистика чата: combot.org/chat/-1001063854692

django_jobs
django_jobs
916 участник(ов)

Поиск и предложения работы (Django) Правила: https://t.me/django_jobs/4 Вакансии с тегом #job улетают в канал @django_jobs_board Вопросы к @amureki Основной чат @pydjango

Django
Django
733 участник(ов)

Веб-фреймворк для перфекционистов с дедлайнами. Наша группа на vk: https://vk.com/django_framework В Discord: https://discord.me/django_framework по всем вопросам @MechanisM

django flood
django flood
71 участник(ов)

Флудилка джангистов Пока без правил