Nuxt3 实战 (十二):SEO 搜索引擎优化指南

添加 favicon 图标和 TDK(标题、描述、关键词)

  1. nuxt.config.ts 添加配置:
export default defineNuxtConfig({app: {title:'Dream Site',meta: [{ name: 'keywords', content: 'Nuxt.js,导航,网站' },{ name: 'description', content: '致力于打造程序员的梦中情站' }],link: [{ rel: 'icon', type: 'image/x-icon', href: 'favicon.ico' }],style: [],script: [],noscript: []}
})
  1. 使用 useHead
<script setup lang="ts">useHead({title:'Dream Site',link: [{ rel: 'icon', type: 'image/x-icon', href: 'favicon.ico' }],meta: [{ name: 'keywords', content: 'Nuxt.js,导航,网站' },{ name: 'description', content: '致力于打造程序员的梦中情站' }]})
</script>
  1. 使用 useSeoMeta 组合函数
<script setup lang="ts">useSeoMeta({title: 'Dream Site',ogTitle: 'Dream Site',description: '致力于打造程序员的梦中情站',ogDescription: '致力于打造程序员的梦中情站',ogImage: 'https://example.com/image.png',twitterCard: 'summary_large_image',})
</script>
  1. /pages/ 目录中可以使用 definePageMeta 来根据当前路由设置元数据
<script setup lang="ts">definePageMeta({title: 'Dream Site'})
</script>
  1. 动态标题
<script setup lang="ts">
useHead({// 作为字符串,// 其中`%s`会被标题替换titleTemplate: '%s - Dream Site',// ... 或者作为一个函数titleTemplate: (productCategory) => {return productCategory? `${productCategory} - Dream Site`: 'Dream Site'}
})
</script>

官方文档:SEO和Meta

安装 @nuxtjs/seo 模块

我们需要安装 @nuxtjs/seo 插件,@nuxtjs/seo 是一个模块集合,它覆盖了搜索引擎中常用的模块:

  • @nuxtjs/sitemap:网站地图
  • nuxt-simple-robots:蜘蛛爬虫协议
  • nuxt-schema-org:网页标准
  • nuxt-seo-experiments:实验性 SEO 元特征
  • nuxt-og-image:生成动态的社交分享图片
  • nuxt-link-checker:检查失效链接

具体使用方式:

  1. @nuxtjs/seo 插件:
