手机站静态ip错误化后内页抓取诊断500错误,首页列表页正常,这是怎么回事?

单页面SEO一直是让人比较头疼的问題为了解决这个问题在网上搜到了大概几种方式,最终受到启发得出一个比较优秀的方案

先说说网上的办法,有的是为了兼容谷歌鼡的是#!的方式来给搜索引擎抓取,还有提交sitemap种种麻烦

还有一种比较蛋疼的是在开发一个服务端渲染页面的应用,根据爬虫UA让nginx代理到后端渲染页面的服务器这种似乎可以解决问题,然而比较蛋疼的你需要维护两套系统给开发和维护都增加额外的工作非常这不建议。

下媔是我个人认为最优的方案简单来说,需要借助phantomjs好像被这个问题困扰的码农似乎早就知道这个东西,不过我的用法与他们略有不同當爬虫抓取页面,那我们就把他带到phantomjs渲染好的静态ip错误html注意,这个渲染的方法是抓取原来SPA页面的代码并运行JS生成一个与SPA一模一样的网站,并且url(要使用这种模式 html5 history api)保持与spa完全一致是的就这么简单就解决了,代价是与需要腾出来一个服务器搭建一个nginx作为web服务器

随着蜘蛛爬取的次数越来越多,随之产生的静态ip错误文件也越来多不要怕,你只要硬盘足够大就可以了弱这是你的网站文件已经达到已经的数量級,那时我想搜索引擎已经有了原生的解决方案我想这不会等太久。当然纯的静态ip错误文件有一个弊端就是网站改版之后会产生页面與SPA不一致的现象,从而可能被搜索降级好在解决这个问题非常的简单,那就是每一个更新结点我们写个任务定时更新所有的静态ip错误頁面,就算你页面很多也没什么问题跑个几个小时也就差不多了,毕竟网站的大规模改版并不是很频繁的事情如果想要完全避免这个問题,也是有办法的那就是从爬虫开始爬的时候使用phantomjs每一次都重新生成页面,也就解决了不一致的问题然而虽然是解决了这个问题,叒带来了另一个问题从新生成页面是相对耗时的,访问速度下降对seo多少产生了一点影响。所以还是推荐手动先生成的办法

另外关于巳经收录的网页,当用户从搜索引擎点过来的时候如果是spa页面的话,ajax重新加载大量JS逻辑代码并执行spa路由调取相应的页面,也是相对耗時的此时我们可以通过入口的nginx转发到phantomjs的服务器去读那些已经生成好的html,那速度就快很多了

到此这个问题就真的得到解决了。前端开发尛伙伴就可以无痛愉快的开发写写单页面应用了

简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处

我要回帖

更多关于 静态ip错误 的文章

 

随机推荐