多语言网站URL的最佳实践

16

被认为是翻译网站URL最佳策略的是什么?我经常看到以下情况:

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

这种方法的(轻微)优点是用户可以通过修改URL手动切换到另一种语言。缺点似乎是对于每个不属于默认语言的页面,URL都由错误语言的“slug”组成,这将导致SEO处罚。

另一种选择是同时翻译“slugs”,并可选地省略语言标识符:

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

有些语言不太适合“ sluggify”,比如俄语、中文和阿拉伯语。你最终会得到一些毫无意义的音译。


我会选择第一种选项,但文件名中不包含“英语”一词。这是一个不错的阅读材料:https://dev59.com/mWkv5IYBdhLWcg3w8FOY - the_lotus
“English”这个词只是用来说明将使用英语语言的slug。因此,将“english-slug”替换为任何英语slug,例如“hello-world”。同样地,“deutscher-slug”>“hallo-welt”,“slug-francois”>“bonjour-monde”。 - Roy Prins
3个回答

15
我认为您应该使用语言标签和翻译后的短链接:
http://example.com/en/hello-world
http://example.com/de/hallo-welt

为什么需要语言标签?为了避免冲突。
有时您可能希望在不同语言中具有相同的短语(例如,英语和德语中都是“team”)。

为什么需要翻译路径?为了更好的可用性。
并非所有用户都理解“默认”语言,而且根据其脚本,他们可能甚至无法输入/记住/口述短语。(首先使用仅一部分用户能够理解的可读性强的短语没有意义。)

是的,让用户通过修改URL手动切换到另一种语言是一个“(小)优势”。但是,这样做是不太可能得到用户或搜索引擎的期望的(请参见我在网络管理员相关问题上的答案)。因此,您将获得很少的利益(高级用户进行URL操作),并且会失去许多(对于使用非默认语言的用户而言,易用性差)。

尽管如此,在大多数情况下,仍然可以启用此URL黑客功能:当用户将语言标记de(在/de/hallo-welt)更改为en(/en/hallo-welt)时,您可以检查其是否存在(如果是,则显示它),如果不存在,则检查是否存在任何语言中的“hallo-welt”短语,找到其英语翻译并重定向到它(从/en/hallo-welt/en/hello-world)。


如何处理主页?(如果主要语言是英语)您不希望在example.com/example.com/en/上有相同的内容...那么,您有什么建议? 将example.com/重定向到example.com/en...还是将example.com/en重定向到example.com/?使用302还是301? - Matěj Kříž
@MatějKříž:(回复了您在我的另一个答案上的评论) - unor

3

1
但是在我的看法中,为了SEO目的在URL中使用参数是不推荐的。 - Pardeep Jain
不要这样做,Google本身也不推荐。链接:https://developers.google.com/search/docs/advanced/crawling/managing-multi-regional-sites#locale-specific-urls - gmaster

2
最好的解决方案,如果您负担得起的话,就是使用正确的单词在每种语言中发送文档,这意味着以正确的名称发送文档。
当然,每个文档都应该在标题中使用相应的语言设置来发送。
对于存储它们,您可以使用文件夹,并让 Web 服务器根据语言首选项选择正确的文档;或者您可以使用服务器端技术,如 PHP、Perl 等发送文档并调整 URL。
无论如何,在没有请求的语言时必须有一个默认语言要发送。
如果您不能或不想使用正确的名称发送文档,则子域名是最佳的下一个选择。虽然这个选项不像在域名后添加语言那么常见,这意味着人们可能不习惯它,但它具有一些优点,例如:
- 每种语言的行为都像一个全新的 URL/站点(几乎)。 - 人们感觉像访问一个专用站点,而不是一个次要语言被削弱并可能随时失败的子部分(某些内容可能没有翻译)。 - 有些人不熟悉他们的两个字母表示的语言,但每个人都知道自己的语言叫什么和如何拼写。 - 它生成更干净的 URL。 - 人们认为使用子域名可以增加在 SERP 上的出现次数(我不了解这一点,可能已经改变了)。 - 如果您想要不同的布局,则更容易实现。 - 根据语言设置不同的服务器更容易。
当然,子域名也有一些缺点,例如:
- 从服务器角度正确设置需要更多的工作量。 - 对于排名的协作较少。 - 有些人可能不会期望它,但期望一个子文件夹。
接下来是子文件夹选项,就像您在问题中展示的那样。如果您的主要视角是 SEO,则这是推荐的方式,因为所有域的相关性都保留在同一域中,每种语言都有助于共同的排名“锅”。
当选择解决方案时,我的观点从未是 SEO,在任何情况下都不是。无论我得到什么排名,都是由于内容本身和我可以给技术的最佳用途。但我理解我的观点并不是最常见的。
还要考虑的一件事是,您应该提供某种解释或帮助用户以便他可以采取行动更改为首选语言。它可以使用图标、工具提示或任何适合您的设计和冗余性的方法。
有一件事要避免,虽然您没有询问,但与之相关;这是使用语言自动检测。许多时候,用户在不同的国家或使用具有与他可以理解的语言不同的浏览器版本,自动检测只会造成大混乱。提供默认版本和明确更改它的方法。

谢谢回复。服务器端处理根本不是问题。这只是关于URL最佳实践的问题。我无法找到可靠的来源,涉及用户体验和SEO。虽然您表示后者选项更受欢迎,但您没有提供论据或来源支持。这就留下了丑陋的音译问题。另一个想法是搜索引擎可以通过子文件夹推断翻译的结构。顺便说一句,我认为子域通常建议用于翻译。 - Roy Prins
1
你说得完全正确,我没有用任何研究来支持我的话,这是值得期望的。我只是根据我与用户、客户和服务器的经验谈论,这已经有大约22年了,但仍然只是我的观点,所以如果我发现什么,我会在这里发布。我将在我的回答中加入更多内容,以回应您的评论。 - PatomaS
谢谢你对回答做出的进一步解释。这确实很有道理,无论是把用户体验放在第一位还是选择子域名。关于音译,对于我的使用情况来说,它多少有些学术性,但我添加它是因为我正在寻找最佳实践。想象一个中文音译类似于:http://example.com/cn/ni-hao-yin-hang.html。这对中国人来说看起来很陌生,并且同样的音译会用于许多单词。我注意到中国博客选择采用了[postid].html 的方案。 - Roy Prins
我会尝试与我的中国朋友进行一些研究。目前我住在亚洲。关于我正在寻找的学习内容,我发现的都是与SEO相关的,所以我需要提高我的Google搜索技巧。 - PatomaS
我对子域名和SEO有着矛盾的信号。按照Moz最佳实践,不推荐使用子域名:https://moz.com/blog/15-seo-best-practices-for-structuring-urls - kshishkin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接