prerender-SPA程序的SEO优化策略

简介:

随着web2.0的兴起,ajax的时代已经成为了事实,更如今Knockout,backbone, angular,ember前端MDV(model driver view)框架强势而来,Single Page Application已经为大家所熟悉了。如今常见的SPA程序,restfull和前端MDV之类的框架能够实实在在的减少我们的代码开发量,让我更多的注意力关注在真正的业务逻辑上。在众多前端MDV框架从博客中可以看出来笔者还是钟爱于angular,然而服务端平台的选择的话:在.net平台笔者会首选webapi+oData,jvm平台spring restfull。

但是相应带来的是搜索引擎优化(SEO)是个难题,因为爬虫不会去执行JavaScript。现在很幸运的是在Google推出angular之后,也给出了一些解决方案:Google's ajax crawling protocol.此协议现在已被Google和bing所实现。

在协议中规定,搜索引擎会把带有#!someurl的链接转换为escaped_fragment=someurl访问解析,例如:

1
www.example.com/ajax.html#!key=value

  

将会变为

1
www.example.com/ajax.html?_escaped_fragment_=key=value

  

所以如果我们需要更好的SEO的支持的话,我们可以从现在开始把我们程序中的#变为#!,特别angular程序,因为框架原声支持对#!的解析。

基于这个协议和phantomjs(headless的浏览器内核)我们的SPA SEO工具 prerender(http://prerender.io/)应运而生,在官方和社区的支持下,现在已经有node.js express,ruby on rails,java,asp.net,php,python主流框架和nginx之类的支持。

prerender架构流程图如下:

prerender分为两个部分一部分为后端云服务和应用程序客户端,客户端主要拦截来自爬虫的请求在转发到后端云服务处理返回处理后并且去掉多余script/css的html在返回给爬虫。

后端云服务(nodejs项目),利用phantomjs这个无ui headless的浏览器内核加载页面地址,并等到页面解析后获取document html,并处理去掉无用的部分返回到前段客户端程序。

而前段程序则为不同语言框架而实现的不同拦截器,如java的filter,asp.net mvc的HttpModule,主要任务为拦截请求并转发给后端云服务处理。其拦截规则为:

  1. 检查url中是否带有escaped_fragment或者请求user-agent是已知或者配置的爬虫user-agent
  2. 确认拦截的不是js,css之类的资源文件
  3. 在确认url是在白名单中(可选如果配置的白名单的话)
  4. 确认不应该在黑名单中(可选如果配置了黑名单的话)

注:最好值配置黑名单或者白名单中的一种方式。

有了prerender,因为SEO而放弃SPA不再是理由了,关于prerender的任何issue大家可以及时提出,让它更加完善。具体关于如何使用和测试请转向主页和各个client程序页面,http://prerender.io/


作者:破  狼 
出处:http://www.cnblogs.com/whitewolf/ 
本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。该文章也同时发布在我的独立博客中-个人独立博客博客园--破狼51CTO--破狼


相关文章
|
2月前
|
缓存 前端开发 JavaScript
深入解析前端性能优化策略
本文将探讨前端性能优化的关键策略,包括减少HTTP请求、使用CDN加速、缓存优化、代码压缩等方面的技术手段,帮助前端开发者提升网站性能和用户体验。
|
3月前
|
搜索推荐 机器人 索引
内容分发策略与 SEO 优化指南
内容分发是指通过各种媒介分享、发布或传播内容给受众的过程。这些媒介可以包括不同的渠道,例如社交媒体平台(Facebook、Twitter、LinkedIn、朋友圈、微博、小红书、B 站、抖音、公众号等)、电子邮件新闻稿、博客、播客、网站,甚至杂志和报纸等线下场所。内容分发的性质可以涵盖从博客文章、文章、视频、信息图表到播客的各种内容。内容分发的目的是使您的内容尽可能多地接触到相关受众,提高覆盖面、可见性和参与度。该策略可能涉及有机和付费两种分发方式,通常采用多渠道方法来最大限度地扩大覆盖面。
47 2
|
XML 搜索推荐 前端开发
SEO优化中代码的使用要点以及对网站的影响
1、查询网站是否为静态页面 f12 调用,右键打开控制台。输入: alert(document.lastModified); 查看时间,当前时间为伪静态页面 一、HTML标签权重分值排列 内部链接文字: 标题title: 域名:
173 0
|
搜索推荐 SEO
SEO内容策略有哪几种?
给大家分享几种SEO内容策略,可以作为常考: 比如分类页面,必须人工添加分类说明文字,长度至少在两三段文字以上。虽然要花时间,却是不得不做的。好在分类页面应该不会太多
117 0
|
SEO UED 搜索推荐
网站的代码对seo有哪些影响?
SEO的网页代码对网站优化也是有一定的影响的。代码精简与否对seo的影响。精简的代码所带来的直接好处有两点: 一,是由于能高效的爬行,就会受到百度蜘蛛喜欢,这样对收录数量有一定好处。 二是提高spider爬行效率,能在最短的时间内爬完整个页面,这样对收录品质有一定好处。
1280 0
如何提高自己网站的内容策略
一个好的网站必然要有好的网站内容策略,不然再怎么好的推广,也很少取得用户的信赖,没法有很好的发展,很多网站运营人员或站长把网站的希望全寄托在了推广上,却不重视内容的重要性;或者明白内容的重要性,却不懂得制订正确的内容策略。
|
搜索推荐 SEO
目前有效的SEO优化策略是什么?
目前,网络营销规划中最重要的命题是:如何做好SEO优化工作,因为做好优化工作,不仅可以降低企业推广成本,更有效地提高推广效果,而且许多SEO优化网站管理员也很清楚。互联网上的许多优化策略都有助于提高网站搜索引擎优化效果,但由于搜索引擎算法的不断更新和调整,一些优化策略已经过时,不适合当前企业的发展。
|
搜索推荐 SEO
如何处理网站品牌词,被其他站点优先排名?
在日常工作中,我们经常会发现自身新上线的网站品牌名称,被其他的网站收录,这在搜索引擎的世界里,是一个经常发生的现象,主要的原因包括: ① 网址导航、网站目录收录,以及新闻源站点的新闻报道。 ② 第三方的B2B站点黄页的页面展现。
1227 0
|
搜索推荐 UED 索引
404页面在seo优化中的作用
很多时候我们在做seo优化的时候,只注意网站结构专注与如何排名提高流量,404页面在网站的太原SEO优化中,也有着重要的作用,下面为大家分析一下。 我们在浏览某个网站时,如果网站的页面链接或者网站程序等出现问题,浏览器会给浏览访客一个提示页面。
973 0