Nuxt3 与官网 SEO:从 TDK 配置到搜索引擎收录

本文适合 SEO 初学者快速上手 Nuxt3 项目的搜索引擎优化

使用 nuxt3(本文写于一年前) 做了个官网, 第一次做官网也没啥经验一切都是摸着石头过河! 开发完成后做了一些 SEO 的相关的优化,这里做一个记录

如果之前做过网站的 seo 那这篇文章对你可能没什么帮助,因为这里的目标是 谷歌、必应 搜索框输入指定关键字,可以被搜索到。

为什么使用 nuxt3?

  1. 支持服务端渲染(SSR)
  2. 支持静态站点生成(SSG)
  3. 自动生成 <meta> 标签
  4. 提供开箱即用的 SEO 优化工具
  5. 支持预渲染(Prerendering)

seo 绕不开的 TDK

TDK 分别对应标题(Title)、描述(Description)和关键词(Keywords)

  • <title>标签包含了网页的标题和主要关键词。
  • <meta name="description">标签提供了网页的描述。
  • <meta name="keywords">标签列出了相关的关键词。

这些元素对于搜索引擎优化(SEO)非常重要它们帮助搜索引擎理解网页的内容,并影响搜索结果中的显示。

一个简单的🌰

html 复制代码
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>网页标题 - 主要关键词</title>
    <meta name="description" content="这是一个关于主要关键词的网页描述。">
    <meta name="keywords" content="主要关键词, 相关关键词, 其他关键词">
</head>
<body>
    <h1>欢迎访问</h1>
    <p>这里是我们关于主要关键词的内容。</p>
</body>
</html>

nuxt3 中如何设置 TDK

在 nuxt.config.ts 文件中进行配置

nuxt 3.15 不支持直接在 app 配置 seoMeta 改为在 app.vue 中使用 useSeoMeta 实现

ts 复制代码
// https://nuxt.com/docs/api/configuration/nuxt-config
export default defineNuxtConfig({
  devtools: { enabled: true },
  app: {
    head: {
      title: '爱中文',
      titleTemplate: '%s',
      meta: [
        { name: 'keywords', content: '爱中文' },
        { name: 'keywords', content: '上海爱中文数字' },
        { name: 'keywords', content: '中文教育' },
        { name: 'keywords', content: '国际中文智慧教育品牌' },
        { name: 'keywords', content: '智慧教育解决方案' },
      ],
    },
  },
})

在 app.vue 中配置 seoMeta

ts 复制代码
useSeoMeta({
  title: '上海爱中文数字信息技术有限公司',
  description: '上海爱中文数字信息技术有限公司,作为一家国际中文智慧教育企业,我们致力于成为"知识服务提供商与学习技术领导者"。依托先进的数字教育技术与深厚的教学设计实力,我们携手全球中文教育领域的专家,汇聚优质中文教学资源,创新探索适应不同地域特色的海外中文学习新范式。',
})

配置完渲染出来大概是这样

上边的配置中 title 字段十分重要直接影响搜索结果

这里提一下 titleTemplate: '%s' 这样写渲染后的 title 字段会原样渲染

如果去除 titleTemplate: '%s' 则会显示,把 package.json 文件的 name 字段拼接在后边这不是咱想要的

可能你还想为每个页面单独设置

这当然是可以的而且也很简单使用内置的 useHead 或者 useSeoMeta 即可

两者看情况使用或结合一起使用

useHead

useSeoMeta

nuxt seo 利器

nuxt3 提供对应的解决方案直接引入 @nuxtjs/seo 即可,号称是 Nuxt 的完整 SEO 解决方案。

SEO 小白狂喜

该有的都有了,这里只看 sitemap.xml、robots.txt

sitemap.xml

开发环境会比线上环境多一些调试信息

线上环境 https://xxxx/sitemap.xml

开发环境 http://localhost:3000/sitemap.xml

robots.txt

线上生成的文件与本地有一定区别线上全部允许、本地全部不允许

