【发布时间】:2012-07-06 08:20:36
【问题描述】:
我们有一个多语言应用程序,可以使用 GET 参数来区分不同的语言版本以及客户端的浏览器语言。如果语言不受支持或未知,我们使用英语作为后备。目前支持的语言是英语和德语,顺便说一句。
因此,浏览器语言为“en”的访问者(任何其他语言,如“es”、“zh”等 - 除了“de” - 将导致所描述的英语)将获得以下不同 url 的语言版本:
- mydomain.com --> 英文版
- mydomain.com?language=en --> 英文版
- mydomain.com?language=de --> 德语版
到目前为止,这是可行的,但这是我们在使用 Google 索引时遇到的问题:
当我们从德国或使用 google.de 搜索网站时,一个人(至少是我们的客户)会期望得到德语的结果。
但是,Google 使用英文文本而不是德文文本显示结果(页面摘录/元描述)。
例如,搜索“mydomain”(请原谅程序员艺术:)):
My Domain Title
http://www.mydomain.com
Here's the english meta description even if we search from Germany.
问题似乎是 GoogleBot 要么使用英语,要么不提供任何语言信息(我认为是这种情况),因此获得了“mydomain.com”的英文版本。
我们试图帮助 GoogleBot 并将“备用”链接放入页眉中,即对于“mydomain.com”,我们会有这些
<link rel="alternate" hreflang="en" href="http://www.mydomain.com?language=en" />
<link rel="alternate" hreflang="de" href="http://www.mydomain.com?language=de" />
但是,尽管理论上(据我们了解)GoogleBot 现在应该知道该页面的不同语言版本,但它仍会返回英文结果。
我们也考虑过使用“规范”标签,但这是否意味着我们必须选择一种语言版本才能被索引?
我们的最终目标是让 Google 为国际用户返回英文版页面,为德国用户返回德文版。
关于我们如何实现这一点的任何提示?
更新:
这是我们迄今为止为解决该问题所做的工作。
首先,我们将语言移到网站的路径中,每当缺少该语言时,我们就假定为德语。
因此我们有这个结果:
http://www.mydomain.com --> 301 to "http://www.mydomain.com/de/"
http://www.mydomain.com/de/ --> German, alternatives are "http://www.mydomain.com/de/" and "http://www.mydomain.com/en/"
http://www.mydomain.com/en/ --> English, alternatives are "http://www.mydomain.com/de/" and "http://www.mydomain.com/en/"
德语 Google 现在按预期显示德语结果,但英语 Google(或德语 Google 设置为显示英语结果)也显示德语结果。我认为原因要么是重定向中的错误,要么是 Google 并不真正关心。
【问题讨论】:
-
网站的英文版是否通过纯 HTML 链接链接到德文版?
-
可以,但只能通过语言更改链接,该链接与页面的 url 相同,只是语言参数不同。其他所有链接都应链接到相同的语言版本。