非SSR项目VUE老项目支持SEO方案

一、meta标题头配置

1、配置google分享和爬虫抓取头

ini 复制代码
<meta property="og:type" content="website" />
<meta property="og:title"  content="**"/>
<meta property="og:description" content="***" />
<meta property="og:url" content="***"/>
<meta  property="og:image" content="***.jpg" />

2、插件"vue-meta-info",使得每个页面都有独立的title配置:

安装vue-meta-info

//yarn $ yarn add vue-meta-info //NPM npm i vue-meta-info --save
2.

在main.js文件中引入vue-meta-info

import Vue from 'vue' import MetaInfo from 'vue-meta-info'; Vue.use(MetaInfo)
3.

静态使用 metaInfo

动态使用 metaInfo

二、SPA页面静态化

安装prerender-spa-plugin

注意因为原来的"prerender-spa-plugin"已经不更新的,在webpack5.0版本会有BUG,所以需要用别人二次修改后的新适配版本

css 复制代码
npm i @dreysolano/prerender-spa-plugin -D

在vue.config.js配置

const PrerenderSPAPlugin = require('@dreysolano/prerender-spa-plugin'); const Renderer = PrerenderSPAPlugin.PuppeteerRenderer;

const vueConfig = { configureWebpack: { // webpack plugins plugins: [ new PrerenderSPAPlugin({ staticDir: path.join(__dirname, 'dist'), routes: ['/'], // 这个很重要,如果没有配置这段,也不会进行预编译 renderer: new Renderer({ injectProperty: '__PRERENDER_INJECTED', inject: { foo: 'bar' }, // 在 app.vue onMounted函数中 document.dispatchEvent(new Event('custom-render-trigger')),两者的事件名称要对应上。 renderAfterDocumentEvent: 'custom-render-trigger', // renderAfterTime: 6000, // headless: false }) }) ] }, }
2.

路由模式必须是history

mode : "history",
3.

App.vue setup onMounted函数

setup() { onMounted(() => { document.dispatchEvent(new Event('custom-render-trigger')) }) }

相关推荐
zl0_00_07 分钟前
isctf2025 部分wp
linux·前端·javascript
西洼工作室7 分钟前
移动开发常见问题
前端·css3·web移动开发
同学8079617 分钟前
新版本Chrome谷歌浏览器访问本地网络请求跨域无法正常请求
前端·http
儿歌八万首18 分钟前
Jetpack Compose 实战:打造高性能轮播图 (Carousel) 组件
android·前端·kotlin
m0_6161884921 分钟前
循环多个表单进行表单校验
前端·vue.js·elementui
奋斗猿30 分钟前
五年前端复盘:模块化开发的3个阶段,从混乱到工程化
前端
奋斗猿36 分钟前
中级前端避坑指南:图片优化没那么简单,这5招让页面快到飞起
前端
布茹 ei ai43 分钟前
地表沉降监测分析系统(vue3前端+python后端+fastapi+网页部署)(开源分享)
前端·python·fastapi
不一样的少年_44 分钟前
WebTab等插件出事后:不到100行代码,带你做一个干净透明的新标签页
前端·javascript·浏览器
幸运小圣44 分钟前
关于Vue 3 <script setup> defineXXX API 总结
前端·javascript·vue.js