线上环境 https://xxxx/robots.txt

开发环境 http://localhost:3000/robots.txt

自动生成 OgImage

猛击查看官网文档

ts 复制代码
defineOgImageComponent('NuxtSeo', {
  title: '全球中文教育领导者 👋',
  description: '我们携手全球中文教育领域的专家,汇聚优质中文教学资源,创新探索适应不同地域特色的海外中文学习新范式。',
  theme: '#C74043',
  colorMode: 'dark',
  siteLogo: '/img/logo/logo1.jpg', // public 目录
})

中文需要配置字体,修改 nuxt.config.ts

ts 复制代码
ogImage: {
  googleFontMirror: true, // 开启谷歌字体景象-不挂代理感觉很难下载
  fonts: [
    'Noto+Sans+SC:400',
  ],
},

使用本地字体 本地字体文件必须是 .otf 、 ttf 、 .woff ,并且位于 public 目录内。

ts 复制代码
ogImage: {
  fonts: [
    {
      name: 'AlibabaPuHuiTi',
      weight: 500,
      path: '/fonts/AlibabaPuHuiTi/AlibabaPuHuiTi-3-65-Medium.woff',
    },
  ],
},

如何在 谷歌、必应 中可以被搜索到呢?

通过各大搜索引擎提供的站点工具提交网站,可以加快网站被索引的速度

谷歌

猛击访问

添加站点时是会验证所有权,选择一种验证即可

检查下网址是否被收录,只有被收录才可以搜索到

提交下站点地图

然后等着被收录就好了,快的话 48 小时,慢的话一个周左右

必应

猛击进入必应站点管理员页面

必应可以直接拉取谷歌已验证的站点,使用谷歌登录即可!

提交下网站地图

把网站地图的网址这里在提交一次(感觉会有点用)

然后等收录,快的话48小时,慢的话一个周左右

最终结果

谷歌搜索有时会靠前有时会靠后🤪

必应搜索

总结

本文从实战角度出发,系统介绍了 Nuxt3 网站的 SEO 优化方案:

  1. TDK 配置:通过 nuxt.config.ts 和 useSeoMeta 设置标题、描述、关键词
  2. SEO 工具:使用 @nuxtjs/seo 自动生成 sitemap.xml、robots.txt 和 OgImage
  3. 搜索引擎收录:通过 Google Search Console 和 Bing Webmasters 提交站点地图,完成网站收录
相关推荐
特立独行的猫a8 小时前
用仓颉写一个 Tauri:IPC 的每次往返实现原理(web层到仓颉层的触发过程)
前端·ui·harmonyos·tauri·鸿蒙·仓颉
Dovis(誓平步青云)8 小时前
多个链接不等于多份证据,新闻核验看板怎样合并来源
java·服务器·前端·javascript·人工智能·pdf·电脑
骑着蜗牛撵大象3278 小时前
Qt 事件机制详解:从 QEvent 派生类到事件过滤器的全景指南
前端·python
qq_2518364579 小时前
理发管理系统 —— 会员模块
开发语言·前端·python·flask
Frag0ut9 小时前
2027 年浏览器展望:Chrome 与 Edge 的 AI 智能体进化方向
前端·人工智能·chrome·edge·浏览器·新功能
计算机魔术师9 小时前
从AI绘图鼻祖到音乐版权破局者,Stability AI如何被三大唱片巨头「收编」
前端
奕鼎竜瑆10 小时前
Chrome 插件开发实战指南:从入门到发布
前端·chrome
广州华水科技10 小时前
水库北斗GNSS变形监测系统及单北斗形变监测一体机应用解析
前端
anew___11 小时前
《从零手写操作系统 (20):ELF加载器——让OS读懂现代编译器》
java·服务器·前端
ss27311 小时前
AI全栈实战 | 2.3-01 组件库实战:Element Plus 怎么搭出专业界面,过度封装为什么成维护负担
前端·javascript·elementui·vue