我们已经准备好了,你呢?

2024我们与您携手共赢,为您的企业形象保驾护航!

前言

目前在前端行业中,Vue单页应用非常流行,它的开发理念使得我们可以真正做到前后端分离、解耦。单页应用通过浏览器动态解析JS来呈现最终的页面,提供了更好的用户体验,也提高了网站性能。但是网络爬虫并不会动态解析Js,所以访问所有没有经过处理的单页应用URL,都只能拿到项目入口(index.html)文件中的代码,无法拿到具体的内容,这对Seo优化极其不友好。为了优化项目Seo,目前主要有两种解决方案:服务端渲染(Side)和预渲染()。

本文主要介绍预渲染方案中使用服务方法解决Vue单页SEO问题

预渲染的两种方式

-温泉-:

本插件是在构建项目(npm run build)时,会根据路由将项目打包成相应的html静态文件的插件。因此只适用于以下项目类型。

:当页面渲染完成的时候,此服务会直接替代网站后端响应爬虫请求,把渲染好的静态页面直接返回给爬虫。由于此服务是在页面渲染完成的时候起作用的,所以不再受到方法一的路由限制。

使用

1.安装

npm install prerender

2.启动.js

const prerender = require('prerender');
const server = prerender();
server.start();

3. 测试

http://localhost:3000/render?url=https://www.example.com/

至此你已经启动了一个服务并返回了内容,你在页面上看到的内容是服务预先渲染成静态页面的,服务默认运行在3000端口,你可以参考文档修改默认。

中间件的使用

我们理想的渲染模式是:普通用户访问时,不需要通过服务提前渲染,而是通过js动态渲染;当爬虫访问该页面时,通过服务将页面提前渲染为静态页面,供爬虫抓取。

那么如何能实现上面的需求呢?

幸好,针对这样的需求,提供了对应的中间件:-node()、(Rails)、.()、nginx.conf 等,具体可以参考文档中的模块文档,笔者使用的是-node()节点中间件,具体配置改动如下:

1.安装

安装

npm install prerender-node --save

2.修改app.js配置

var prerender = require('prerender-node')
app.use(
  prerender
    //爬虫访问转发到prerender服务进行预渲染
    .set("prerenderServiceUrl", "http://localhost:3000/")
    //普通用户访问直接访问项目地址不进行预渲染
    .set("host", "wwww.xxxx.com")
);

3.重启服务

防范措施:

测试

安装完服务和中间件后,预渲染就完成了。下面是测试方法。

测试原理:添加谷歌浏览器模拟爬虫访问,具体实现如下:

1.打开 开发者工具。

2.点击(进入手机编辑模式)按钮,如图

页面优化模板_单页面seo优化_单页网站优化

3.点击 下拉菜单,选择最后的Edit…,会提示进入下图。

页面优化模板_单页面seo优化_单页网站优化

4. 点击添加按钮

5 User agent: /5.0 (;/2.0;+) 其他如图。

页面优化模板_单页面seo优化_单页网站优化

6.单击保存。

7.点击选择模拟设备下拉菜单,选择刚刚添加的模拟百度爬虫

经过以上7个步骤之后,你的浏览器就可以模拟爬虫访问了,此时打开浏览器控制台过滤doc类型,刷新页面,就可以看到页面返回了一个编译好的静态文件。

单页网站优化_页面优化模板_单页面seo优化

选择其他非爬虫模式或者不开启调试模式,刷新页面,可以看到页面返回是js动态解析的。

单页网站优化_单页面seo优化_页面优化模板

总结

整体配置思路是:通过中间件判断页面是否被爬虫访问,如果是则转发给服务进行提前编译,否则直接返回js动态渲染页面。

其他Vue单页SEO优化请参考:Vue单页项目SEO完全指南

二维码
扫一扫在手机端查看

    Tags : vue seo
本文链接:https://by928.com/3290.html     转载请注明出处和本文链接!请遵守 《网站协议》
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。

项目经理在线

我们已经准备好了,你呢?

2020我们与您携手共赢,为您的企业形象保驾护航!

在线客服
联系方式

热线电话

13761152229

上班时间

周一到周五

公司电话

二维码
微信
线