0

我最近在 Google 网站管理员控制台上遇到了越来越多的“hreflang no return tags”错误,我无法弄清楚我错过了什么。我的网站是 www.example.com,可以使用不同的语言访问它,例如 www.example.com/#!/xx,其中 xx 是以下选项之一:it、ro、ru、pt、en、es、fr .

我的代码片段如下所示:

<link view-head rel="alternate" hreflang="x-default" href="{{domain_absolute}}#!/{{mainVars.currentLanguage}}/--about-us" />
<link view-head rel="alternate" hreflang="es" href="{{domain_absolute}}#!/es/--about-us" />
<link view-head rel="alternate" hreflang="pt" href="{{domain_absolute}}#!/pt/--about-us" />
<link view-head rel="alternate" hreflang="ro" href="{{domain_absolute}}#!/ro/--about-us" />
<link view-head rel="alternate" hreflang="ru" href="{{domain_absolute}}#!/ru/--about-us" />
<link view-head rel="alternate" hreflang="en" href="{{domain_absolute}}#!/en/--about-us" />
<link view-head rel="alternate" hreflang="it" href="{{domain_absolute}}#!/it/--about-us" />
<link view-head rel="alternate" hreflang="fr" href="{{domain_absolute}}#!/fr/--about-us" />

我从谷歌得到的错误如下:

原始网址:#!/en/some-document

备用网址:http ://www.example.com/?_escaped_fragment_=/en和http://www.example.com/?_escaped_fragment_=/en/some-document - 无返回标签

对于所有受支持的语言,我都会遇到相同的错误。

我究竟做错了什么?

4

2 回答 2

0

虽然已弃用,但 Google 正在理解 #! 并将 URL 转换为转义片段版本。由于 Google 告诉您他们无法在 URL 的 /?_escaped_fragment_ 版本上找到返回,这告诉我您为响应他们的请求而重写的 URL 缺少 HREFLang 元素。

查看http://www.example.com/?_escaped_fragment_=/en/some-document上的源代码,如果您没有看到屏幕截图中显示的 HREFLang 字符串,那就是您的问题。确保您在两个版本上都有它,是的,您应该覆盖它以包含 URL 的转义片段版本,并且该错误将消失。

对于超过 5 个国家/语言组合的站点,我使用的替代方法是使用 XML 站点地图并提交例外片段版本。

于 2016-06-16T19:04:09.447 回答
0

# 是一个特殊字符。# 之后的 URL 中的所有内容都将被忽略。

#!是一个特例。如果你使用 #! 然后 Google 将其视为将其转换为不同 URL 以进行 AJAX 抓取的信号。此“功能”已被弃用。你的 URL 结构告诉我你没有使用 #! 反正就这样。

所以底线:更改您的网址,以便您不使用#。为所有语言提供自己的 URL。

于 2016-06-15T21:34:21.053 回答