众所周知vue项目本质是单页面项目,对SEO优化十分不好,找起资料来更是麻烦。闲话不多说,分享一下我对自己项目进行的SEO方案及生成sitemap.xml。
需要的库

npm install sitemap-webpack-plugin --save-dev
npm install prerender-spa-plugin -D
前者是用来生成sitemap的,后者是SEO方案

  • vue.config.js
const PreRenderSPAPlugin = require('prerender-spa-plugin')
const Renderer = PreRenderSPAPlugin.PuppeteerRenderer
const path = require('path')
const webpack = require('webpack')
//下面这个routes理论上可以直接require('./src/router.paths').default.map(r => r.path).filter(p => !p.match(/\*/))这么引入
//如果你的route文件是单独把路径写在其他文件里面,不包括引入vue等操作的话。
//否则就和我一样,不要偷懒,手动写入路由链接
const routes = ['/', '/test1', '/test2', '/test3']
const SitemapPlugin = require('sitemap-webpack-plugin').default
\module.exports = {publicPath: './',devServer: {port: 5888},pages: {index: {entry: 'src/main.js',title: 'test'}},configureWebpack: config => {return {plugins: [new PreRenderSPAPlugin({// 生成文件的路径,也可以与webpakc打包的一致。// 下面这句话非常重要!!!// 这个目录只能有一级,如果目录层次大于一级,在生成的时候不会有任何错误提示,在预渲染的时候只会卡着不动。staticDir: path.join(__dirname, 'dist'),// 对应自己的路由文件,比如a有参数,就需要写成 /a/param1。routes: routes,// 这个很重要,如果没有配置这段,也不会进行预编译renderer: new Renderer({inject: {foo: 'bar'},headless: false,//在 main.js 中 document.dispatchEvent(new Event('render-event')),两者的事件名称要对应上。renderAfterDocumentEvent: 'render-event',args: ['--no-sandbox', '--disable-setuid-sandbox']})}),new SitemapPlugin('https://www.test.com', routes, {fileName: 'sitemap.xml',lastMod: true,changeFreq: 'monthly'})]}}
}
  • main.js
new Vue({router,mounted() {document.dispatchEvent(new Event('render-event'))},render: h => h(App)
}).$mount('#app')
  • router.js
 mode: 'hash'//切记模式要切换为hash,history不管用的

以上配置完成,打包完之后,sitemap.xml就放在dist文件夹之中。需要注意的是因为这个SEO方案是对vue项目进行预渲染,所以每次不仅是打包,而且保存的时候也要花费大量时间预渲染,极其不推荐在项目完成之前进行这项工作。
最后,我本身也是个小白,对以上知识点同样一知半解,欢迎评论斧正

参考资料:
https://juejin.im/post/5dcbc2196fb9a0606f094186
https://github.com/40818419/vue-router-sitemap/issues/9

vue项目SEO优化以及生成sitemap.xml相关推荐

  1. Vue项目SEO优化之预渲染--prerender-spa-plugin 搭配vue-meta-info

    Vue项目SEO优化之预渲染–prerender-spa-plugin 搭配vue-meta-info prerender-spa-plugin配置 安装 执行npm i prerender-spa- ...

  2. vue项目seo优化-预渲染prerender-spa-plugin配置

    文章目录 前言 一.prerender-spa-plugin是什么? 1.优点 2.缺点 二.使用步骤 1.安装 prerender-spa-plugin 2.配置 prerender-spa-plu ...

  3. Vue项目SEO优化解决方案

    目录 前言 一. Vue 项目进行 SEO 优化 1. SSR服务器渲染 2. 静态化 (博客, 介绍性官网) 3. 预渲染 prerender-spa-plugin (插件) 4. 使用Phanto ...

  4. SEO优化之根据网址自动生成sitemap.xml文件

    背景: 公司要做一个电商的网站,而该项目是由J2EE架构完成,项目经理说要让Java代码自助每天生成电子商务网站的Sitemap文件,然后开始上网各种查资料!!!然而,终于碰上了本人有生以来第一个在网 ...

  5. nuxt 如何生成sitemap.xml 动静态站点地图

    前言 sitemap.xml的作用是将我们网站的所有页面都被SEO(浏览器搜索引擎)收录,我们网站的内容更容易被用户搜到,同时增加我们的网站的知名度,排名更靠前.简言之就是用技术做网站推广,所以对于网 ...

  6. Vue 项目性能优化方案

    前言 Vue 框架通过数据双向绑定和虚拟 DOM 技术,帮我们处理了前端开发中最脏最累的 DOM 操作部分, 我们不再需要去考虑如何操作 DOM 以及如何最高效地操作 DOM:但 Vue 项目中仍然存 ...

  7. Vue-cli3项目seo优化--静态化打包(动态改变页面Titl、keyWords、description)

    Vue-cli3项目seo优化,静态化打包(动态改变页面Titl.keyWords.description) 文章目录 Vue-cli3项目seo优化,静态化打包(动态改变页面Titl.keyWord ...

  8. 前端Vue 项目性能优化

    前言 Vue 框架通过数据双向绑定和虚拟 DOM 技术,帮我们处理了前端开发中最脏最累的 DOM 操作部分, 我们不再需要去考虑如何操作 DOM 以及如何最高效地操作 DOM:但 Vue 项目中仍然存 ...

  9. vue项目打包优化策略

    vue项目打包优化策略 使用vue-cli部署生产包时,发现资源包很大,打包后的vendor.js达到了1.4M,这已经很大了,而且会影响到首屏加载.那么,怎么优化呢? 1.组件按需加载 这是首先可以 ...

最新文章

  1. 如何衡量一个项目的交付质量???
  2. ThreadGroup分析
  3. Linux下的USB总线驱动 3
  4. 保护DNS对数字网络安全越来越重要
  5. 为什么你应该让你的孩子尽早学习编程
  6. Linux在线扫描热添加的SCSI/iSCSI设备
  7. Linux 字符设备驱动开发基础(一)—— 编写简单 LED 设备驱动
  8. c语言编写界面图形表示,「分享」C语言如何编写图形界面
  9. 计算机无故重启是什么原因,事实:无缘无故重新启动计算机有什么问题?计算机无故重启的原因和解决方法...
  10. STM32外部中断具体解释
  11. 【Unity游戏开发】Unity基础(一)面板介绍
  12. 学Python可以做Web前端开发吗?
  13. 【bzoj4987】Tree【树形dp】
  14. 图片转成文字:方便准确的OCR识图软件
  15. 计算机专业分数线最新,计算机专业近三年录取分数线分析
  16. java助理工程师主要做什么工作,Java助理工程师面试的惨痛教训
  17. django中查询的select_related方法和prefetch_related方法
  18. Python:50行代码实现下载小说,图片章节可自动识别转文字保存...
  19. WebStorm2016.1.1免注册破解方法
  20. RGB转CMY最简单的方法

热门文章

  1. 山西师范大学计算机科学与技术专业怎么样,山西师范大学最好的专业是什么
  2. 学习笔记 | 分页查询employees表,每5行一页,返回第2页的数据
  3. [转]一个优秀的php相册系统——Coppermine Photo Gallery
  4. vs code1.61.1 任务管理器里出现2个rg进程占用cpu很高电脑运行卡
  5. 元宇宙开源项目,你千万不能错过!
  6. java oracle 结果集_java如何显示从oracle中读取的全部结果集?
  7. java页面字体设置颜色_java 设置字体颜色字体 窗体设置图片背景
  8. 阿里云架构师马颂:云上高性能计算助力基因测序
  9. 如何用计算机撩手机号,宅男福音:巧用iphone计算机,撩走MM手机号
  10. 他山之石——运维平台哪家强?