Vue SEO解决方案


SEO是什么

在这里插入图片描述

seo是一种网站优化技术,也被叫做搜索引擎优化,可以利用搜索规则提高网站上有关搜索的自然排名,主要表现为微博热搜控榜等。通过seo技术,可以实现一系列的商业行为,对产品品牌进行宣传收益。

  • 简单来说:它是 搜索引擎优化

SEO目的

在这里插入图片描述

  • 达成广告点击
  • 销售产品/服务
  • 提升品牌建设

Vue中seo的解决方案

方案一:prerender-spa-plugin

这里用的是 vue-cli 4.5 + Vue2

使用 vue ui 进入图形界面,搜索并安装插件 vue-cli-plugin-prerender-spa

插件的作用

  1. 安装 prerender-spa-plugin,并记录到 package.json 的 devDependencies
  2. 修改 src/main.js 添加 mounted: () => document.dispatchEvent(new Event(“x-app-rendered”))
  3. 自动配置 vue.config.js

在这里插入图片描述

  • package.json

在这里插入图片描述

  • src/main.js

import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'

Vue.config.productionTip = false

new Vue({
  router,
  store,
  render: h => h(App),
  mounted: () => document.dispatchEvent(new Event("x-app-rendered")),
}).$mount('#app')

  • vue.config.js
module.exports = {
  lintOnSave: false,

  pluginOptions: {
    prerenderSpa: {
      registry: undefined,
      renderRoutes: [ // 需要预渲染的路由地址
        '/','/about'
      ],
      useRenderEvent: true, // 在 mounted 时,传递渲染事件通知 prerender
      headless: true, // 无界面浏览器
      onlyProduction: true // 仅在生产模式才进行spa处理
    }
  }
}
  • 至于 src/router/index.js 不用做任何改动,也不用把 mode 设置为 history
import Vue from 'vue'
import VueRouter from 'vue-router'
import Home from '../views/Home.vue'

Vue.use(VueRouter)

const routes = [
  {
    path: '/',
    name: 'Home',
    component: Home
  },
  {
    path: '/about',
    name: 'About',
    // route level code-splitting
    // this generates a separate chunk (about.[hash].js) for this route
    // which is lazy-loaded when the route is visited.
    component: () => import(/* webpackChunkName: "about" */ '../views/About.vue')
  }
]

const router = new VueRouter({
  routes
})

export default router

编译报错 Chromium revision is not downloaded

仅仅做了上述配置后,执行 npm run build 还是会报错 Chromium revision is not
downloaded,这是因为 prerender-spa-plugin 这个插件依赖于爬虫来抽取页面,而 puppeteer
正是这个用来实现爬虫的无界浏览器

在这里插入图片描述

Puppeteer 是一个控制 headless Chrome 的 Node.js API 。它是一个 Node.js 库,通过 DevTools 协议提供了一个高级的 API 来控制 headless Chrome。它还可以配置为使用完整的(非 headless)Chrome。

在浏览器中手动完成的大多数事情都可以通过使用 Puppeteer 完成,下面是一些入门的例子:

  • 生成屏幕截图和 PDF 页面
  • 检索 SPA 并生成预渲染内容(即“SSR”)
  • 从网站上爬取内容
  • 自动提交表单,UI测试,键盘输入等
  • 创建一个最新的自动测试环境。使用最新的 JavaScript 和浏览器功能,在最新版本的 Chrome 中直接运行测试
  • 捕获网站的时间线跟踪,以帮助诊断性能问题

要安装该插件,一定要使用 cnpm 命令,从国内镜像地址下载 chrome 内核(npm从外国的地址是无法正常下载的,这会导致后面也无法正常 build )

解决办法有三种:

  1. 使用Chromium 国内源
npm config set puppeteer_download_host=https://npm.taobao.org/mirrors
npm i -g puppeteer
  1. 使用淘宝的cnpm 安装
