×

SEO PhantomJS 优化 VUE

使用PhantomJS优化VUE的搜索引擎优化方案

元智汇电子 元智汇电子 发表于2023-12-24 16:49:02 浏览177 评论0

抢沙发发表评论

原理

我们通过在Nginx中拦截并判断User-Agent(ua)是否为爬虫,来实现搜索引擎对于VUE应用的优化。如果不是爬虫,则直接返回页面;如果是爬虫,则先通过PhantomJS进行完整的HTML渲染,然后再返回给搜索引擎。

注:只要两种返回内容基本一致,搜索引擎不会认为是作弊手段,从而避免可能的处罚。


安装 PhantomJS

对于MAC本地用户:

image.png

检查安装是否成功:

image.png

版本应为2.1.1。


编写脚本文件spider.js

image.png

image.png

image.png


进行本地测试

使用命令phantomjs spider.js 'www.baidu.com/'来访问百度网站。

如果成功,将返回HTML结构,但可能会观察到访问速度明显减慢的现象。

为了实现对搜索引擎爬虫请求的响应,我们需要将这一预渲染命令服务化,并通过Node.js创建一个简单的Web服务。以下是一个使用ExpressJS的示例代码:

image.png

image.png

通过运行node server.js,我们得到了一个能够预渲染的Web服务。接下来的任务是将搜索引擎爬虫的请求转发到该服务,并将渲染结果返回给爬虫。为了防止Node.js进程挂掉,可以使用nohup node server.js &。

通过Nginx配置,我们可以轻松实现这个过程:

image.png


方案的优势:

  • 对VUE代码改动影响较小: 使用PhantomJS方案时,对VUE代码的改动影响相对较小,甚至可以基本无需改动,从而降低了开发成本。

  • SEO方案可复用: 该SEO方案可以被抽离出来,以便在其他项目中重复使用,提高了代码的可维护性和复用性。

方案的劣势:

  • 访问速度下降: 使用PhantomJS方案可能导致访问速度明显减慢,这是一个不可忽视的劣势,特别是在对网站性能要求较高的情况下。

  • ES6编译问题: 部分ES6语法的编译可能会出现问题,例如对Set、Promise等的支持可能存在不足,这需要额外的处理和注意。

  • 高并发访问服务器压力大: 当面临高并发访问时,PhantomJS方案可能会对服务器造成较大的压力,需要考虑相关的性能优化和扩展措施。


群贤毕至

访客