Как поисковые системы видят локализованный сайт Django?

У меня есть сайт Django, который использует промежуточное программное обеспечение локализации в сочетании с gettext и тегами шаблона trans / blocktrans, чтобы показывать посетителям разные страницы в зависимости от предпочтительного языка в строке их пользовательского агента (что, по-видимому, является стандартным способом делать что-то в Django) .

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

Когда поисковая система сканирует сайт, обычно имеет ли она предпочтительный язык в строке агента? Получат ли немецкие пауки немецкий сайт, а испанские - испанский, или они просто получат английский сайт по умолчанию, который отображается, когда у пользователя не установлен язык? Различается ли это в зависимости от поисковых систем, и существует ли «стандартный способ» выполнения действий, которого отдельные сканеры могут или не могут придерживаться?


person Jason Champion    schedule 20.10.2010    source источник


Ответы (3)


Не полагайтесь на то, что поисковая система может сделать в этом отношении. Вы хотите, чтобы сканировались все версии. Для этого:

  • Иметь разные URL-адреса для разных языковых версий.
  • Убедитесь, что поисковые системы могут найти разные версии.

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

  • Когда пользователь приходит, например, brazzy.de/index.php, сайт пытается определить язык из файла cookie (если он есть) или настроек браузера (заголовок Accept-language), по умолчанию используется английский язык и не перенаправляет
  • На каждой странице есть ссылки на разные языковые версии этой страницы (IMO является наиболее важным фактором для удобства пользователя, а также гарантирует, что поисковые системы могут легко найти разные версии).
  • Эти ссылки ведут, например, на brazzy.de/en/index.php, который в моем случае переписан на brazzy.de/index.php?lang=en - это гарантирует, что поисковые системы видят разные URL-адреса для разных языковых версий.
  • Посещение такого подкаталога устанавливает языковой файл cookie на этот язык.
  • Страницы без URL-адреса, зависящего от языка (т.е. где язык зависит от данных клиента), используют, например, <link rel="canonical" href="/en/">, чтобы сообщить поисковой системе, по какому языку URL можно найти эту страницу.
  • Используйте XML-карты сайта, чтобы в дальнейшем убедиться, что поисковые системы могут находить все страницы и все версии на разных языках.
person Michael Borgwardt    schedule 20.10.2010

боты обычно не имеют параметра accept-language в заголовке http. это означает, что django будет обслуживать ваш язык по умолчанию. Региональные поисковые системы могут иметь ботов с любым языком приема, который они предпочитают, но вы не можете полагаться на это. Лучше всего иметь разные страницы для каждого языка. например, http://your.website.com/english/, а затем в промежуточном программном обеспечении настройте перенаправить на страницу нужного языка, если присутствует конкретный язык приема.

person guruslan    schedule 20.10.2010

используйте метатег hreflang, но убедитесь, что вы используете разные URL-адреса для разные языки. еще лучше, используйте другое расширение домена (example.de, example.es) в сочетании с Фреймворк Django sites.

person Rafael    schedule 16.06.2015