我最近有更多的" hreflang没有回复标签"谷歌网站管理员控制台上的错误,我无法弄清楚我错过了什么。我的网站是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获得的错误如下:
原始网址:#!/ en / some-document
备用网址:http://www.example.com/?_escaped_fragment_=/en和http://www.example.com/?_escaped_fragment_=/en/some-document - 无回复标记
我为所有支持的语言都会遇到相同的错误。
我做错了什么?
答案 0 :(得分:0)
#是一个特殊角色。 #之后的URL中的所有内容都将被忽略。
#!是一个特例。如果你使用#!然后Google将其视为convert it to a different URL for AJAX crawling的信号。这个&#34;功能&#34;已弃用。你的网址结构告诉我你没有使用#!无论如何都是这样。
所以底线:更改您的网址,以便您不使用#。为所有语言提供自己的URL。
答案 1 :(得分:0)
虽然已被弃用,但Google正在理解#!并将URL转换为转义的片段版本。由于Google告诉您他们无法在URL的/?_ escaped_fragment_版本上找到返回,这告诉我您重写URL以响应其请求时缺少HREFLang元素。
查看http://www.example.com/?_escaped_fragment_=/en/some-document上的来源,如果您没有看到屏幕截图中显示的HREFLang字符串,那就是您的问题。确保在两个版本上都有它,并且您应该覆盖它以包含URL的转义片段版本,并且该错误将消失。
我用于具有超过5个国家/语言组合的网站的替代方法是使用XML站点地图并提交例外的片段版本。