使用 useSeoMeta 进行 SEO 配置

news2025/4/5 16:40:04

title: 使用 useSeoMeta 进行 SEO 配置
date: 2024/7/30
updated: 2024/7/30
author: cmdragon

excerpt:
摘要:本文介绍了Nuxt3中的useSeoMeta组合函数,用于简化和优化网站的SEO配置。通过这个工具,开发者可以在Nuxt3项目中方便地设置页面元标签,包括标题、描述以及Open Graph和Twitter Card标签等,支持静态与动态元数据配置,提升网站在搜索引擎和社交媒体上的表现。

categories:

  • 前端开发

tags:

  • SEO优化
  • Nuxt3
  • Web开发
  • 代码示例
  • 元标签
  • 动态配置
  • 前端技术

2024_07_30 17_59_07.png

freecompress-cmdragon_cn.png

扫描二维码关注或者微信搜一搜:编程智域 前端至全栈交流与成长

在创建现代网站时,搜索引擎优化(SEO)是不可忽视的一个环节。良好的 SEO 配置不仅能提升你的网站在搜索引擎中的排名,还能在社交媒体上更好地展示你的内容。Nuxt3
提供了一个强大的工具 useSeoMeta 来帮助你实现这一目标。

什么是 useSeoMeta

useSeoMeta 是 Nuxt3 提供的一个组合函数(composable),用于定义网站的 SEO 元标签。通过使用 useSeoMeta
,你可以以类型安全的方式指定各种元标签,包括标题、描述、Open Graph 标签等。这有助于避免常见的错误,如拼写错误或使用错误的属性名,同时确保你的标签配置符合标准并具有
XSS 安全性。

如何使用 useSeoMeta

1. 安装 Nuxt3

首先,你需要有一个 Nuxt3 项目。如果还没有项目,可以使用以下命令创建一个新的 Nuxt3 项目:

npx nuxi@latest init my-nuxt3-app
cd my-nuxt3-app
npm install
2. 配置 useSeoMeta

在 Nuxt3 项目中,你通常会在页面组件中配置 SEO 元标签。以下是一个简单的 app.vue 文件示例,展示了如何使用 useSeoMeta
来设置页面的元标签。

示例 1: 静态元标签

在这个示例中,我们设置了一些静态的 SEO 元标签:


<template>
  <div>
    <h1>欢迎来到我的网站</h1>
  </div>
</template>

<script setup lang="ts">

  useSeoMeta({
    title: '我的神奇网站',
    ogTitle: '我的神奇网站',
    description: '这是我的神奇网站,让我告诉你关于它的一切。',
    ogDescription: '这是我的神奇网站,让我告诉你关于它的一切。',
    ogImage: 'https://example.com/image.png',
    twitterCard: 'summary_large_image',
  });
</script>

在上面的代码中,我们使用 useSeoMeta 来设置以下元标签:

  • title: 网页的标题
  • ogTitle: Open Graph 的标题,用于社交媒体分享
  • description: 网页的描述
  • ogDescription: Open Graph 的描述,用于社交媒体分享
  • ogImage: Open Graph 的图像 URL,用于社交媒体分享
  • twitterCard: Twitter 卡片的类型,如 summary_large_image
示例 2: 动态元标签

有时候,你可能需要根据组件的状态动态生成元标签。以下是如何使用计算属性来实现这一点:


<template>
  <div>
    <h1>{{ title }}</h1>
    <input v-model="title" placeholder="修改标题"/>
  </div>
</template>

<script setup lang="ts">

  const title = ref('我的标题');

  useSeoMeta({
    title,
    description: computed(() => `这是 ${title.value} 的描述`),
  });
</script>

在这个示例中,我们使用 ref 来创建一个响应式的标题,并且通过 computed 来动态生成描述。这样,当标题发生变化时,描述也会自动更新。

参数列表

useSeoMeta 支持超过 100 个参数,用于定义各种元标签。以下是一些常见的参数:

