0

我已尝试根据此处列出的指南设置我的网站( http://www.diablo3values.com ): https ://developers.google.com/webmasters/ajax-crawling/ 但是,谷歌似乎已经更新了他们的索引(因为我看到了对元描述标签的修订),但是 ajax 内容没有出现在索引中。

我正在尝试使用“处理没有散列片段的页面”选项。

如果您查看以下任一情况:

http://www.diablo3values.com/?_escaped_fragment_=

http://www.diablo3values.com/about?_escaped_fragment_=

您将正确地看到包含我的内容的 HTML 快照。(这是我最关心的两页)。

有任何想法吗?难道我做错了什么?你如何让谷歌正确识别标签。

4

2 回答 2

7

我正在输入这个作为答案,因为它有点太长才能成为评论。

首先,您的链接似乎指向localhost:8080/about,而不是/about,这可能是谷歌一开始不索引它的原因。

其次,这是我对 pushstate url 和 Google AJAX 抓取的经验:

我的经验是,谷歌对使用 pushstate url 的 ajax 爬行的处理方式与使用 hashbang url 的处理方式略有不同。由于 google 不会知道您的 url 是 pushstate url(因为它看起来就像一个常规 url),所以您需要添加<meta name="fragment" content="!">到所有页面,而不仅仅是“根”页面。而且 google 似乎并不知道这些页面是同一个应用程序的一部分,因此它将每个页面都视为一个单独的 Ajax 应用程序。因此,Google bot 永远不会真正在内部创建导航结构_escaped_fragment_,例如_escaped_fragment_=/about使用 hashbang url ( #!/about)。相反,它会请求/about?_escaped_fragment_=(您显然已经设置了)。这适用于您的所有“深层链接”。而不是/?_escaped_fragment_=/thelink,google 将始终请求/thelink?_escaped_fragment_=.

但正如最初所说,它对您不起作用的原因可能是因为您在生成的 html中有localhost:8080url 。_escaped_fragment_

于 2013-05-06T13:37:35.060 回答
1

如果您的 url 符合 hash bang 标准,Googlebot 只知道抓取转义的片段。当用户浏览您的网站时,您的网址需要:

http://www.diablo3values.com/
http://www.diablo3values.com/#!contact
http://www.diablo3values.com/#!about

Googlebot 实际上需要在源代码中查看这些 url,以便它可以跟踪它们。然后它知道下载以下网址:

http://www.diablo3values.com/?_escaped_fragment=contact
http://www.diablo3values.com/?_escaped_fragment=about

在您的网站上,您似乎在每次点击时加载一个新页面,然后也通过 AJAX 加载每个页面的内容。这不是我期望 AJAX 站点工作的方式。通常使用 AJAX 的目的是让用户永远不必加载一个全新的页面。当用户点击时,新的内容部分被加载并插入到页面中。您提供一次导航,然后只提供内容的转义片段。

于 2013-03-07T11:57:39.873 回答