当我以前在需要搜索引擎索引内容的项目中异步加载页面时,我使用了一种非常简单的技术,即
<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的角度来看,使用新方式有什么好处?
答案 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