我已尝试根据此处列出的准则设置我的网站(http://www.diablo3values.com):https://developers.google.com/webmasters/ajax-crawling/但是,似乎Google已更新其索引(因为我看到了对元的修订版)描述标签)但是ajax内容没有出现在索引中。
我正在尝试使用“处理没有散列片段的页面”选项。
如果您查看以下任一项:
http://www.diablo3values.com/?_escaped_fragment_=
http://www.diablo3values.com/about?_escaped_fragment_=
您将使用我的内容正确地看到HTML快照。 (这是我最关心的两页)。
任何想法?难道我做错了什么?你如何让谷歌识别标签。
答案 0 :(得分:7)
我正在输入这个作为答案,因为它有点长的评论。
首先,您的链接似乎指向localhost:8080/about
,而不是/about
,这可能是Google首先没有将其编入索引的原因。
其次,这是我使用pushstate urls和Google AJAX抓取的经验:
我的经验是google使用pushstate网址进行抓取的处理方式与使用hashbang网址的处理略有不同。由于谷歌不知道您的网址是一个州网址(因为它看起来就像一个常规网址),您需要在所有网页上添加<meta name="fragment" content="!">
,而不仅仅是“根”网页。谷歌似乎并不知道这些页面是同一个应用程序的一部分,因此它将每个页面视为一个单独的Ajax应用程序。因此,谷歌机器人永远不会在_escaped_fragment_
内创建导航结构,如_escaped_fragment_=/about
,就像使用hashbang网址(#!/about
)一样。相反,它会请求/about?_escaped_fragment_=
(您显然已经设置了)。这适用于所有“深层链接”。谷歌将始终要求/?_escaped_fragment_=/thelink
而不是/thelink?_escaped_fragment_=
。
但最初说,它不适合你的原因可能是因为你localhost:8080
生成的html中有_escaped_fragment_
个网址。
答案 1 :(得分:1)
如果您的网址符合哈希爆炸标准,Googlebot只知道抓取转义的片段。当用户浏览您的网站时,您的网址必须是:
http://www.diablo3values.com/
http://www.diablo3values.com/#!contact
http://www.diablo3values.com/#!about
Googlebot实际上需要在源代码中查看这些网址,以便它可以跟随它们。然后它知道下载以下网址:
http://www.diablo3values.com/?_escaped_fragment=contact
http://www.diablo3values.com/?_escaped_fragment=about
在您的网站上,您似乎每次点击都会加载新页面,然后通过AJAX加载每个页面的内容。这不是我期望AJAX网站工作的方式。通常,使用AJAX的目的是使用户永远不必加载整个新页面。当用户单击时,将加载新内容部分并将其插入页面。您提供导航一次,然后您只提供内容的转义片段。