·更新于 2026年10月25日· 18 次浏览 Nuxt 3Vue 3SEOBUG解决个人站MongoDBRedis

Nuxt 3 个人站 SEO 排错:文章收录了,却没有富摘要的修复记录

从搜索结果摘要缺失切入,排查 Nuxt 3 文章页的 useSeoMeta、Open Graph、JSON-LD 与 sitemap 动态生成链路,记录一次富摘要缺失的修复过程。

Nuxt 3 个人站 SEO 排错:文章收录了,却没有富摘要的修复记录 封面
ZHOUYI

作者

ZHOUYI

前几天在搜索里查自己写的一篇长文,页面确实收录了,但展示出来的只有普通标题和一段不太相关的摘要,没有作者、发布时间、缩略图这类富摘要。对个人站来说,搜索结果就是门面,富摘要缺失会直接影响点击率。于是我把 Nuxt 3 的 SEO 链路完整查了一遍。

先确认:不是没收录,而是结构化信息没给够

我先看页面源码,发现三个问题:文章页只设置了 title,description 用了全站默认值;Open Graph 的图片是相对路径,外部抓取时拼不出完整地址;JSON-LD 只在客户端挂载,SSR 返回的 HTML 里没有。搜索引擎能抓到正文,但缺少明确的结构,自然不容易展示富摘要。

修复:useSeoMeta、Open Graph 和 JSON-LD 都走 SSR

ts
useSeoMeta({
  title: () => article.value?.title,
  description: () => article.value?.summary,
  ogTitle: () => article.value?.title,
  ogDescription: () => article.value?.summary,
  ogImage: () => toAbsoluteUrl(article.value?.cover),
  ogType: 'article'
})
useHead({
  script: [{
    type: 'application/ld+json',
    children: JSON.stringify(buildArticleJsonLd(article.value))
  }]
})
  1. useSeoMeta 放在文章页 setup 中,确保服务端渲染时就有 title、description 和 OG 字段。
  2. OG 图片、canonical 都改成绝对 URL,避免相对路径在抓取工具里失效。
  3. JSON-LD 输出 BlogPosting/Article 需要的 headline、datePublished、dateModified、author、image。
  4. 发布、修改、下线文章后,主动清掉相关页面缓存,避免旧 meta 被 Redis 或 CDN 继续吐出。

sitemap 也要动态,别把草稿和下线页交出去

sitemap 我改成接口动态生成:从 MongoDB 只查状态为 published 的文章,带上 updatedAt 作为 lastmod。为了性能,结果会放进 Redis 缓存一小段时间;但文章发布或下线时要立刻失效。这样搜索引擎拿到的是当前有效内容,也方便后续验证收录与摘要更新。

这次排错给我的提醒是:SEO 不是加个 meta 就完事,而是一条从内容状态、页面渲染、结构化数据到 sitemap 的链路。任何一个环节用了客户端补渲染、相对路径或过期缓存,都可能让摘要显示不出来。修复后不一定立刻出现富摘要,但至少链路是干净的,后续观察也更有底。

Guestbook

留言

若这篇文章也曾停在你心上,留一行字吧,我会看的。

先确认一下邮箱

多这一步,是为了少些机器骚扰,也让我能更踏实地读每一条真人写下的字。验证码 10 分钟内有效;同一邮箱 60 秒内只能发一封。

本文留言

共 0 条已加载 0 条

这里还静悄悄的——愿意做第一个留下脚印的人吗?