Что лучшее место должно отобразить язык в Вашем URL?

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

Теперь существует несколько мест для определения языка в URL:

    • www.example.com/en/articles/random
    • www.example.com/nl/articles/random
    • en.example.com/articles/random
    • nl.example.com/articles/random
    • www.example.com/articles/random?lang=en
    • www.example.com/articles/random?lang=nl

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

21
задан unor 18 February 2016 в 01:08
поделиться

11 ответов

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

Я уже некоторое время борюсь с мультиязычными веб-сайтами.

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

2
ответ дан 29 November 2019 в 22:04
поделиться

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

  • Подход 1: ИМХО хорош для случаев, когда вы хотите запустить все статьи на всех языках одновременно. Но тогда, когда вы вносите изменения в одном месте, вам нужно будет зайти во все места и сделать то же самое изменение.
  • Подход 2: Удобен для таких случаев, как Википедия, где разные языки означают фактически разные веб-сайты (статьи статьи не являются переводами друг друга, а скорее другое контент)
  • Подход 3: Хороший выбор, если вы обычно запускаете сайт на каком-то языке, а переводы приходят позже (например, в случае с Google, например). Вы можете иметь язык по умолчанию в случае, если язык не указан, или даже сохранить его в сессии, чтобы он сохранялся при изменении страницы.
4
ответ дан 29 November 2019 в 22:04
поделиться

Я не знаю, есть ли в этом случае какая-нибудь «лучшая практика», поскольку это, вероятно, сводится к личному мнению.

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

0
ответ дан 29 November 2019 в 22:04
поделиться

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

Во многих распространенных веб-фреймворках (rails или symfony) вы можете установить правила маршрутизации для #1, которые будут автоматически заполнять параметр языком, который контроллер будет использовать для генерации соответствующего содержимого. Три, конечно, тоже работает, но, на мой взгляд, немного отвлекает.

2 особенно подходит, если вы вызываете перенаправление на уровне веб-сервера, и имеет преимущество, позволяя ссылки из / без потенциальной "потери" языковых настроек пользователя. Другими словами, ссылка на /home приведет вас на правильную языковую версию "домашней" страницы.

Последний вариант - хранить язык как предпочтение пользователя в cookie и не вводить его в url вообще.

1
ответ дан 29 November 2019 в 22:04
поделиться

Поисковые системы считают субдомены независимыми веб-сайтами. Я не уверен, как это повлияет на SEO.

0
ответ дан 29 November 2019 в 22:04
поделиться

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

URL (или URI) - это нечто, что описывает или идентифицирует ресурс. Если я правильно помню, URL не должен зависеть от способа отображения ресурса (HTML, XML, JSON и т.д.).

Можно также рассмотреть язык как способ указать как должен отображаться ресурс.

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

0
ответ дан 29 November 2019 в 22:04
поделиться

Я определенно выбрал бы

www.mydomain.com/articles/random?lang=en
www.mydomain.com/articles/random?lang=nl 

, потому что более естественно сказать: «эта ссылка (полная ссылка) на английском или голландском».

В противном случае (domain / lang / restof url) создается впечатление, что у вас есть какая-то структура, которая содержит разные вещи для en и nl. То же самое относится к lang.domain / ...

-1
ответ дан 29 November 2019 в 22:04
поделиться

Я скажу вам, что НЕ является лучшей практикой - использование параметров (3-й). Заставлять пользователей вводить сложный URL - значит навлекать на себя неприятности.

Ваши страницы могут внутренне использовать GET-параметры для поиска lang, но используйте модуль перезаписи URL, доступный на вашем веб-сервере, чтобы сделать его простым, как, например, в первом случае - www.mydomain.com/en/articles/random

Даже второй вариант подходит, только большинство пользователей набирают доменное имя и нажимают Ctrl + Enter.

https://addons.mozilla.org/en-US/firefox/

http://msdn.microsoft.com/en-us/default.aspx

http://www.apple.com/in/

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

7
ответ дан 29 November 2019 в 22:04
поделиться

Я хотел бы добавить один, который мы выбрали для www.openimages.eu:

4)
www.mydomain.com/articles/random.en
www.mydomain.com/articles/random.nl

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

Accept-Language nl,en;q=0.7,en-us;q=0.3

и по умолчанию показывать ваши страницы на этом языке, если он доступен. Вы можете предоставить пользователям переключатель для использования '.en' или '.nl'-вещей.

2
ответ дан 29 November 2019 в 22:04
поделиться

Если вы ищете "дружественные поисковой системе" и "красивые" URL-адреса, вам следует избегать немаскированных параметров GET. Они не так хороши для глаз, как поддомен или подкаталог, и не совсем оптимизированы для SEO.

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

0
ответ дан 29 November 2019 в 22:04
поделиться

Первый вариант имеет больше смысла. Потому что если кто-то хочет перейти непосредственно на вашу страницу, и он/она может просто набрать blabla.com/en и достичь того, что он/она хочет...

0
ответ дан 29 November 2019 в 22:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: