5

让我们谈谈google的AJAX爬虫:

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

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

感谢您对此的任何想法。

4

3 回答 3

0

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 的客户端,它将请求正常页面。

于 2013-02-03T14:32:20.400 回答
0

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

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

谷歌抓取工具找到了这个#!标识符和请求http://xyz.com/page1?_escaped_fragment_=name=john 这样我们的服务器可以提供页面的 html 快照。

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

对于仅在 URL 中附加 # 的页面,谷歌爬虫将无法看到通过 ajax 加载的内容,并且不会被索引。所以不会有任何重复的可能

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

于 2013-02-03T10:22:49.320 回答
0

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

于 2013-02-05T16:51:43.553 回答