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访问解析,例如:

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

将会变为

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架构流程图如下:

011727108.jpg

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/




 本文转自 破狼 51CTO博客,原文链接:http://blog.51cto.com/whitewolfblog/1338198,如需转载请自行联系原作者

相关文章
|
7月前
|
搜索推荐 机器人 索引
内容分发策略与 SEO 优化指南
内容分发是指通过各种媒介分享、发布或传播内容给受众的过程。这些媒介可以包括不同的渠道,例如社交媒体平台(Facebook、Twitter、LinkedIn、朋友圈、微博、小红书、B 站、抖音、公众号等)、电子邮件新闻稿、博客、播客、网站,甚至杂志和报纸等线下场所。内容分发的性质可以涵盖从博客文章、文章、视频、信息图表到播客的各种内容。内容分发的目的是使您的内容尽可能多地接触到相关受众,提高覆盖面、可见性和参与度。该策略可能涉及有机和付费两种分发方式,通常采用多渠道方法来最大限度地扩大覆盖面。
330 2
|
数据采集 JSON JavaScript
优化SPA:使得网站对SEO更友好
为何SPA对SEO不友好 解决方案 另外增加 SPA 曝光度的方法
266 0
|
XML 搜索推荐 前端开发
SEO优化中代码的使用要点以及对网站的影响
1、查询网站是否为静态页面 f12 调用,右键打开控制台。输入: alert(document.lastModified); 查看时间,当前时间为伪静态页面 一、HTML标签权重分值排列 内部链接文字: 标题title: 域名:
206 0
|
搜索推荐 SEO
SEO内容策略有哪几种?
给大家分享几种SEO内容策略,可以作为常考: 比如分类页面,必须人工添加分类说明文字,长度至少在两三段文字以上。虽然要花时间,却是不得不做的。好在分类页面应该不会太多
142 0
|
SEO UED 搜索推荐
网站的代码对seo有哪些影响?
SEO的网页代码对网站优化也是有一定的影响的。代码精简与否对seo的影响。精简的代码所带来的直接好处有两点: 一,是由于能高效的爬行,就会受到百度蜘蛛喜欢,这样对收录数量有一定好处。 二是提高spider爬行效率,能在最短的时间内爬完整个页面,这样对收录品质有一定好处。
1457 0
如何提高自己网站的内容策略
一个好的网站必然要有好的网站内容策略,不然再怎么好的推广,也很少取得用户的信赖,没法有很好的发展,很多网站运营人员或站长把网站的希望全寄托在了推广上,却不重视内容的重要性;或者明白内容的重要性,却不懂得制订正确的内容策略。
|
SEO 算法 索引
怎么降低删除页面对SEO网站排名的影响?
如何从您的网站正确删除页面 每当您从网站删除页面(或帖子)时,您也会删除一个或多个网址。该旧网址在访问时通常会返回“未找到404”错误,这对百度或您的用户来说不是最好的选择。这是你真正想要发生的事吗?您可以将已删除的页面重定向到另一个页面,或者,如果您确实希望从您的站点中删除内容,提供410标题实际上是一个更好的主意。
1068 0
|
搜索推荐 SEO
目前有效的SEO优化策略是什么?
目前,网络营销规划中最重要的命题是:如何做好SEO优化工作,因为做好优化工作,不仅可以降低企业推广成本,更有效地提高推广效果,而且许多SEO优化网站管理员也很清楚。互联网上的许多优化策略都有助于提高网站搜索引擎优化效果,但由于搜索引擎算法的不断更新和调整,一些优化策略已经过时,不适合当前企业的发展。
|
UED SEO 算法
SEO策略和关键字排名:移动与桌面
就好像我们在任何特定的搜索引擎优化活动中都没有足够的想法一样,现在必须将您的方法分离并优化为移动和桌面搜索。 虽然手机在过去几年中变得非常重要,但这不应该忽视桌面电脑。虽然移动和桌面搜索引擎优化遵循相同的基本原则和最佳实践,但仍有细微差别和差异需要考虑到整体策略。
2016 0