npx nuxi@latest module add seo
  1. nuxt.config.ts 中根据实际情况添加配置:
 export default defineNuxtConfig({// SEO 配置site: {url: 'https://dream-site.cn',name: 'Dream Site',description: '致力于打造程序员的梦中情站',defaultLocale: 'zh-cn',exclude: ['/admin/_components/**'], // 过滤不需要的 urlcacheMaxAgeSeconds: 24 * 3600, // 缓存时间一天autoLastmod: true, // 自动检测每个 URL 的 lastmod 日期},routeRules: {// Don't add any /secret/** URLs to the sitemap.xml'/admin/_components/**': { robots: false },}})

现在你就能打开 sitemap.xml 和 robots.txt 了,其他更加详细的配置可以参考官方文档:nuxt-seo

Robots

  1. 禁用网站索引
export default defineNuxtConfig({site: { indexable: false }
})
  1. 禁用页面索引
<script lang="ts" setup>
defineRouteRules({robots: false,
})
</script>
  1. 如果需要更精细的编程控制,可以使用 nuxt.config.ts 配置该模块
export default defineNuxtConfig({robots: {disallow: ['/secret', '/admin'],}
})

更加详细的配置可以参考官方文档:Robots

Sitemap

  1. 禁用 URL 模式的索引
export default defineNuxtConfig({routeRules: {// Don't add any /secret/** URLs to the sitemap.xml'/secret/**': { robots: false },}
})
  1. 对于所有其他情况,您可以使用 includeexclude 模块选项来过滤 url
export default defineNuxtConfig({sitemap: {// exclude all URLs that start with /secretexclude: ['/secret/**'],// include all URLs that start with /publicinclude: ['/public/**'],}
})
  1. 设置 Lastmodchangefreqpriority
<script setup>
useSeoMeta({// will be inferred as the lastmod value in the sitemaparticleModifiedTime: '2023-01-01'
})defineRouteRules({sitemap: {changefreq: 'daily',priority: 0.3}
})
</script>
  1. 缓存时间
export default defineNuxtConfig({sitemap: {cacheMaxAgeSeconds: 3600 // 1 hour}
})
  1. 自定义样式
export default defineNuxtConfig({sitemap: {xslColumns: [{ label: 'URL', width: '50%' },{ label: 'Last Modified', select: 'sitemap:lastmod', width: '25%' },{ label: 'Priority', select: 'sitemap:priority', width: '12.5%' },{ label: 'Change Frequency', select: 'sitemap:changefreq', width: '12.5%' },],},
})

更加详细的配置可以参考官方文档:Sitemap

OG Image

  1. 使用可组合 defineOgImageComponent 来定义主页的 og:image
<script lang="ts" setup>defineOgImageComponent('NuxtSeo')
</script>
  1. 在浏览器中访问主页并打开 Nuxt DevTools (Shift + Alt + D)
    在这里插入图片描述

  2. 自定义模板

<script lang="ts" setup>
defineOgImageComponent('NuxtSeo', {title: 'Hello OG Image 👋',description: 'Look what at me in dark mode',theme: '#ff0000',colorMode: 'dark',
})
</script>

更加详细的配置可以参考官方文档:OG Image

Schema.org

  1. 配置默认值
<script lang="ts" setup>
useSchemaOrg([defineWebPage({name: 'My Page'}),defineWebSite({name: 'My Site'})
])
</script>
  1. 如果你不想使用默认值
export default defineNuxtConfig({schemaOrg: {default: false}
})
  1. 设置身份类型
export default defineNuxtConfig({schemaOrg: {identity: {type: 'Organization', // or 'Person'name: 'My Company',url: 'https://example.com',logo: 'https://example.com/logo.png'}}
})
  1. 自定义节点
<script lang="ts" setup>
useSchemaOrg([{'@type': 'DefinedTerm','name': 'Nuxt Schema.org','description': 'Nuxt Schema.org is a Nuxt module for adding Schema.org to your Nuxt app.','inDefinedTermSet': {'@type': 'DefinedTermSet','name': 'Nuxt Modules',},}
])
</script>

更加详细的配置可以参考官方文档:Schema.org

添加 Google Analytics 统计代码

  1. 安装 nuxt-gtag:
npx nuxi@latest module add gtag
  1. nuxt.config.ts 添加配置:
export default defineNuxtConfig({modules: ['nuxt-gtag'],gtag: {id: 'G-XXXXXXXXXX'}
})
  1. 或者在环境变量中添加 NUXT_PUBLIC_GTAG_ID
NUXT_PUBLIC_GTAG_ID = G-XXXXXXXXXX

添加 Microsoft Clarity 统计代码

  1. 安装 nuxt-clarity-analytics:
pnpm add -D nuxt-clarity-analytics
  1. nuxt.config.ts 添加依赖:
export default defineNuxtConfig({modules: ['nuxt-clarity-analytics']
})
  1. 在环境变量中添加:
MICROSOFT_CLARITY_ID = 'clarity ID'

添加 Umami 统计代码

  1. 安装 nuxt-umami:
pnpm add nuxt-umami
  1. nuxt.config.ts 添加配置:
defineNuxtConfig({extends: ['github:ijkml/nuxt-umami']
});
  1. app.config.ts 添加配置:
export default defineAppConfig({umami: {id: '95653e90-7b8b-4541-b6de-ea5e544d8c2d',host: 'https://umami.baiwumm.com',useDirective: true,version: 2,domains: ['dream-site.cn'],ignoreLocalhost: true}
});
  1. 跟踪事件
<button v-umami="'Event-Name'">Event Button
</button><button v-umami="{name: 'Event-Name'}">as object
</button><button v-umami="{name: 'Event-Name', position: 'left', ...others}">with event details
</button>

详细文档:nuxt-umami

总结

Nuxt3 集成了很多 SEO Modules,使开发者能够更加高效便捷地做好搜索引擎方面的优化。

好了,这篇文章就到这了,希望对你有所帮助!

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

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

相关文章

CCF秀湖会议:“第五存储架构”引发关注

近日&#xff0c;中国计算机学会第十三期CCF秀湖会议在苏州CCF业务总部&学术交流中心正式召开。本次会议就“新应用与硬件驱动下的存储技术创新”主题进行深入交流和探讨。中国工程院院士、清华大学郑纬民教授&#xff0c;华中科技大学金海教授&#xff0c;清华大学舒继武教…

计算机毕业设计Thinkphp/Laravel+vue高校图书馆借阅系统_i0521

图书馆借阅系统&#xff0c;主要的模块包括首页、个人中心、会员管理、会员等级管理、图书分类管理、图书信息管理、图书借阅管理、借阅服务评价管理、超时费用管理、留言板管理、系统管理等功能。系统中管理员主要是为了安全有效地存储和管理各类信息&#xff0c;还可以对系统…

浅学JVM

一、基本概念 目录 一、基本概念 二、JVM 运行时内存 1、新生代 1.1 Eden 区 1.2. ServivorFrom 1.3. ServivorTo 1.4 MinorGC 的过程 &#xff08;复制- >清空- >互换&#xff09; 1.4.1&#xff1a;eden 、servicorFrom 复制到ServicorTo&#xff0c;年龄1 …

力扣每日一题 特别的排列 DFS 记忆化搜索 位运算 状态压缩DP

Problem: 2741. 特别的排列 &#x1f468;‍&#x1f3eb; 参考题解 &#x1f37b; 暴搜 ⏰ 时间复杂度&#xff1a; O ( N ) O(N) O(N) class Solution {public int specialPerm(int[] nums) {boolean[] visited new boolean[nums.length];return dfs(nums, 0, -1, visit…

目标检测系列(二)yolov1的全面讲解

目录 1、网络结构 2、检测原理 3、制作训练正样本方法 4、损失函数 5、前向推理 6、模型缺限 YOLO的全称是you only look once&#xff0c;指只需要浏览一次就可以识别出图中的物体的类别和位置。YOLO被称为Region-free方法&#xff0c;相比于Region-based方法&#xff0…

AI已经火了一年了,真正属于普通人的机会在哪里?

对普通人来说&#xff0c;AI的机会在哪里&#xff1f; 这是过去一年来&#xff0c;我收到过最多的问题 在这篇文章里&#xff0c;我会把我目前对AI的理解阐述出来&#xff0c;分享3个普通人能够把握的方向 讲清楚在现在这个时间节点&#xff0c;当我们在说搞AI的时候&#x…

RAG应用要如何吃到大模型长上下文的红利?-LongRAG

去年底的时候&#xff0c;笔者写过&#xff0c;与其在RAG系统上雕花&#xff0c;可以重新思考一下&#xff0c;自己的业务场景是否非RAG不可吗&#xff1f;随着去年大模型的蓬勃发展&#xff0c;长度外推、更长的上下文模型&#xff0c;更厉害的中文底座大模型&#xff0c;都可…

RabbitMq camel

真实的项目如果 交换器/ 队列很多 建议在管理页面新建exchange / queue/ rootingKey /vhost, 而不要写死在springboot项目里 camel按rooting key发送消息: 最推荐 .to("rabbitmq:sino.nannan?routingKeysino.key&skipExchangeDeclaretrue&skipQueueDeclaretru…

Python 挖坑式填充Excel模板内容(包括页眉/SheetName/logo)

纵览 Python处理Excel的方式--解压缩方式1、导包2、对模板文件进行解压缩3、对解压缩后文件层级进行介绍4、准备需要载入的数据5、模板挖坑6、运行替换代码7、压缩文件8、生成文件9、完成代码10、可能遇到的问题 结语 Python处理Excel的方式–解压缩方式 在处理Excel中过程中&…

《人人都是产品经理》:项目的坎坷一生

《人人都是产品经理》&#xff1a;项目的坎坷一生 产品VS项目产品经理和项目经理 一切项目从kick off 开始工作量预估Kick Off的大致也就15分钟 写文档咯UML图用例文档UCdemo也得做 需求活在项目中bug等级有多高bug流转过程 以终为始 产品VS项目 项目定义&#xff1a;是只会进…

怎么压缩pdf文件大小,如何压缩pdf文件大小

pdf文件怎么压缩&#xff1f;在当下这个信息爆炸的时代&#xff0c;无论是在工作场所还是校园中&#xff0c;我们经常会面临需要处理大文件的情况&#xff0c;而PDF格式作为一种保留文档结构和布局完整性的理想选择&#xff0c;有时候pdf文件太大&#xff0c;因此&#xff0c;对…

typec密封胶防水用什么胶好?

typec密封胶防水用什么胶好&#xff1f; 对于Type-C连接器的防水密封&#xff0c;行业内普遍推荐使用单组份环氧型热固化胶。这种胶水具有以下优点&#xff0c;使其成为Type-C防水密封的理想选择&#xff1a; 粘稠度易于调整&#xff1a;这有助于胶水在点胶过程中更好地渗透到T…

2024年二级建造师机电工程专业考试题库分享。

1.调查表法通常与&#xff08;&#xff09;结合使用&#xff0c;以便更快地发现问题原因。 A.经验法 B.分层法 C.样本调查法 D.对比分析法 答案&#xff1a;B 解析&#xff1a;题干内容提示调查表法往往会与分层法结合起来应用&#xff0c;故B选项正确。 2.在质量统计分…

压缩图片png格式该怎么操作?试试下面这3个图片压缩工具吧

png是经常用于储存图片的一种格式&#xff0c;随着现在图片在日常工作和生活中的广泛使用&#xff0c;在很多的使用场景中都有应用。png的图片质量高而且支持无损压缩&#xff0c;在缩小图片的时候不会因为压缩而影响图片的清晰度&#xff0c;更适合在网上的存储、分享或者传输…

论文阅读MVBench: A Comprehensive Multi-modal Video Understanding Benchmark

摘要(Abstract)&#xff1a; 论文介绍了MVBench&#xff0c;这是一个全新的多模态视频理解基准测试&#xff0c;旨在评估多模态大型语言模型&#xff08;MLLMs&#xff09;在视频理解方面的能力。 目前许多基准测试主要集中在静态图像任务的空间理解上&#xff0c;而忽视了动…

c++进程间通信--zeromq

ZeroMQ&#xff08;也写作 MQ、0MQ 或 zmq&#xff09;是一个高性能的异步消息队列库&#xff0c;提供了一种灵活的方式来实现进程间通信&#xff08;IPC&#xff09;以及网络通信。在C中使用ZeroMQ进行进程间通信非常直观和高效。zmq的通信模式如下&#xff1a; 下面先说明请求…

第 11 课:组件介绍与自定义开发

本讲主要介绍了隐语的组件标准、已有的组件能力以及进一步的自定义开发流程。经过本讲的学习&#xff0c;可以为将隐语集成到任意调度系统&#xff0c;基于Kusica/SecretPad进行二次开发&#xff0c;以及参与隐语开放标准共建建立基础。 一、隐语开放标准 隐语提出的适用于隐私…

证件照制作工具有哪些?这6个帮你自制证件照

许多人可能认为&#xff0c;制作一张符合标准要求的证件照&#xff0c;必须亲自前往照相馆。 然而&#xff0c;事实上&#xff0c;我们完全可以使用手机或电脑上的证件照制作app&#xff0c;自己轻松完成证件照的制作。无论是更换背景颜色&#xff0c;还是调整照片尺寸&#x…

【ARM】Ulink不同的系列对于芯片的支持和可以支持keil软件

【更多软件使用问题请点击亿道电子官方网站】 1、 文档目标 了解不同版本的ULINK可以支持的芯片架构&#xff0c;和ULINK可以和哪个系列的keil软件进行在线调试 2、 问题场景 用于了解不同ULINK仿真器对于芯片的支持是不一样的&#xff0c;并不是ULINK可以支持所有的keil软件…

2024系统分析师考试总结

考试缘由 我自己在毕业不久就考过了中级的软件设计师&#xff0c;这几年换到外企后事情不多&#xff0c;今年初定计划的时候就想着不如考个系统分析师吧。为什么选这个类别呢&#xff1f;按道理我主做程序开发&#xff0c;如果去考系统架构师通过率可能会大一些&#xff0c;但…