基本元标签
  • title: 页面标题
  • description: 页面描述
  • keywords: 页面关键词
  • robots: 指示搜索引擎爬虫如何处理页面(如index, follow,noindex, nofollow
Open Graph 标签
  • ogTitle: Open Graph 标题
  • ogDescription: Open Graph 描述
  • ogImage: Open Graph 图像 URL
  • ogImageAlt: Open Graph 图像替代文本
  • ogType: Open Graph 类型(如website,article,profile
  • ogUrl: 当前页面的 URL
  • ogSiteName: 网站名称
  • ogLocale: Open Graph 语言区域(如en_US
Twitter Card 标签
  • twitterCard: Twitter 卡片类型(如summary,summary_large_image,app,player
  • twitterTitle: Twitter 标题
  • twitterDescription: Twitter 描述
  • twitterImage: Twitter 图像 URL
  • twitterImageAlt: Twitter 图像替代文本
  • twitterSite: Twitter 账户用户名(通常是@开头)
  • twitterCreator: 内容作者的 Twitter 账户用户名(通常是@开头)
  • twitterPlayer: Twitter 播放器 URL(用于视频卡片)
Facebook 和其他社交平台标签
  • fbAppId: Facebook 应用 ID
  • fbPages: Facebook 页面 URL(如果有多个,使用逗号分隔)
结构化数据
  • schema: JSON-LD 格式的结构化数据(如schema.org类型)

    • @context: JSON-LD 上下文
    • @type: 数据类型(如WebPage,Product,Article
    • name: 名称
    • description: 描述
    • url: URL
    • image: 图像 URL
    • author: 作者信息
    • publisher: 发布者信息
    • datePublished: 发布日期
    • dateModified: 修改日期
链接相关标签
  • canonical: 规范化 URL
  • alternate: 指定其他语言版本的 URL(如hrefLang
  • rel: 链接关系(如nofollow,noopener
视口和移动设备标签
  • viewport: 视口设置(如width=device-width, initial-scale=1
  • appleMobileWebAppTitle: iOS 应用的标题
  • appleMobileWebAppCapable: 是否允许全屏模式(yesno
  • appleMobileWebAppStatusBarStyle: 状态栏样式(如black-translucent
网站图标和徽标
  • favicon: 网站图标(通常在<link rel="icon">中设置)
  • appleTouchIcon: iOS 应用图标(<link rel="apple-touch-icon" href="/path/to/icon.png">
  • msapplicationTileImage: Windows 8/10 触摸屏图标
  • themeColor: 移动设备浏览器工具栏的主题颜色
安全和隐私相关标签
  • Content-Security-Policy: 内容安全策略
  • X-Content-Type-Options: 防止 MIME 类型嗅探
  • X-Frame-Options: 防止点击劫持(如DENY,SAMEORIGIN
  • X-XSS-Protection: 启用或禁用 XSS 保护
预加载和预渲染
  • preload: 预加载资源(如<link rel="preload" href="/path/to/resource" as="script">
  • prefetch: 预取资源(如<link rel="prefetch" href="/path/to/resource">
  • prerender: 预渲染页面(如<link rel="prerender" href="/path/to/page">
图像优化
  • imageSrcSet: 图像的不同分辨率(用于响应式设计)
  • imageSizes: 图像的大小(用于响应式设计)
自定义元数据
  • applicationName: 应用程序名称
  • themeColor: 浏览器的主题颜色
  • ogVideo: Open Graph 视频 URL
  • ogVideoType: Open Graph 视频类型(如video/mp4

更多参数可以参阅官方文档或源代码中的参数列表。SEO Starter HTML Tags · HTML Tag Collections · zhead

总结

使用 useSeoMeta 是在 Nuxt3 中设置 SEO 元标签的一种推荐方式。它不仅支持
TypeScript,并且通过类型安全的配置避免了许多常见错误。无论是静态还是动态的元标签配置,useSeoMeta 都能提供清晰的 API
来帮助你完成任务。

余下文章内容请点击跳转至 个人博客页面 或者 扫码关注或者微信搜一搜:编程智域 前端至全栈交流与成长,阅读完整的文章:使用 useSeoMeta 进行 SEO 配置 | cmdragon’s Blog

往期文章归档:

  • Nuxt.js必读:轻松掌握运行时配置与 useRuntimeConfig | cmdragon’s Blog
  • Nuxt.js 路由管理:useRouter 方法与路由中间件应用 | cmdragon’s Blog
  • useRoute 函数的详细介绍与使用示例 | cmdragon’s Blog
  • 使用 useRequestURL 组合函数访问请求URL | cmdragon’s Blog
  • Nuxt.js 环境变量配置与使用 | cmdragon’s Blog
  • 服务端渲染中的数据获取:结合 useRequestHeaders 与 useFetch | cmdragon’s Blog
  • 使用 useRequestEvent Hook 访问请求事件 | cmdragon’s Blog
  • 使用 useNuxtData 进行高效的数据获取与管理 | cmdragon’s Blog
  • Nuxt 3 使用指南:掌握 useNuxtApp 和运行时上下文 | cmdragon’s Blog
  • 使用 useLazyFetch 进行异步数据获取 | cmdragon’s Blog
  • 使用 useLazyAsyncData 提升数据加载体验 | cmdragon’s Blog
  • Nuxt.js 中使用 useHydration 实现数据水合与同步 | cmdragon’s Blog
  • useHeadSafe:安全生成HTML头部元素 | cmdragon’s Blog
  • Nuxt.js头部魔法:轻松自定义页面元信息,提升用户体验 | cmdragon’s Blog
  • 探索Nuxt.js的useFetch:高效数据获取与处理指南 | cmdragon’s Blog
  • Nuxt.js 错误侦探:useError 组合函数 | cmdragon’s Blog
  • useCookie函数:管理SSR环境下的Cookie | cmdragon’s Blog

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

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

相关文章

C++ - 负载均衡式在线OJ

目录 一.项目的宏观结构 1.1 只实现类似 leetcode 的题⽬列表在线编程功能 1.2 项⽬宏观结构 1.3编写思路 二.所⽤技术与开发环境 2.1 所用技术 2.2 开发环境 三.compiler 服务设计 3.1 编译功能 3.2 日志功能 3.3 运⾏功能 3.4 编译并运⾏功能 3.5 把编译并运⾏功…

OpenBayes 教程上新 | 文生图、图生图、图像修复三合一神器, HiDiffusion 一键启动教程现已上线!

扩散模型已成为高分辨率图像合成的主流方法&#xff0c;传统的扩散模型虽然在图像合成方面取得了显著进展&#xff0c;但在扩展到更高分辨率时往往面临对象重复和计算成本增加的问题。 旷世科技开源的高分辨率框架 HiDiffusion&#xff0c;由分辨率感知 U-Net (RAU-Net) 和改进…

【手撕数据结构】链表高频面试题

目录 移除链表元素反转链表链表的中间节点倒数第k个节点反转链表(初阶)快慢指针法(进阶) 合并两个有序链表链表分割链表的回文结构 移除链表元素 思路:由题目可知我们需要在给定的一个链表中移除值为val的节点&#xff0c;这里需要注意的情况就是全是val的链表移除后为空链表和…

收藏!2024年GPU算力最新排名

​GPU&#xff08;图形处理单元&#xff09;算力的提升是驱动当代科技革命的核心力量之一&#xff0c;尤其在人工智能、深度学习、科学计算和超级计算机领域展现出了前所未有的影响力。2024年的GPU技术发展&#xff0c;不仅体现在游戏和图形处理的传统优势上&#xff0c;更在跨…

吴恩达老师机器学习-ex2

有借鉴网上的部分 第一题 导入库&#xff0c;读取数据并且展示前五行&#xff08;基本操作&#xff09; import numpy as np import pandas as pd import matplotlib.pyplot as plt #读取数据 path "./ex2data1.txt" data pd.read_csv(path,headerNone,names[&q…

Netty技术全解析:PooledByteBufAllocator源码视角下的详解

❃博主首页 &#xff1a; 「码到三十五」 &#xff0c;同名公众号 :「码到三十五」&#xff0c;wx号 : 「liwu0213」 ☠博主专栏 &#xff1a; <mysql高手> <elasticsearch高手> <源码解读> <java核心> <面试攻关> ♝博主的话 &#xff1a…

MySQL---JDBC

一、JDBC是什么&#xff1f; JDBC(Java Database Connectivity):是Java访问数据库的解决方案。 JDBC定义了一套标准的接口&#xff0c;即访问数据库的通用API&#xff0c;不同数据库的厂商根据各自数据库的特点实现这些接口。 JDBC希望用相同的方式访问不同的数据库&#xff0c…

spring:xml定义bean

spring有两种方法定义bean&#xff0c;一种是使用xml标签&#xff0c;一种是注解。在这里介绍使用xml标签定义bean。 我的文件目录如上图所示&#xff0c;在这里创建了bean.xml文件&#xff0c;bean.xml文件中定义了bean。 文件内容&#xff1a; <?xml version"1.0&…

Java线程池动态内存队列思路

背景 在我们定义线程池时候&#xff0c;需要创建一个对列用来存储未执行而排队的任务&#xff0c;这个队列长度问题一直都是需要开发人员斟酌考虑点。在阿里巴巴开发手册中有怎么一个规则如&#xff1a; 说明: Executors返回的线程池对象的弊端如下 FixedThreadPool和SingleT…

【前端面试】七、算法-递归

遍历方法总结 链式调用 数组的很多操作可以构成链式操作&#xff0c;类似这样的格式&#xff1a;…map().filter(…).sort(…).map(….)链式操作就是对象方法返回类型是自身的。比如map是属于数组的方法&#xff0c;它返回数组&#xff0c;所以构成了链式操作优势&#xff1a;…

【iOS】——持久化

在iOS开发中&#xff0c;数据持久化是非常重要的&#xff0c;因为它允许应用程序在不同会话之间保存用户数据、设置、偏好等信息。 为什么数据持久化 数据保存&#xff1a; 目的&#xff1a;将应用程序中的数据保存到非易失性存储中&#xff0c;以便在应用程序关闭或重启后仍…

眼镜清洗机哪个品牌好?性价比高的超声波眼镜清洗机

清洁眼镜、化妆刷、项链等物品其实是挺麻烦的&#xff0c;尤其是化妆刷这种经常使用的物品&#xff0c;需要用专门的清洁剂并保持一定的清洗频率。眼镜的日常清洁主要是用眼镜布擦拭镜片上的灰尘和指纹&#xff0c;但对于顽固的污渍或油脂&#xff0c;只有超声波清洗机能提供快…

六西格玛管理法

六西格玛管理法是一种旨在提高业务流程效率和减少缺陷的管理策略。它最初由摩托罗拉公司在1980年代末期提出&#xff0c;并随后被通用电气等公司广泛应用和发展。六西格玛的核心理念是通过减少过程变异性来提高产品质量和服务水平。 六西格玛的含义&#xff1a; 统计学概念&am…

一款功能全面的卸载工具,强大,免费,小巧

HiBit Uninstaller是一款功能全面的卸载工具&#xff0c;它不仅可以卸载Windows程序&#xff0c;还提供了诸如注册表清理、垃圾文件清理等多种系统优化功能。该软件以其小巧、强大、免费的特点受到用户的欢迎&#xff0c;尤其适合处理顽固软件和流氓程序的卸载问题。 主要功能…

WPF的MVVM架构:如何通过数据绑定简化UI逻辑

WPF的MVVM架构&#xff1a;如何通过数据绑定简化UI逻辑 目录 MVVM模式概述数据绑定在MVVM中的作用实现MVVM模式的步骤MVVM模式中的常见问题与解决方案实践示例总结 MVVM模式概述 MVVM&#xff08;Model-View-ViewModel&#xff09;是一种设计模式&#xff0c;用于WPF应用程序…

机器学习(五) -- 无监督学习(2) --降维1

系列文章目录及链接 上篇&#xff1a;机器学习&#xff08;五&#xff09; -- 无监督学习&#xff08;1&#xff09; --聚类2 下篇&#xff1a;机器学习&#xff08;五&#xff09; -- 无监督学习&#xff08;2&#xff09; --降维2 前言 tips&#xff1a;标题前有“***”的内…

热门超声波清洗机有哪些?小型超声波清洗机推荐

在繁忙的工作和生活中&#xff0c;许多人常常会因为种种原因忽略日常的小事&#xff0c;比如忘记清洁手表、眼镜、首饰等常用物品。实际上&#xff0c;这些物品表面不仅积累了灰尘和污垢&#xff0c;特别是跟眼部朝夕相处的眼镜&#xff0c;还可能滋生各种致病细菌&#xff0c;…

Vue3-如何自己写一个“返回顶部”功能

功能描述&#xff1a; 在屏幕的右下角固定一个“返回顶部”按钮&#xff0c;只有当用户滚动屏幕一定程度后出现&#xff0c;否则隐藏。 点击按钮&#xff0c;网页平滑的滚动到页面顶部。 环境&#xff1a;Vue3,js&#xff0c;antd 具体思路&#xff1a; 1、给窗口挂载滚动事…

Python 学习中的 API,如何调用API ?

1.1 API的定义 API&#xff0c;全称是Application Programming Interface&#xff08;应用程序编程接口&#xff09;。它是一组定义好的协议和工具&#xff0c;用于在软件应用程序之间进行通信。API可以简化软件开发&#xff0c;使不同的应用程序能够相互协作。它是软件开发中…

阿里云服务器 Ubuntu18.04 安装 mysql8.0并允许外部连接

参考教程&#xff1a; 官网教程 参考教程一 首先彻底删除mysql5.7 dpkg --list|grep mysql #查看 sudo apt-get remove mysql-common #卸载 sudo apt-get autoremove --purge mysql-server-5.7 #版本自己修改 dpkg -l|grep ^rc|awk {print$2}|sudo xargs dpkg -P #清除残留数…