Ajax Crawling:旧方式与新方式(#!)

时间:2010-11-13 11:39:30

标签: ajax jquery seo

旧路

当我以前在需要搜索引擎索引内容的项目中异步加载页面时,我使用了一种非常简单的技术,即

<a href="page.html" id="example">Page</a>
<script type="text/javascript">
    $('#example').click(function(){
        $.ajax({
            url: 'ajax/page.html',
            success: function(data){
                $('#content').html(data);
            }
        })
   });
</script>

编辑:我曾经实现了haschange事件来支持javascript用户的书签。

新方式

最近谷歌提出了ajax抓取的想法,在这里阅读:

http://code.google.com/web/ajaxcrawling/

http://www.asual.com/jquery/address/samples/crawling/

基本上他们建议将“website.com/#page”更改为“website.com/#!page”并添加包含该片段的页面,例如“website.com /?_ escaped_fragment_ = page”

使用新方式有什么好处?

对我来说,似乎新的方式为我之前做的事情添加了更多的工作和复杂性:我设计的网站没有ajax工作,然后我添加了ajax和hashchange事件(以支持后退按钮)和书签)在最后阶段。

从SEO的角度来看,使用新方式有什么好处?

4 个答案:

答案 0 :(得分:5)

这个想法是让AJAX应用程序可以抓取。根据HTTP规范,无论片段标识符(哈希标记之后的部分)如何,URL都引用相同的文档。因此,搜索引擎会忽略片段标识符:如果您有www.example.com/page#content的链接,则抓取工具只会请求www.example.com/page

使用新方案时,当您使用#!表示法时,爬网程序会知道该链接指的是其他内容。抓取工具将URL转换为另一个(丑陋的)URL并从您的Web服务器请求它。 Web服务器应该使用代表AJAX内容的静态HTML进行响应。

编辑关于原始问题:如果您已经有静态页面的常规链接,那么此方案对您没有帮助。

答案 1 :(得分:3)

优势并不适用于您,因为您正在使用渐进增强功能。新的Google功能适用于完全使用Javascript编写的应用程序,因此爬虫无法读取。我认为你不需要在这里做任何事情。

答案 2 :(得分:1)

我认为背后的想法是,Javascript用户也可以为页面添加书签。如果你看看你的“旧”方法,它只是替换页面上的内容;无法复制URL以将当前状态的页面显示给其他人。

因此,如果您已实施新的#!方法,则必须确保这些网址通过Javascript指向正确的网页。

答案 3 :(得分:1)

我认为谷歌更容易确定您没有使用重复内容。我在网址中包含foo /#/ bar.html这样的哈希并将其传递给固定链接结构,但我不确定谷歌是否喜欢。

但是有趣的问题。 1