npm install -g cnpm --registry=https://registry.npm.taobao.org
cnpm i -g puppeteer
  1. 手动下载Chromium文件,解压后放在本地
    https://npm.taobao.org/mirrors/chromium-browser-snapshots/
    放在模块的默认读取目录下
  • node_modules\puppeteer.local-chromium\win64-848005(系统类型-版本号)\chrome-win32(下载的文件名)\
  • node_modules\puppeteer.local-chromium\linux-848005(系统类型-版本号)\chrome-linux(下载的文件名)
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述

如果安装后依旧报上述错误,试试 cnpm uninstall puppeteer 命令。虽然字面意思上是卸载,但实际测试发现还是重装

在这里插入图片描述

在这里插入图片描述

  • 最后执行 npm run build,就会发现每个路由都在 dist 文件夹被编译成一个单独的 html 文件,这样就可以正常SEO了

在这里插入图片描述

在这里插入图片描述

vue-meta-info

使用该组件可以解决之前说的 —— SEO 的 TDK问题(不同页面设置不同的 title, keywords, description)或为某些页面设置允许缩放,而其他页面不允许等操作。

首先引入 vue-meta-info 依赖,npm install -D vue-meta-info,该插件的官方地址为 https://www.npmjs.com/package/vue-meta-info

在这里插入图片描述

  • 之后在 src/main.js 中全局绑定
import MetaInfo from 'vue-meta-info'
 
Vue.use(MetaInfo)
  • 最后在组件内使用即可
<template>
  ...
</template>
 
<script>
  export default {
    metaInfo: {
      title: 'My Example App', // set a title
      meta: [{                 // set meta
        name: 'keyWords',
        content: 'My Example App'
      }]
      link: [{                 // set link
        rel: 'asstes',
        href: 'https://assets-cdn.github.com/'
      }]
    }
  }
</script> 
  • npm run build 打包结果可看出
  1. 不同路由有不同的 title
  2. 不同路由也有自己的 meta-name 和 meta-content

在这里插入图片描述
在这里插入图片描述

方案二:Nuxt.js

优点

  1. 纯静态文件,访问速度更快
  2. 对比SSR,不涉及到服务器负载方面的问题
  3. 静态网页不易遭受黑客攻击,安全性更高

不足:

  1. 如果动态路由参数多的话不适用
  2. Nuxt.js 执行generate静态化打包时,动态路由会被忽略

永别京华
关注 关注
  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
