多语言网站的URL的最佳实践

时间:2014-02-24 10:32:24

标签: url multilingual url-design

什么是翻译网站网址的最佳策略?我经常看到的事情是:

http://example.com/english-slug.html
http://example.com/de/english-slug.html
http://example.com/fr/english-slug.html

这具有(次要)优点,即用户可以通过修改URL手动切换到另一种语言。缺点似乎是URL包含错误语言的slug,每个页面都没有默认语言。我认为这会导致SEO惩罚。

另一种方法是翻译slu and并可选地省略语言标识符:

http://example.com/english-slug.html
http://example.com/deutscher-slug.html
http://example.com/slug-francois.html

有些语言并没有真正让自己变得“迷茫”,例如俄罗斯,中国和阿拉伯。你最终会得到没有意义的音译。

3 个答案:

答案 0 :(得分:7)

我认为你应该使用语言标签翻译的slugs:

http://example.com/en/hello-world
http://example.com/de/hallo-welt

为何选择语言标签?避免碰撞 有时您可能希望为不同语言使用相同的slug(例如," team"英语和德语)。

为什么要翻译路径?为了更好的可用性。
并非所有用户都了解"默认"语言,根据其脚本,他们甚至可能无法键入/记住/指示slug。 (首先使用只有部分用户能够理解的人类可读的slug是没有意义的。)

是的,用户可以通过修改URL"手动切换到另一种语言,这将是一个(次要)优势。但是,用户或搜索引擎不太可能期望这一点(见my related answer on Webmasters)。因此,您将获得很少(针对高级用户的URL黑客攻击)并且损失很多(使用非默认语言的用户可用性差)。

也就是说,在大多数情况下,仍然可以启用此网址黑客功能:当用户将语言标记de/de/hallo-welt}更改为en时{(1 }},你可以检查它是否存在(如果是,显示它),如果没有,检查是否存在slug" hallo-welt"在任何语言中,找到它的英文翻译并重定向到它(从/en/hallo-welt/en/hallo-welt)。

答案 1 :(得分:2)

如果您能负担得起,最好的解决方案是使用正确的名称发送文档,即使用每种语言中的正确单词。

当然,每个文档都应与标题上的相应语言设置一起发送。

为了存储它们,您可以使用文件夹并让Web服务器根据语言首选项选择正确的文档;或者您可以使用服务器端技术(如PHP,perl等)发送文档并调整URL。

在任何情况下,当您没有所请求的语言时,您必须使用默认语言。

如果您不能或不想使用正确的名称发送文档,则使用子域名是最佳选择。这个选项不像在域之后添加语言那么常见,这意味着人们可能不习惯它,但是,它有一些优点,例如;

  • 每种语言的行为都像一个全新的网址/网站(差不多)。
  • 人们想要访问一个专门的网站,而不是第二语言降级的部分,并且可能随时失败(某些内容可能无法翻译)。
  • 有些人不熟悉他们的两个字母代表语言,但每个人都知道他的语言是如何被称为和拼写的。
  • 它会生成更清晰的网址。
  • 据信,子域名会增加SERP的外观(我不知道这一点,而且可能已经改变了。)
  • 如果您愿意,可以更容易地使用不同的布局。
  • 根据语言设置不同的服务器更容易。

当然,子域有一些缺点,例如:

  • 从服务器角度进行适当设置需要做多做一些工作。
  • 从部分到高级别的协作较少。
  • 有些人可能不会指望它,但期望一个子文件夹。

接下来将是子文件夹选项,正如您在问题上显示的那样。如果您的主要观点是SEO,这是推荐的方式,因为域的所有相关性都保留在同一个域中,并且每种语言都有助于排名的常见“底池”。

在选择解决方案时,我的观点在任何情况下都不是SEO。无论我获得什么排名,都归功于内容本身以及我可以为技术提供的最佳用途。但我明白我的观点不是最常见的。

还有一点需要考虑的是,您应该提供某种解释或帮助用户,以便他可以采取措施更改为首选语言。它可能使用图标,工具提示或任何其他适用于您的设计和详细程度的方法。

要避免的一件事,你没有要求它,但是有关系;正在使用语言自动检测。很多时候,用户处于不同的国家或使用的浏览器版本与他能理解的语言不同,并且自动调整只会造成很大的混乱。提供默认版本和明确的更改方式。

答案 2 :(得分:0)

另一种方法是将语言设置为查询字符串参数,例如:

http://example.com/hello-world?hl=en

http://example.com/hallo-welt?hl=de

例如Google Flights网站使用此方法。