处理 Vue 单页面 SEO 的另一种思路

news/2024/4/28 17:14:46/文章来源:https://blog.csdn.net/weixin_33693070/article/details/88992034

vue-meta-info 官方地址: https://github.com/monkeyWang...

(设置vue 单页面meta info信息,如果需要单页面SEO,可以和 prerender-spa-plugin形成更优的配合)

单页面应用在前端正大放光彩。三大框架 Angular、Vue、React,可谓妇孺皆知。随着单页面应用的普及,人们在感受其带来的完美的用户体验,极强的开发效率的同时,也似乎不可避免的要去处理 SEO 的需求。

本文主要针对 vue 2.0 单页面 Meta SEO 优化展开介绍:

其实解决SEO问题不一定非得用服务端渲染来处理,服务端渲染对于刚接触 vue 的新手来说,并不是那么友好,虽然已有官方 SSR 中文文档。但是对于一个已经开发完毕的 vue 项目去接 SSR 无论是从工作量还是技术角度来说,都是一种挑战。不过这些怎么能难得到伟大的前端程序员!

如果您调研服务器端渲染(SSR)只是用来改善少数营销页面(例如 /, /about, /contact 等)的 SEO,那么您可能需要预渲染。无需使用 web 服务器实时动态编译 HTML,而是使用预渲染方式,在构建时 (build time) 简单地生成针对特定路由的静态 HTML 文件。优点是设置预渲染更简单,并可以将您的前端作为一个完全静态的站点。
如果您使用 webpack,您可以使用 prerender-spa-plugin 轻松地添加预渲染。它已经被 Vue 应用程序广泛测试。

预渲染为SEO提供了另一种可能,简单的来说,预渲染就是当vue-cli构建的项目进行npm run build 的时候,会按照路由的层级进行动态渲染出对应的html文件。

// webpack.conf.js
var path = require('path')
var PrerenderSpaPlugin = require('prerender-spa-plugin')module.exports = {// ...plugins: [new PrerenderSpaPlugin(// 编译后的html需要存放的路径path.join(__dirname, '../dist'),// 列出哪些路由需要预渲染[ '/', '/about', '/contact' ])]
}

最终会生成类似于这样的目录结构

clipboard.png

而里面的内容都会被渲染成了静态的 html 文件

<html><head><meta charset="utf-8"><title>tangeche-pc</title></head><body><div id="app"></div><!-- built files will be auto injected --><script type="text/javascript" src="/app.js"></script></body>
</html>

可以直观的发现,预渲染的作用。

有了预渲染,我们可以解决很多方面的SEO的问题,但是有时候我们也会需要Meta信息的变化,比如 title 比如 Meta keyWords 或者是 link...

这里安利一下 vue-meta-info 一个可以动态设置meta 信息的vue插件如果需要单页面SEO,可以和 prerender-spa-plugin形成更优的配合。

vue-meta-info 是一个基于 vue 2.0 的插件,它会让你更好的管理你的 app 里面的 meta 信息。你可以直接 在组件内设置 metaInfo 便可以自动挂载到你的页面中。如果你需要随着数据的变化,自动更新你的 title、meta 等信息,那么用此 插件也是再合适不过了。 当然,有时候我们也可能会遇到让人头疼的 SEO 问题,那么使用此插件配合 prerender-spa-plugin 也是再合适不过了

1.安装

yarn:

yarn add vue-meta-info

npm:

npm install vue-meta-info --save

2.全局引入 vue-meta-info

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

3.组件内静态使用 metaInfo

