关于vue项目的seo问题及解决方案

用vue搭建的网站前后端分离不利于SEO
原因如下:

  1. 搜索引擎的基础爬虫原理就是抓取url,然后获取html源码并进行解析,而vue的页面是通过数据绑定机制来渲染页面的,所以当爬虫的时候 获取到的最先的并不是我们的数据,而是一个html的模型页面,所以说,用js来渲染数据对于seo而言并不友好
  2. SEO的本质是一个服务器向另一个服务器请求数据,解析请求的内容。但一般来说搜索引擎是不回去执行请求到的js的,也就是说,如果一个vue的单页应用,html在服务端还没有渲染数据,在浏览器才把数据渲染出来,这样的话,搜索引擎请求到的html就是那个在服务端 还没有渲染到数据的html,也就是空空如也的html,这样子很不利于我们的 内容被搜索引擎给捕捉到。so,服务端的渲染需要尽量在服务器发送到浏览器前,页面就需要是有数据的。
  3. 一般的数据逻辑操作是放在后端的。排序这个如果数据量小的话,那在前后端的排序看起来都是一样的,而如果是数据量大的,例如1000-10000条的数据,前端要排序就都要请求过来,这样明显是不合理的。

可以通过其他的技术来解决

1.先说说我自己的解决方案,就是通过nuxt.js/ssr
官网地址nuxt.js:https://zh.nuxtjs.org/guide/installation/
官网地址ssr:https://cn.vuejs.org/v2/guide/ssr.html

nuxt/ssr的简介
ssr是vue的服务端的渲染技术
nuxt是一个可以用来做ssr服务端渲染的框架
他们之间的关系就是:
ssr是技术基础,而nuxt就是封装

ssr的基本套路

  • 在服务端渲染vue的实例
  • 将这个vue实例在服务器渲染成字符串
  • 将字符串传输到客户端,到了客户端就已经是html的字符串了

Nuxt和普通的Vue

  1. Nuxt是同构程序,这里的同构指的是一套代码,可以在浏览器运行,也可以在服务器(Nodejs)运行,也就是说可以同时使用浏览器的APINodejsAPI

  2. 普通的Vue页面只能使用浏览器的API,即使在Nodejs环境下开发也只是使用Webpack来编译打包。

  3. Nuxt是前后端框架的集合,前端采用Vue,后端可选框架有Express、koa2, egg, api等,所以可以理解为Vue是一个页面模板的存在,类似于art-template , ejs

  4. Nuxt支持单页和多页应用。

注意:虽然Nuxt确实很强大,但是目前市面上应用的却不是很多,因为nodejs作为服务器端语言目前还是相对较少的,更多的还是java,php等,

小结
以前的vue项目,服务器只管给客户端传输空白的html和js
而实际上所以显示的东西都是在浏览器进行编译的,假设浏览器禁用掉js,那么客户端上将会是一片空白
而我们现在使用到的ssr技术,可以在服务端直接把vue组件变成html再发送给浏览器,所以即使浏览器禁用掉了js,我们还是可以看到内容渲染到服务器当中啦。

参考:https://blog.csdn.net/codeliuguisheng/article/details/79634422

Logo

前往低代码交流专区

更多推荐