学会对VUESEO优化,你的网站总是排在前面
Jack, what else can you do besides holding your little darling?
10-20 1304
​在开始之前,我们先来了解一下什么是SEOSEO(Search Engine Optimization):汉译为搜索引擎优化。是一种方式:利用搜索引擎的规则提高网站在有关搜索引擎内的自然排名。目的是让其在行业内占据领先地位,获得品牌收益。很大程度上是网站经营者的一种商业行为,将自己或自己公司的排名前移。 说白了就是你的SEO做的越好,当别人搜索某个关键词时,你的网站在搜索结果中就排的越靠前。这是我的网站,有时排在第一,有时第二。 普通的一个前端网站可以通过哪些地方来做优化呢? 1.合理的
vue seo phantomjs方案.zip
01-15
通过系统性的规划和执行,方案能够分析问题的根本原因,提供可行的解决方案,并引导实施过程,确保问题得到合理解决。 目标达成: 方案通常与明确的目标相关联,它提供了一种达成这些目标的计划。无论是企业战略、...
vue页面seo优化
weixin_65042674的博客
10-18 743
1.使用vite-plugin-seo-prerender做页面预渲染(vite)使用npm 安装vite-plugin-seo-prerender。使用 vue-meta-info 进行配置路由元信息。这样运行run build时就可以打包多个页面。标签,并确认是否正确地包含了你设置的元信息。2.解决页面路由元信息配置问题。在需要的页面中配置路由元信息。
Vue3中如何处理SEO优化?
最新发布
有我更精彩的博客
04-27 446
特别是在使用Vue.js作为前端框架的项目中,如何处理SEO优化更是一个必须考虑的问题。随着Vue.js 3的发布,我们可以更加灵活地处理SEO优化,让搜索引擎更好地理解我们的页面内容。接下来,让我们一起来探讨Vue3中如何处理SEO优化的问题。首先,我们需要了解在传统的SPA(Single Page Application)中,由于内容都是通过JavaScript动态加载的,搜索引擎对这种页面的抓取并不友好。通过这些方法的灵活运用,我们可以使我们的Vue.js应用更加友好地被搜索引擎收录和排名。
基于Vue SEO的四种方案(小结)
12-12
前言:众所周知,Vue SPA单页面应用对SEO不友好,当然也有相应的解决方案,下面列出几种最近研究和使用过的SEO方案,SRR和静态化基于Nuxt来说。 1.SSR服务器渲染; 2.静态化; 3.预渲染prerender-spa-plugin; 4.使用Phantomjs针对爬虫做处理。 1.SSR服务器渲染 关于服务器渲染:Vue官网介绍 ,对Vue版本有要求,对服务器也有一定要求,需要支持nodejs环境。 使用SSR权衡之处: 开发条件所限,浏览器特定的代码,只能在某些生命周期钩子函数 (lifecycle hook) 中使用;一些外部扩展库 (external library
vueseo优化
热门推荐
kang_k的博客
09-03 6万+
前言 先了解什么是seo? 再了解搜索引擎蜘蛛的工作原理? seo为啥对vue单页面不友好? vue项目怎么做seo优化? prerender-spa-plugin怎么使用,以及它的工作原理 什么是seoSEO是由英文Search Engine Optimization缩写而来, 中文意译为“搜索引擎优化”。SEO是指通过对网站进行站内优化和修复(网站Web结构调整、网站内容建设、网站代码...
vue SEO解决方案
司马懿的西山居
02-15 9568
介绍 什么是 SEO SEO(Search Engine Optimization)搜索引擎优化,是指通过对网站进行站内优化和修复(网站Web结构调整、网站内容建设、网站代码优化和编码等)和站外优化,从而提高网站的关键词排名以及公司产品的曝光度。 搜索引擎的原理 搜索引擎,又称爬虫或者蜘蛛,它在爬取和分析页面内容时,主要进行如下操作: 从 meta 标签中读取 keywords、description 的内容 根据语义化的html标签爬取和分析内容(h1-h6、strong、em等标签具有不同程度的强调意
vue seo解决方案
人与人之间最小的差别是智商,最大的差别是坚持。
02-19 382
前言:众所周知,Vue SPA单页面应用对SEO不友好,当然也有相应的解决方案,下面列出几种最近研究和使用过的SEO方案,SSR和静态化基于Nuxt.js来说。 1.SSR服务器渲染; 2.静态化; 3.预渲染prerender-spa-plugin; 4.使用Phantomjs针对爬虫做处理。 1.SSR服务器渲染 关于服务器渲染:Vue官网介绍,对Vue版本有要求,对服务器也有一定要求,需要支持nodejs环境。 使用SSR权衡之处: 开发条件所限,浏览器特定的代码,只能在某些生命周期钩子函数 (
详解处理Vue单页面应用SEO的另一种思路
10-17
主要介绍了详解处理Vue单页面应用SEO的另一种思路,本文主要针对 vue 2.0 单页面 Meta SEO 优化展开介绍,非常具有实用价值,需要的朋友可以参考下
mean-seo:使用PhantomJS的MEAN.JS应用程序的SEO解决方案
05-09
MEAN.JS应用程序的SEO解决方案,使用PhantomJS将搜寻器请求转发到已编译HTML副本。 较长的版本 如果您曾经尝试过使AngularJS应用程序搜寻器变得友好,那么您已经知道这有点令人头疼。 MEAN-SEO模块是使MEAN.JS堆栈...
vue经典面试题及答案汇总
06-03
7. 熟悉Vue的常见问题和解决方案,如跨域、SSR、SEO等。 8. 在面试中展示自己的Vue项目经验和技能,如开发过的项目、使用的技术栈等。 9. 在面试中展示自己的学习能力和解决问题的能力,如对新技术的学习和应用、...
Vue SEO解决方案
weixin_43834679的博客
06-17 322
前言:众所周知,Vue SPA单页面应用对SEO不友好,当然也有相应的解决方案,下面列出几种SEO方案,SSR和静态化基于Nuxt.js来说。 1.SSR服务器渲染; 2.静态化; 3.预渲染prerender-spa-plugin; 4.使用Phantomjs针对爬虫做处理。 1.SSR服务器渲染 关于服务器渲染:Vue官网介绍,对Vue版本有要求,对服务器也有一定要求,需要支持nodejs环境。 使用SSR权衡之处: 开发条件所限,浏览器特定的代码,只能在某些生命周期钩子函数 (lifecycle ho
关于vue项目的seo问题
codeLiuguisheng的博客
03-21 3万+
不可否定的是,vue现在火。但是在实际项目中,特别是像一下交互网站,我们不可避免会考虑到的是seo问题,这直接关系到我们网站的排名,很多人说用vue搭建的网站不能做优化,那我们真的要放弃vue,放弃前后端分离开发么? 首先,可以肯定的是前后端分离不利于SEO,为什么呢? 1.搜索引擎的基础爬虫的原理就是抓取你的url,然后获取你的html源代码...
Vue解决SEO的方案
szr190的博客
08-25 1343
【代码】Vue解决SEO的方案。
Vue SEO的四种方案
开源世界
12-10 4746
众所周知,Vue SPA单页面应用对SEO不友好,当然也有相应的解决方案,通过查找资料,大概有以下4种方法。(本人只用过第一,第三种方案) 1.Nuxt 服务端渲染应用部署 (SSR服务器渲染) 关于服务器渲染:Vue官网介绍 ,对Vue版本有要求,对服务器也有一定要求,需要支持nodejs环境。 使用SSR权衡之处: 开发条件所限,浏览器特定的代码,只能在某些生命周期钩子函数 (lifecycle hook) 中使用;一些外部扩展库 (external library) 可能需要特殊处理,才能在服务器渲染
Vue 项目如何进行 SEO 优化
接着奏乐接着舞的博客
10-19 7461
Vue SPA单页面应用对SEO不太友好,当然也有相应的解决方案,下面列出几种SEO方案
vue 处理seo问题
qq_39882919的博客
02-12 469
首先安装插件cnpm install prerender-spa-plugin --save // webpack.conf.js var path = require(‘path’) var PrerenderSpaPlugin = require(‘prerender-spa-plugin’) module.exports = { // … plugins: [ new PrerenderSpaPlugin( // 编译后的html需要存放的路径 path.join(__dirname, ‘…/dist
vue2的seo问题怎么解决
07-11
对于 Vue 2 的 SEO 问题,你可以采取以下几种解决方案: 1. 使用服务端渲染 (SSR):Vue 2 提供了 Vue SSR(Vue 服务器端渲染)的功能,可以将 Vue 组件在服务器端渲染成 HTML,然后将其发送给浏览器。这样搜索引擎爬虫就能够获取到完整的渲染内容。你可以使用框架如 Nuxt.js 来简化 SSR 的配置和开发。 2. 预渲染 (Prerendering):如果你的应用不太复杂,可以考虑使用预渲染来生成静态的 HTML 文件。预渲染的原理是利用工具如 Prerender SPA Plugin,在构建过程中预先访问每个路由,并将其渲染成静态 HTML 文件。这样搜索引擎爬虫就能够直接获取到完整的 HTML 内容。 3. 使用动态路由:如果你的应用有大量动态路由,可以通过将动态路由转换为静态路由来提高 SEO。例如,将 `/product/:id` 的动态路由转换为 `/product/1`、`/product/2` 等静态路由,让搜索引擎爬虫能够更好地索引这些页面。 4. 合理使用 meta 标签:确保每个页面都有正确的 meta 标签,包括 title、description 和 keywords 等。这些标签可以帮助搜索引擎了解页面的内容,并在搜索结果中显示相关信息。 5. 使用专业的 SEO 工具:使用一些专业的 SEO 工具来分析你的网站,了解是否存在其他 SEO 方面的问题,并提供相应的优化建议。 请注意,这些解决方案可能需要根据你的具体应用情况进行调整和实施。同时,随着 Vue 3 的发布,Vue SSR 的机制有所改变,你可能需要参考最新的文档和工具来解决 SEO 问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • flexIble.js 7082
  • 小米商城项目解析(完) 6027
  • Vue SEO解决方案 3542
  • vue项目正确打包 2093
  • element table 组件封装 521

分类专栏

  • gitlab 1篇

最新评论

  • element table 组件封装

    永别京华: 再加个参数控制呗

  • element table 组件封装

    夨落旳尐孩.: 表格如果要显示image呢 怎么处理表情包

  • vue项目正确打包

    永别京华: 注意引用的CDN.

  • vue项目正确打包

    Charon素: 打包后轮播图不动了,点击事件也失效了,使用swiper或者element框架的话也不行

  • Vue SEO解决方案

    新石器原始人: 傻瓜式旁路渲染方案 https://blog.csdn.net/w411207/article/details/111208334

大家在看

  • 命运2联机报错怎么办?一招教你快速解决命运2联机异常
  • 在JavaScript中使用数组的reduce方法的场景(进行求和、去重、降低维数)
  • 【BUAA-OS-理论课】4.3-进程调度 563
  • CSS动画(毛玻璃按钮)
  • OpenAI 发布的 GPT-4o是什么,有什么功能? 490

最新文章

  • 【gitlab连接步骤】记录
  • element table 组件封装
  • element-ui 分页索引问题
2023年1篇
2022年2篇
2021年8篇

目录

目录

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

哆哆女性网王浩骅起名贵州企业seo拜姓女孩起名网页seo优化纯情罗曼史2seo诀窍网站优化接单网站设计图标素材东营网站建设费用外贸网站的建设多少钱单页seo培训免费快餐店起名字大全真实空难男孩儿姓起名字女包包商标起名武道帝魂陈枫全文免费阅读周口资源交易中心杭州建设网站的网站线路优化公告曦字起名棋牌室起名字吗女孩七夕起名给姓彭婴儿起名字广州网站制作技术推广营销的方式努力挣钱的微信签名seo学习需要多久五行属金男孩子起名常用字库最新国自产拍小视频寒露吃什么养生淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻不负春光新的一天从800个哈欠开始有个姐真把千机伞做出来了国产伟哥去年销售近13亿充个话费竟沦为间接洗钱工具重庆警方辟谣“男子杀人焚尸”男子给前妻转账 现任妻子起诉要回春分繁花正当时呼北高速交通事故已致14人死亡杨洋拄拐现身医院月嫂回应掌掴婴儿是在赶虫子男孩疑遭霸凌 家长讨说法被踢出群因自嘲式简历走红的教授更新简介网友建议重庆地铁不准乘客携带菜筐清明节放假3天调休1天郑州一火锅店爆改成麻辣烫店19岁小伙救下5人后溺亡 多方发声两大学生合买彩票中奖一人不认账张家界的山上“长”满了韩国人?单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#青海通报栏杆断裂小学生跌落住进ICU代拍被何赛飞拿着魔杖追着打315晚会后胖东来又人满为患了当地回应沈阳致3死车祸车主疑毒驾武汉大学樱花即将进入盛花期张立群任西安交通大学校长为江西彩礼“减负”的“试婚人”网友洛杉矶偶遇贾玲倪萍分享减重40斤方法男孩8年未见母亲被告知被遗忘小米汽车超级工厂正式揭幕周杰伦一审败诉网易特朗普谈“凯特王妃P图照”考生莫言也上北大硕士复试名单了妈妈回应孩子在校撞护栏坠楼恒大被罚41.75亿到底怎么缴男子持台球杆殴打2名女店员被抓校方回应护栏损坏小学生课间坠楼外国人感慨凌晨的中国很安全火箭最近9战8胜1负王树国3次鞠躬告别西交大师生房客欠租失踪 房东直发愁萧美琴窜访捷克 外交部回应山西省委原副书记商黎光被逮捕阿根廷将发行1万与2万面值的纸币英国王室又一合照被质疑P图男子被猫抓伤后确诊“猫抓病”

哆哆女性网 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化