<template>...
</template><script>export default {metaInfo: {title: 'My Example App', // set a titlemeta: [{                 // set metaname: 'keyWords',content: 'My Example App'}]link: [{                 // set linkrel: 'asstes',href: 'https://assets-cdn.github.com/'}]}}
</script>

4.如果你的 title 或者 meta 是异步加载的,那么你可能需要这样使用

<template>...
</template><script>export default {name: 'async',metaInfo () {return {title: this.pageName}},data () {return {pageName: 'loading'}},mounted () {setTimeout(() => {this.pageName = 'async'}, 2000)}}
</script>

写到这里,大家应该都明白了我所说的 SEO 的另一种思路是什么了,preRender + metaInfo

可以才一定层次上去解决 SEO 问题,这种方式优点就是代码侵入性最低,开发成本最少。但是也是有弊端的:

  • 不能很好地处理用户独特性路由: 比如有个路由是 /my-profile, 预渲染可能不会很好用,
    因为这个内容页是根据用户信息变化的,所以页面内容也不是唯一确定的. 你可能会使用类似于这样的路由路径

/users/:username/profile,但是这样也是不合适的.

  • 经常变动的文件
  • 需要预渲染成千上万的路由文件: 这个可能会导致你编译时间.....额,可能你会编译很长时间

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_794383.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

现货!《PHP7实践指南:o2o网站与App后台开发》京东天猫有售

终于发售了&#xff0c;啥也不想说了&#xff0c;喜欢的或需要的就点击 链接 进去购买吧。 另外此书将作为 2017 PHP全球开发者大会 现场活动用书天猫购书包邮 PHP7实践指南:O2O网站与App后台开发 数据库设计 PHP开发工程 适合作为企业内部培训、培训机构和大专院校的教学参考书…

密码学-网站的安全登录认证设计

用户登录是任何一个应用系统的基本功能&#xff0c;特别是对于网上银行系统来说&#xff0c;用户登录的安全性尤为重要。如何设计一个网站的安全登录认证程序&#xff0c;是本文主要讨论的问题。 静态密码存在着比较多的安全隐患&#xff0c;攻击者有很多手段获得静态密码&…

最近跟踪网站,发现还是存在常规网络错误。

先在国内搜索相关问题&#xff0c;没找到特别合适的。 无可奈何之好再去国外的找。这回终于找到正解了。 错误&#xff1a;偶然才发生的错误&#xff0c;大概过了半个小时才会出现的。 错误的原因&#xff0c;大概在于&#xff0c;sql连接池的数据连接由于某些原因变成了bad co…

实现基于LNMP 的电子商务网站

一&#xff1a;准备工作 1.检查防火墙和SELinux是否关闭&#xff0c;如果二者不关闭&#xff0c;会严重影响实验。 关闭防火墙&#xff1a;iptables -F 临时清除 可靠关闭&#xff1a;systemctl stop firewalld 关闭selinux:setenforce 0 永久关闭&#xff1a;修改配置文件vim …

写个网站吧! --Flask+Vue.js+MySQL+Docker(1)--简介

最近花了一星期的时间按照前后端分离的模式写了一个单页面网站&#xff0c;内容没啥新意&#xff0c;就是个todolist&#xff0c; 实现的方法也是大家很熟悉的前端vue.js&#xff0c;后端flask-restful,数据库MySQL&#xff0c;部署方式选择的是流行的docker容器部署。 原本这…

写个网站吧! --Flask+Vue.js+MySQL+Docker(2)--前端

前序内容请观看&#xff1a;点这儿&#xff01; 写个小站的业务可能大家也不是太关心&#xff0c;反而页面的实现效果是最关心的&#xff0c;这里我就先讲前端的部分。 先说说涉及到的技术栈,首先是Vue.js&#xff0c;作为现在最火的前端框架&#xff0c;不多说啥了&#xff…

写个网站吧! --Flask+Vue.js+MySQL+Docker(3)--后端

前情回顾&#xff1a;写个网站吧&#xff01; --FlaskVue.jsMySQLDocker&#xff08;1&#xff09;--简介 总结&#xff1a;后端好像也没啥要讲的 先说说使用的技术栈&#xff1a; Flask&#xff0c;FLask-Restful&#xff0c;Flask-SQLalchemy, Flask-Cors, Python-dotenv,…

写个网站吧! --Flask+Vue.js+MySQL+Docker(4)--数据库

前情回顾&#xff1a; 写个网站吧&#xff01; --FlaskVue.jsMySQLDocker&#xff08;1&#xff09;--简介 说第三篇写的少&#xff0c;那你还没看第四篇&#xff0c;没错这一篇更少&#xff0c;少到我都想贴几个之前写的mysql的链接来水过去。 老规矩说一下技术栈&#xff…

写个网站吧! --Flask+Vue.js+MySQL+Docker(5)--docker部署

前情回顾&#xff1a;写个网站吧&#xff01; --FlaskVue.jsMySQLDocker&#xff08;1&#xff09;--简介 到了最烦人最烦人的部署阶段&#xff0c;先简单画一个我的思路的图&#xff1a; 思路就是两个docker容器&#xff0c;一个布置前端&#xff0c;一个布置后端&#xff0c…

常用论文检索网站

1、https://dx.doi.org/ DOI本身有很强大的检索网站&#xff0c;拥有非常完善的文献储存与检索系统&#xff0c;进入网站之后&#xff0c;在输入框中粘贴进DOI号&#xff0c;然后点击GO就会回到刚刚那篇论文的所在的网页。也就是说&#xff0c;在只知道DOI的情况下&#xff0c;…

个人博客网站的第一次修改

前言 今天讲博客网站的部分功能修改了一下&#xff0c;在这里记录下来&#xff0c;说不定以后看起来还有点意义。 数据 首先是数据层的修复。 根据分类获取到的文章列表并没有按照事件降序排列的BUG&#xff0c;这个之前没有注意&#xff0c;使用过程中才发现。 关于浏览量…

大型网站图片服务器架构的演进

在主流的Web站点中&#xff0c;图片往往是不可或缺的页面元素&#xff0c;尤其在大型网站中&#xff0c;几乎都将面临“海量图片资源”的存储、访问等相关技术问题。在针对图片服务器的架构扩展中&#xff0c;也会历经很多曲折甚至是血泪教训&#xff08;尤其是早期规划不足&am…

网站Http升级至Https(基于Tomcat)

由于之前一直忙于服创比赛&#xff0c;然后就导致好久没写博客了。 现在服创结束也有十来天了&#xff0c;感觉不写点什么就对不起自己了。 于是乎&#xff0c;就写写将网站从http升级到https的过程吧。首先域名和服务器自然是必须的&#xff0c;大致流程分为以下几部&#xff…

35个立体动感的视差滚动效果网站作品

这篇文章收集了35个具有立体动感效果的视差滚动网页设计作品分享给大家。视差滚动&#xff08;Parallax Scrolling&#xff09;是指让多层背景以不同的速度移动&#xff0c;形成立体的运动效果&#xff0c;带来非常出色的视觉体验。作为今年网页设计的热点趋势&#xff0c;越来…

30个优秀的网站导航设计案例分享

导航是网站最重要的组成部分之一&#xff0c;设计优秀的导航能够引导用户浏览网站中的更多内容。为了能让导航和网页内容完美的融合在一起&#xff0c;设计前需要设仔细分析网页结构。这篇文章收集了30个优秀的网站导航设计案例&#xff0c;希望这些实例能给你带来灵感。 Fully…

分享30个优秀的网站导航设计案例

导航是网站最重要的组成部分之一&#xff0c;设计优秀的导航能够引导用户浏览网站中的更多内容。为了能让导航和网页内容完美的融合在一起&#xff0c;设计前需要设仔细分析网页结构。这篇文章收集了30个优秀的网站导航设计案例&#xff0c;希望这些实例能给你带来灵感。 Fully…

网站出现 502 Bad Gateway 怎么解决?

为什么80%的码农都做不了架构师&#xff1f;>>> 打开某网站出现一个问题如下图&#xff08;这里就不说是哪个网站了&#xff09;&#xff0c;那么下面就针对这个问题分享下解决思路。 1、什么是 502 badgateway 报错 &#xff1f; 简单来说 502 是报错类型代码&…

《CSS网站布局实录》读书笔记

从Web标准、HTML标记、CSS语法基础介绍到实用技巧&#xff0c;事无巨细。实体书已不印刷&#xff0c;只能下载电子版 书的背景&#xff1a; 国内第一本web标准的CSS布局书&#xff0c;2006年9月第一版&#xff0c;作者李超。 环境背景&#xff1a; 当时主流浏览器IE6与Firefox&…

谁在使用我的网站——用户行为分析

谁在使用我的网站——用户行为分析 前面根据用户的特征对用户做了分类&#xff0c;设定了一些常用的用户指标和值得关注的用户指标&#xff0c;基于这些分类用户指标的分析可以发现用户运营和推广中的诸多问题&#xff0c;其中活跃用户和流失用户的定义中已经用到了与用户行为相…

如何选择合适的网站程序

如何选择合适的网站程序 对于大多数的新手站长&#xff0c;如果要自己建一个网站&#xff0c;一般都是从网上下载一些现成的网站程序代码。可是&#xff0c;这些新手对于选择哪种CMS程序往往比较困惑&#xff0c;不知道哪个好用一些。现在&#xff0c;我们就来说说如何选取合适…