0

我们有一个多语言应用程序,可以使用 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 现在应该知道该页面的不同语言版本,但它仍然返回英文结果。

我们还考虑过使用“规范”标签,但这是否意味着我们必须选择一种语言版本才能被索引?

我们的最终目标是让谷歌为国际用户返回英文版页面,为德国用户返回德文版。

关于我们如何实现这一目标的任何提示?

更新:

这是我们迄今为止为解决这个问题所做的工作。

首先,我们将语言移动到站点的路径中,每当缺少该语言时,我们假定为德语。

因此我们有这个结果:

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)也显示德语结果。我认为原因要么是重定向错误,要么是谷歌并不在意。

4

1 回答 1

3

我遇到了同样的问题,并通过使用语言限制(lr)参数解决了它,如Google Docs中所述

希望这可以帮助。

澄清:这有助于谷歌网站搜索(我们正在使用)。但是,通过 google.com 进行的正常 Google 搜索仍会返回那些丑陋的混合语言结果。

于 2012-12-06T22:05:20.083 回答