本文部分内容参考官方文档

Vue SPA单页面应用对SEO不太友好,当然也有相应的解决方案,下面列出几种SEO方案

  1. SSR服务器渲染

    服务端渲染, 在服务端html页面节点, 已经解析创建完了, 浏览器直接拿到的是解析完成的页面解构

    关于服务器渲染:Vue官网介绍 ,对Vue版本有要求,对服务器也有一定要求,需要支持nodejs环境。

    优势: 更好的 SEO,由于搜索引擎爬虫抓取工具可以直接查看完全渲染的页面

    缺点: 服务器nodejs环境的要求, 且对原代码的改造成本高! nuxt.js 坑比较多, 做好踩坑的准备

  2. 静态化 (博客, 介绍性官网)

    Nuxt.js 可以进行 generate 静态化打包, 缺点: 动态路由会被忽略。 /users/:id

    优势:

    • 编译打包时, 就会帮你处理, 纯静态文件,访问速度超快;

    • 对比SSR,不涉及到服务器负载方面问题;

    • 静态网页不宜遭到黑客攻击,安全性更高。

    不足:

    • 如果动态路由参数多的话不适用。

  3. 预渲染 prerender-spa-plugin (插件)

    如果你只是对少数页面需要做SEO处理(例如 / 首页, /about 关于等页面)

    预渲染是一个非常好的方式, 预渲染会在构建时, 简单的针对特定路由, 生成静态 HTML 文件 (打包时可以帮你解析静态化)

    优势: 设置预渲染简单, 对代码的改动小

    缺点: 只适合于做少数页面进行SEO的情况, 如果页面几百上千, 就不推荐了 (会打包很慢)

  4. 使用Phantomjs 针对爬虫 做处理

    Phantomjs是一个基于webkit内核的无头浏览器,没有UI界面,就是一个浏览器,

    其内的点击、翻页等人为相关操作需要程序设计实现。

    这种解决方案其实是一种旁路机制,原理就是通过Nginx配置, 判断访问的来源UA是否是爬虫访问,

    如果是则将搜索引擎的爬虫请求转发到一个node server,再通过PhantomJS来解析完整的HTML,返回给爬虫

总结:

  • 如果构建大型网站,如商城类 => SSR服务器渲染

  • 如果只是正常公司官网, 博客网站等 => 预渲染/静态化/Phantomjs 都比较方便

  • 如果是已用SPA开发完成的项目进行SEO优化,而且部署环境支持node服务器,使用 Phantomjs

前端面试题Vue 项目如何进行 SEO 优化相关推荐

  1. 每日三道前端面试题--vue 第四弹

    每日三道前端面试题--vue 第四弹 什么是vue的计算属性? 官方定义: 计算属性和侦听属性有什么区别?怎样选择? 两者之间的对比 两者之间的区别 两者之间怎样选择 总结 简述axios的安装和引入 ...

  2. 每日三道前端面试题--vue 第五弹

    每日三道前端面试题--vue 第五弹 DOM 渲染在哪个周期中就已经完成? 说明Vue父组件向子组件传值的方法(代码或文字描述均可)? 请列举axios的配置项及含义(五条)? DOM 渲染在哪个周期 ...

  3. 每日三道前端面试题--vue 第三弹

    每日三道前端面试题--vue 第三弹 Vue常见的指令有哪些? Vue的生命周期函数有哪些?(中文及英文)? vue2.0生命周期 vue3.0生命周期 vue怎样自定义指令? 自定义指令 全局注册 ...

  4. 每日三道前端面试题--vue 第二弹

    每日三道前端面试题--vue 第二弹 简述框架和函数库的区别? 1. 库(Library) , 代表 : jquery 2. 框架 (Framework), 代表:vue 3. 主要区别 : 控制反转 ...

  5. 每日三道前端面试题--vue 第一弹

    每日三道面试题--vue 第一弹 1.对vue渐进式框架的理解 2.v-if 和v-show的区别 3.MVC.MVP和MVVM的区别 一.MVC 1.视图(View):用户界面. 2.控制器(Con ...

  6. 前端面试题——VUE

    VUE面试题 1.v-show 和 v-if的区别,v-show 和 keep-alive 的区别 答案:v-show是 CSS display 控制显示和隐藏 v-if 是组件真正的渲染和销毁,而不 ...

  7. 看到一个不错的前端面试题开源项目

    来源 | https://github.com/Wscats/articles 最近在整理 JavaScript 的时候发现遇到了很多面试中常见的面试题,本文主要是在 Github 等各大论坛收录的 ...

  8. 前端面试题--vue

    文章目录 1. vue 生命周期 2. VUE 中 computed 和 watch 的区别是什么? 3. 动态绑定 类名和样式 4. v-if 与 v-show 的区别 5. v-for 列表渲染 ...

  9. Vue 项目如何进行 SEO 优化

    目录 1.前言 2.SSR服务器渲染 3.静态化 (博客, 介绍性官网) 4.预渲染 prerender-spa-plugin (插件) 5.使用Phantomjs 针对爬虫 做处理 总结: 1.前言 ...

最新文章

  1. debian 7上安装svn
  2. 用ASP实现隐藏链接方法
  3. 重启iis提示不支持此接口的解决方案
  4. 由浅到深讲解C#-LINQ
  5. Boost:使用行列式函数和transform()算法计算许多4x4矩阵的行列式
  6. mysql 5.6 binlog组提交
  7. SQLServer中的死锁的介绍
  8. Ubuntu连接SSHHow to: Connect SSH, SFTP and FTP Servers using Nautilus ubuntu 13.04
  9. java仔_Java基础语法吐血整理
  10. 2.企业安全建设入门(基于开源软件打造企业网络安全) --- 业务网纵深防御体系建设
  11. 大数据时代下的Scrapy爬虫框架
  12. 这5个免费音效素材网站,你一定要收藏好~
  13. 函数模板和类模板详解
  14. 电子科技大学人工智能期末复习笔记(四):概率与贝叶斯网络
  15. hdu3397 线段树
  16. 罗克韦尔Rockwell Automation EDI 项目
  17. 计算机放音乐声音小在吗调,功放声音很小是什么原因,该怎么调?
  18. 斐波那契(Fibonacci,意大利数学家,1170年-1240年)数列,又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、……。这个数列从第三项开始,每一项都等于前两项之
  19. mysql配置修改_mysql配置修改
  20. dell 双系统 ubuntu20.04

热门文章

  1. Java探针--javaagent--使用/实例
  2. 视频教程-桫哥-GOlang-09反射-Go语言
  3. nuxt1迁移奥nuxt2_nuxt离线第一个pwa教程
  4. 最全的CSS浏览器兼容问题整理(IE6.0、IE7.0 与 FireFox)
  5. 代码重构:面向单元测试
  6. 手机黑屏时闪屏怎么回事_电脑总是黑屏,闪屏是怎么回事啊
  7. vue动态在页面添加背景图片
  8. MYSQL的最左匹配原则的原理讲解
  9. excel mysql插件_【智分析Excel插件下载】智分析Excel插件 v1.0 官方版-开心电玩
  10. ERP的财务凭证的操作与设计--开源软件诞生23