我最近在Google站长控制台上遇到了越来越多的"hreflang no return tag“错误,我不知道我错过了什么。我的网站是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" />我从Google得到的错误如下:
原始URL:#!/en/some document
替代URL:http://www.example.com/?_escaped_fragment_=/en和http://www.example.com/?_escaped_fragment_=/en/some-document -不返回标签
对于所有支持的语言,我都得到了相同的错误。
我做错了什么?
发布于 2016-06-16 05:34:21
是一个特殊的字符。URL中#之后的所有内容都将被忽略。
#!是一个特例。如果你使用#!然后,谷歌将其视为对convert it to a different URL for AJAX crawling的信号。此“功能”已被弃用。你的URL结构告诉我你没有使用#!不管怎么说都是这样的。
所以底线是:改变你的URL,这样你就不会使用#。为所有语言提供自己的URL。
发布于 2016-06-17 03:04:09
虽然已被弃用,但Google正在理解#!以及将所述URL转换为转义片段版本。由于谷歌告诉你他们找不到URL的/?_escaped_fragment_版本的返回值,这告诉我你为响应他们的请求而重写的URL遗漏了HREFLang元素。
查看http://www.example.com/?_escaped_fragment_=/en/some-document上的源代码,如果您没有看到屏幕截图中显示的HREFLang字符串,这就是您的问题。确保您在两个版本上都有它,是的,您应该将它包括在URL的转义片段版本中,这样错误就会消失。
对于超过5个国家/语言组合的站点,我使用的替代方法是使用XML站点地图并提交例外片段版本。
https://stackoverflow.com/questions/37831137
复制相似问题