2012-07-24 61 views
3

我们的代理机构建立了一个动态网站,使用大量的AJAX互动和#! (hashbang)网址:http://www.gunlawsbystate.com/Hashbang网址让Google很难抓取网站?

这是一本很长的书,您可以滚动浏览并且地址栏中的网址动态变化。我们必须支持IE,所以请不要建议使用pushState - hansbang是我们现在唯一的选择。

左侧栏中有导航,其中包含本书中所有章节的链接。

链接的例子: http://www.gunlawsbystate.com/#!/federal-properety/national-parks-and-wildlife-refuges/

我们预计Google抓取这样的: 的http:// www.gunlawsbystate.com/?_escaped_fragment_=/federal-properety/national-parks-and-wildlife -refuges/ 这是该部分的完整html快照。 (+有小节的链接,如www.gunlawsbystate.com/#!/federal-properety/national-parks-and-wildlife-refuges/ii-change-in-the-law/ => www.gunlawsbystate.com/ ?_escaped_fragment _ =/federal-properety/national-parks-and-wildlife-refuges/ii-change-in-the-law-/)。

根据Google的规范(developers.google.com/webmasters/ajax-crawling/docs/specification),这一切看起来都是完整的。 该网站目前运行约3个月。主页每10-15天重新编制索引。

问题是,由于某些原因,Google无法正确抓取hashbang网址。 Google似乎只是“不喜欢”这些网址。

www.google.ru/search? & q =网站%3Agunlawsbystate.com: 只有67页被编入索引。请注意,谷歌索引的大部分网页都有“普通”网址(主要是wordpress博客文章,类别和标签),结果页面只有5-10%是hashbang网址,尽管Google应该有400多个独立内容的书籍部分真的很喜欢它是否正确地抓取它。

有人可以给我一个建议,为什么Google不能正确抓取我们的书页?任何帮助将不胜感激。

P.S.我很抱歉无法点击的链接 - stackoverflow不允许我发布超过2个。

UPD。前段时间,该网站地图已提交给Google。 Google网站管理员工具说,已提交518个网址,并且只有62个网址已建立索引。此外,在网站站长工具的“索引状态”页面上,我看到有1196个页面已经抓取; 1071页是未选中。它清楚地指出,由于某种原因谷歌不索引#!它经常访问的页面。

+0

您是否找到答案?我有一个类似的问题,这里描述:http://webmasters.stackexchange.com/questions/35355/google-crawling-the-site-but-refusing-to-index-dynamic-content – Meisner 2012-10-06 08:21:48

+0

@Omeoe我已经完成一些搜索引擎优化增强功能,优化的网页内容,将其放在代码的边栏之上,并且还删除了WordPress已放入页面的rel =“canonical”链接。另外,这是我发布的这个AJAX网站的另一个问题:http://webmasters.stackexchange.com/questions/34810/title-of-the-page-in-search-results-and-title-of- googles-cached-version-are-dif/34839#34839。我相信你的问题是非常不同的。 – Azmorf 2012-10-06 12:26:19

+0

供将来参考:[此页面描述的语法不再需要,2018年夏后将不再支持](https://developers.google.com/webmasters/ajax-crawling/docs/getting-started )。 – Arjan 2018-01-17 07:41:49

回答

0

您错过了几件事。 首先,您需要一个元标记来告诉Google可以通过其他网址访问Hash URL。

<meta name="fragment" content="!"> 

接下来,您需要将每个网址的映射版本提供给Googlebot。

当谷歌访问:

http://www.gunlawsbystate.com/#!/federal-regulation/airports-and-aircraft/ii-boarding-aircraft/

这反而抓取:

http://www.gunlawsbystate.com/?_escaped_fragment_=federal-regulation/airports-and-aircraft/i-introduction/

对于您的工作要么需要使用像PHP或ASP服务了正确的页。如果你能得到正确的管道,Asp.net路由也可以工作。有些服务实际上会为您创建这些“快照”版本,然后您的元标记将指向它们的服务器。

+0

供将来参考:由于此答案已发布,因此Google不赞成此; https://webmasters.googleblog.com/2015/10/deprecating-our-ajax-crawling-scheme.html – Arjan 2018-01-17 07:31:32

0

由于它已被Google弃用,现在Google无法访问hashbang网址下的内容。

基于研究Google现在避免了转义的片段URL,并建议创建单独的页面而不是使用HashBang。

所以我认为PushState是可以在这种情况下使用的另一种选择。