Phantomjs对vue进行seo优化

1 篇文章 0 订阅
本文详细介绍了如何使用PhantomJS解决Vue应用的SEO问题,通过Nginx代理和PhantomJS解析,确保搜索引擎能抓取到完整内容。步骤包括安装PhantomJS、配置解析模板和设置Nginx条件转发。
摘要由CSDN通过智能技术生成

简介

为什么说VUE不利于SEO,SEO本质是一个服务器向另一个服务器发起请求,解析请求内容。但一般来说搜索引擎是不会去执行请求到的js的。也就是说,如果一个单页应用,html在服务器端还没有渲染部分数据数据,在浏览器才渲染出数据,而搜索引擎请求到的html是没有渲染数据的, 所以就很不利于内容被搜索引擎搜索到。
Phantomjs是一个基于webkit内核的无头浏览器,即没有UI界面,即它就是一个浏览器,只是其内的点击、翻页等人为相关操作需要程序设计实现。
虽然“PhantomJS宣布终止开发”,但是已经满足对Vue的SEO处理。
这种解决方案其实是一种旁路机制,原理就是通过Nginx配置,判断访问的来源UA是否是爬虫访问,如果是则将搜索引擎的爬虫请求转发到一个node server,再通过PhantomJS来解析完整的HTML,返回给爬虫。

1.安装PhantomJS

  1. 下载 PhantomJS
    1.1:从官网http://phantomjs.org/download.html下载phantomjs-2.1.1-windows.zip
    在这里插入图片描述

    1.2:解压出来,然后添加系统环境变量:如我的文件夹是在D:\install\phantomjs-2.1.1-windows。我们就在系统环境变量中添加:D:\install\phantomjs-2.1.1-windows\bin即可。(不会设置环境变量的可以百度下)
    在这里插入图片描述
    在这里插入图片描述

    1.3:随便打开一个命令窗口,运行命令phantomjs -v,如果出现版本号,则说明设置环境变量成功。
    在这里插入图片描述

2.下载解析模板

2.1:下载地址:https://github.com/lengziyu/vue-seo-phantomjs
2.2:下载后,打开命令栏输入npm i,先安装下express依赖包。
在这里插入图片描述
2.3打开server.js文件,设置要解析的网址:http://localhost:8000/,(等下我们用nginx开启8000端口)。
在这里插入图片描述

3.设置nginx

在这里插入图片描述

3.1:在conf文件夹下的nginx.conf文件中写上(我用的nginx版本为:nginx-1.21.1)

 location / {
            root   html;
            index  index.html index.htm;
			  proxy_set_header  Host            $host:$proxy_port;
			      proxy_set_header  X-Real-IP       $remote_addr;
			      proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
			
			      if ($http_user_agent ~* "Baiduspider|twitterbot|facebookexternalhit|rogerbot|linkedinbot|embedly|quora link preview|showyoubot|outbrain|pinterest|slackbot|vkShare|W3C_Validator|bingbot|Sosospider|Sogou Pic Spider|Googlebot|360Spider") {
					proxy_pass  http://localhost:8081;
			      }
        }

3.2:把html文件夹下的index.html的内容改为:

<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
    body {
        width: 35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    }
</style>
</head>
<body>


</body>

<script>
	document.body.innerHTML="<p>welcome to nginx</p>"
</script>
</html>

4.开始测试

4.1:到vue-seo-phantomjs-master文件下,启动server.js服务:node server.js
在这里插入图片描述
4.2:到nginx-1.21.1文件夹下,启动nginx:start nginx
在这里插入图片描述
4.3:打开谷歌浏览器然后输入:http://localhost:8000/。查看页面源代码,我们发现body中还是空的,和我们html写的代码是一样的,这是因为我们没有设置user-agent,没有触发代理。
在这里插入图片描述

4.4:设置user agent,按F12->右上角三个小点->More tools-Network conditions 把Use Browser default的勾选去掉,写上Baiduspider
在这里插入图片描述

4.5上面设置好后,刷新下页面。可以看到我们server服务窗口已经把解析到的代码返回了
在这里插入图片描述
在我们浏览器页面查看页面源代码,也可以到js中的代码已经添加到body中去了。到这里,恭喜你已经seo优化成功了!
在这里插入图片描述
4.7:以上是windows环境下的seo优化测试,服务器上也差不多,后续也会出服务器上的教程。如果您对上面的内容有疑问的话,可以留言我哦~

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值