历史.js+谷歌



让我们谈谈谷歌的AJAX爬行:

由于历史.js是丑陋的hashbang网址的一个很好的替代品,我想知道一个特定的问题:对于HTML5浏览器,如果加载了ajax内容,则会创建漂亮的URL,并且应该由Google索引。对于非HTML5浏览器(例如IE 9不支持history.pushState),使用旧的hashbang。

那么谷歌看到的是哪个版本呢?谷歌是否有任何风险看到重复的内容(一次使用漂亮的网址,一次使用hashbang)?

感谢您对此的任何想法。

如果一个ajax页面需要用google索引,我们需要从服务器服务器服务器页面的html快照。

例如:xyz.com/page1#!name=john

Google 抓取工具会找到此 #! 标识符并请求 http://xyz.com/page1?_escaped_fragment_=name=john这样,我们的服务器就可以服务器页面的 html 快照。

现在,当我们的URL被美化并附加#! ajax页面将被索引时。

对于网址中仅附加了 # 的网页,Google 抓取工具将无法看到通过 ajax 加载的内容,也不会将其编入索引。所以不会有任何重复的可能性

我们还可以在页面的头部部分使用链接标签,其中 rel cannonical url 指向邮件 url。请参阅 http://googlewebmastercentral.blogspot.in/2009/02/specify-your-canonical.html 以供参考。

HTML

<a href="http://some/other/page/1" data-history='{"some":"data"}' title="...">link1</a>
<a href="http://some/other/page/2" data-history='{"some":"data"}' title="...">link2</a>

JavaScript

$(document).on('click', '[data-history]', function(e){
    e.preventDefault();
    History.pushState($(this).data().history, this.title, this.href);
})

对于启用了 JavaScript 的客户端,hisotory.js 将对此处理到 AJAX 请求,对于没有 JavaScript 的客户端,它将请求普通页面。

我建议对支持API的浏览器(大约70%的浏览器)仅使用HTML5 History API,同时为不支持的浏览器提供常规静态页面。这样,搜索引擎就不可能看到与完整规范静态 URL 不同的任何内容。

最新更新