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开发
  • 代码示例
  • 元标签
  • 动态配置
  • 前端技术



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

在创建现代网站时,搜索引擎优化(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

往期文章归档:

使用 useSeoMeta 进行 SEO 配置的更多相关文章

  1. 什么是SEO配置

    SEO是什么 搜索引擎优化,又称为SEO,即Search Engine Optimization,它是一种通过分析搜索引擎的排名规律,了解各种搜索引擎怎样进行搜索.怎样抓取互联网页面.怎样确定特定关键 ...

  2. SEO配置信息操作文档

    一.title(网站标题) title,就是浏览器上显示的那些内容,不仅用户能看到,也能被搜索引擎检索到(搜索引擎在抓取网页时,最先读取的就是网页标题,所以title是否正确设置极其重要.)title ...

  3. 【转】关于phpcms的学习

    在实现PHPCMS网站过程中,根据业务需求,我们遇到很多问题,特此总结如下,以便大家参考学习. [1]PHPCMS V9系统目录简析 在研究所有问题之前,请先了解一下系统的文件目录结构,具体如下图所示 ...

  4. PHPCMS V9 学习总结

    在实现PHPCMS网站过程中,根据业务需求,我们遇到很多问题,特此总结如下,以便大家参考学习. [1]PHPCMS V9系统目录简析 在研究所有问题之前,请先了解一下系统的文件目录结构,具体如下图所示 ...

  5. ecstore2.0数据库词典

    数据库词典= 数据库tables列表 =|| Name | Comment ||| sdb_aftersales_return_product | 售后申请 || sdb_b2c_brand | 商品 ...

  6. PHPCMS V9 学习总结(转)

    转自:http://www.cnblogs.com/Braveliu/p/5074930.html 在实现PHPCMS网站过程中,根据业务需求,我们遇到很多问题,特此总结如下,以便大家参考学习. [1 ...

  7. phpcms图文总结(转)

    转自:http://www.cnblogs.com/Braveliu/p/5074930.html 在实现PHPCMS网站过程中,根据业务需求,我们遇到很多问题,特此总结如下,以便大家参考学习. [1 ...

  8. PHPCMS如何修改网站名称,网站关键词,网站描述

    首先需要登录网站后台,填写管理员用户名密码之后,点击登 点击phpcms后台顶部的"设置"按钮,如下图所示. 然后点击"相关设置"下的"站点管理&qu ...

  9. springboot中配置urlrewrite实现url伪静态强化网站seo

    关于urlrewrite urlrewrite使用强大的自定义规则来使用用户更容易记住.搜索引擎更容易找到的URL(对于seo比较重要).通过使用规则模板.重写映射,Web管理员可以轻松地设置规则,根 ...

  10. 使用Prerender.io为angular项目做SEO

    现在的项目的为了更好的分工明确,降低耦合都开始采用前后端分离的形式进式开发,我们也采用这种开发形式,前端用angular开发.虽说刚开始也遇各种坑,但是后期熟悉了之后简直爽呆.一个比较大的坑就是SEO ...

随机推荐

  1. Dijkstra(迪杰斯特拉)算法

    Dijkstra是什么算法 Dijkstra是典型最短路径算法,用于计算一个节点到其他节点的最短路径.该算法使用的是贪心策略:每次都找出剩余顶点中与源点距离最近的一个顶点. 什么是最短路径问题  给定 ...

  2. ARM汇编基础

    1 GNU语法 1.1 GNU汇编 GNU 汇编语法适用于所有的架构,并不是 ARM 独享的,GNU 汇编由一系列的语句组成,每行一条语句,每条语句有三个可选部分,如下: label: instruc ...

  3. 第一次至第三次PTAJava大作业分析

    (1)前言: 三次题目集的知识点: 正则表达式(Regular Expression,简称Regex或RegExp)是一个强大的文本处理工具,用于匹配.查找和替换字符串.以下是正则表达式的主要知识点总 ...

  4. 如何创建一个线程池,为什么不推荐使用Executors去创建呢?

    我们在学线程的时候了解了几种创建线程的方式,比如继承Thread类,实现Runnable接口.Callable接口等,那对于线程池的使用,也需要去创建它,在这里我们提供2种构造线程池的方法: 方法一: ...

  5. 引用数据类型string字符串 类型转换

    String 任何" "之间的值 包括空格 String类型的字面取值 String str1 = "你好" String str2 = "hello ...

  6. 解决:Maven PKIX path building failed: sun.security.provider.certpath

    在构建SpringBoot项目时,maven下载依赖会报 PKIX path building failed: sun.security.provider.certpath的错误. 使用https:/ ...

  7. QQ、支付宝、微信收款码三合一

    Tips:当你看到这个提示的时候,说明当前的文章是由原emlog博客系统搬迁至此的,文章发布时间已过于久远,编排和内容不一定完整,还请谅解` QQ.支付宝.微信收款码三合一 日期:2018-8-24 ...

  8. 在System身份运行的.NET程序中以指定的用户身份启动可交互式进程

    今天在技术群里,石头哥向大家提了个问题:"如何在一个以System身份运行的.NET程序(Windows Services)中,以其它活动的用户身份启动可交互式进程(桌面应用程序.控制台程序 ...

  9. pytest-parallel 多线程执行和allure生成报告,allure生成报告失败

    背景: 使用多线程pytest-parallel执行测试用例,使用allure生成测试报告,发现生成报告内容为NaN 使用的pytest执行命令: pytest.main(["TestCas ...

  10. FEDORA34 安装CUDA11.3

    FEDORA34 安装CUDA11.3 首先确保能装上最新的显卡驱动.  FEDORA显卡驱动安装 然后去官网下fedora对应的.run安装文件.运行安装, 但不要选装驱动. 完成后加环境变量: # ...