HowTo Schema 已废弃,但模板还在输出

Google 在 2023 年就下线了 HowTo 富结果。Schema Markup Validator 仍能验证通过,看起来没问题,但 Google 的 Rich Results Test 已经识别不到它,富结果也再不出现。本文教你确认并清理掉。

你的教程页好几年来一直在输出 "@type": "HowTo" JSON-LD。validator.schema.org 上的 Schema Markup Validator 还能解析通过,看起来很健康。但 Search Console 早就不再上报 HowTo 展示数,分步富结果在任何 SERP 里都不再出现,连 Google 自己的 Rich Results Test 都已经识别不到这个类型了。

最快的修法: 别再输出 HowTo,把这些页面换成 Article(或 TechArticle)。Google 在 2023 年就下线了 HowTo 富结果 —— 移动端 2023 年 8 月、桌面端 2023 年 9 月 13 日 —— 随后又把它从 Rich Results Test 和 Search Console 报告里移除了。截至 2026 年 6 月,这段标记在任何端都带不来结果增强。它本身不会惩罚你,但一段跟可见页面对不上的 HowTo 就是该删的累赘。

这里最大的坑是一个工具误会,开始排查之前先搞清楚:

工具它告诉你什么还会显示 HowTo 吗
Schema Markup Validator(validator.schema.org你的标记是否符合 schema.org 词汇规范会 —— HowTo 仍是合法的 schema.org 类型,所以照样”通过”
Google Rich Results Test(search.google.com/test/rich-results这段标记是否有资格拿 Google 富结果不会 —— HowTo 已不是支持类型,所以什么都不报

如果你”证明它有效”靠的是 validator.schema.org 上的一个绿勾,那只证明了语法对。Google 早在几年前就不再渲染 HowTo 了。

常见原因

按真实场景的命中率排序。

1. 模板里那段样板还在给每篇教程套 HowTo

之前的内容团队给每篇带有序列表的文章都加上了 "@type": "HowTo",模板从 2022 年起就没人碰过。Google 已经不再奖励这种标记,但代码还在。

怎么判断: 随便 view-source 一篇教程。看到 "@type": "HowTo""step": [...] 数组,就说明这套废弃 schema 还在线。

2. HowTo 的 step 跟可见页面对不上

页面改写成了叙述性文章,JSON-LD 里却还是旧的 step。Schema Markup Validator 能通过(step 结构没问题),但这段标记描述的是一个已经不存在的页面。

怎么判断: 把 JSON-LD 里每个 HowToStepname 跟页面上可见的 H2 / H3 比对。改完内容之后这两边经常错位。

3. CMS 插件把任意有序列表自动包成 HowTo

WordPress 的 Yoast、Rank Math、Schema Pro 等插件会把任何 <ol> 自动包装成 HowTo。菜谱、清单文,甚至”5 个理由”这种文章都被打成 HowTo —— 没有一个是真正的过程式教程。

怎么判断: 关掉插件里的 HowTo 生成器再构建一次。统计有多少页面失去了这段标记 —— 高于你真实教程数的部分就是假的。

4. HowTo 嵌套在 Article 里,把解析器弄糊涂

JSON-LD 里 Article 套了一个 HowTo,或者反过来。解析器可能只挑一个类型、忽略另一个 —— 而且常常挑错那个 —— 结果 Article 富结果(byline 和日期片段)也跟着消失。

怎么判断: 在 Rich Results Test 里看”detected”的 schema 类型是什么。如果它什么都没识别到、或者识别成了不是你想要的类型,那嵌套关系就是问题所在。

5. 迁移过来的文章保留了 HowTo 但失去了 step 结构

CMS 迁移之后有序列表塌成了段落,但 JSON-LD 生成器还在从一个没人更新的数据库字段里读 step 出来发。

怎么判断: 页面上一个可见的编号步骤都没有,JSON-LD 却声明有 8 个 step 的 HowTo。典型的过期数据特征。

6. 把 HowTo 跟 Recipe / Article 混为一谈

做饭内容用 Recipe,它仍能拿富结果。教学型文章用 ArticleTechArticle,仍有作者和日期的展示。HowTo 是单独一类,现在对所有站点都没了。

怎么判断: 内容是文章写法(“我是怎么搭出 X 的”)却被打成了 HowTo。应该改成 ArticleTechArticle

你属于哪一类

症状可能原因跳到
每篇教程都输出 HowTo模板 / 主题样板第 2 步
只有部分页面输出按文章打的开关或插件规则第 1 步,再看第 3 步
HowTo 的 step 跟可见标题不一致改写后的过期内容第 4 步
清单文、菜谱被打成 HowTo插件自动包住了每个 <ol>第 3 步
Article 富结果也一并消失HowTo 嵌套在 Article 里第 2 步

开始前

  • HowTo 对通用结果来说已彻底退役;截至 2026 年 6 月不存在任何还在生效的语区或试点例外。(2023 年 8 月宣布的”仅限政府和健康网站”豁免针对的是 FAQ 富结果,不是 HowTo —— 而 FAQ 本身也在 2026 年 5 月 7 日停止展示,所以别指望这两个会回来。)
  • 先抓一份当前还在输出 "@type": "HowTo" 的 URL 列表 —— 后面要靠这个基线衡量清理进度。
  • 看 Search Console 的”搜索外观”里 HowTo 展示数是否还在。它几乎肯定在 2023 年就消失了;真是这样的话,这段标记对 Google 什么都没在干。
  • 想清楚替换方案:大多数教程页应该改成 ArticleTechArticle,配清晰的 H1 和分节小标题。

需要收集的信息

  • 输出 HowTo 的页面总数(用带结构化数据抽取的爬虫,或对渲染后 HTML 直接 grep)。
  • 负责输出这段标记的模板、插件或生成器。
  • HowTo step 与可见 H2/H3 列表不一致的页面。
  • HowTo 是最外层 JSON-LD,还是嵌在 Article 里面。

一步步修

按代价从小到大。

第 1 步:确认这段标记真的在线且过期

挑 5 个教程 URL 查渲染后的 HTML:

for url in /tutorial/setup /tutorial/install /tutorial/deploy /tutorial/cleanup /tutorial/upgrade; do
  echo "=== $url ==="
  curl -s "https://example.com$url" | grep -A1 '"@type": "HowTo"' | head -5
done

如果每个 URL 都输出 HowTo,是模板的问题。只有部分输出,那就是按文章打的开关或某条插件规则在作祟。

第 2 步:从模板里移掉 HowTo 生成器

在 Astro / Next / Eleventy 模板里找到输出 "@type": "HowTo" 的 JSON-LD 块,把它换成 Article:

// before
const jsonLd = {
  "@context": "https://schema.org",
  "@type": "HowTo",
  "name": article.title,
  "step": article.steps.map((s, i) => ({
    "@type": "HowToStep",
    "position": i + 1,
    "name": s.heading,
    "text": s.body,
  })),
};

// after
const jsonLd = {
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": article.title,
  "datePublished": article.publishedAt,
  "dateModified": article.modifiedAt ?? article.publishedAt,
  "author": { "@type": "Person", "name": article.author },
};

Article 支持广泛,能给你 byline 和日期展示 —— 而 HowTo 本身从来就没真正提供过这些。

第 3 步:在 SEO 插件里关掉 HowTo

  • Yoast: 独立的 HowTo 区块已被弃用;把受影响文章里的 HowTo 区块删掉,确认 schema 图里不再带 HowTo 节点。
  • Rank Math: Titles & Meta / 单篇文章的 Schema 标签页 → 删除或改掉 HowTo schema,或关掉 HowTo 的 schema 模板。
  • Schema Pro: 删掉指向你教程模板的那条 HowTo schema 规则。

保存后 view-source 一个代表页面,确认 HowTo 块没了。插件不同版本行为有差异,所以以渲染出来的页面为准,别只信开关。

第 4 步:合适的页面回填 Article schema

确实在记录过程的页面切到 ArticleTechArticle

{
  "@context": "https://schema.org",
  "@type": "TechArticle",
  "headline": "Deploy a Static Site to Cloudflare Pages",
  "datePublished": "2026-01-12",
  "dateModified": "2026-05-10",
  "author": { "@type": "Person", "name": "Jane Lee" },
  "publisher": {
    "@type": "Organization",
    "name": "Example Inc",
    "logo": { "@type": "ImageObject", "url": "https://example.com/logo.png" }
  },
  "mainEntityOfPage": "https://example.com/tutorial/deploy-cloudflare"
}

第 5 步:把之前是 HowTo 的 URL 全部重新验证一遍

重新爬一次。结构化数据抽取器现在应该只看到 Article,没有 HowTo。然后挑几个 URL 在 Google 的 Rich Results Test 里抽查 —— 它应该识别出 Article,对 HowTo 只字不提。再挑几个代表性 URL 走 URL Inspection → Request indexing,让 Google 重新抓取。

第 6 步:盯 Search Console 收尾

残留的 HowTo 报告早在 2023 年就被 Google 移除了,所以你不会看到某个 HowTo “Enhancement” 报告慢慢消失。你要盯的是 Article / 面包屑 这类外观保持健康,以及重新抓取的页面上没有冒出新的结构化数据错误。如果某个 HowTo 块在你的爬取结果里死活又出现,那就是缓存层或 CDN 在发旧 HTML —— 清掉缓存再测。

怎么确认修好了

  • view-source 看 5 个教程页面,显示 Article(或 TechArticle),完全没有 HowTo
  • Google 的 Rich Results Test 在这些页面识别出 Article,并且不提 HowTo(它也提不了 —— HowTo 已不被支持)。
  • 带结构化数据抽取的站点爬取返回零个携带 "@type": "HowTo" 的页面(且没有 itemtype="https://schema.org/HowTo" 的 microdata)。
  • 接下来几周里,Search Console 在重新抓取的 URL 上没有出现新的结构化数据错误。

长期预防

  • 在 repo 里维护一份 “schema registry”:一个文件列出站点输出的每个 @type、它的用途、以及拥有它的模板。
  • 订阅 Google Search Central 博客,每季度回顾一次结构化数据的废弃情况。FAQ 富结果是最近一个牺牲品(2026 年 5 月 7 日起消失),Practice Problem 在 2026 年 1 月被移除 —— 这份清单一直在缩短。
  • 结构化数据的变更要以代码 PR 形式 ship,由 SEO 和工程一起 review,不要靠某个人去拨 CMS 插件的开关。
  • 加一个每周跑的 CI 检查,对渲染后 HTML grep 你拉黑的已废弃 schema 类型。
  • 新内容类型默认上 Article,只在 Google 真的有官方富结果支持时才加专用 schema。

常见坑

  • validator.schema.org 的绿勾当成”结果有效”的证据。那个工具只验证 schema.org 词汇;告诉你资格的是 Google 的 Rich Results Test,而它从 2023 年起就识别不到 HowTo 了。
  • 把 HowTo 换成 Article,却忘了写 authordatePublishedpublisher —— 这几个才是真正驱动 byline 和日期展示的字段。
  • 只在 staging 上关了插件的 HowTo 开关,忘了生产是独立设置。
  • 给非菜谱内容加 Recipe schema,因为”它还能拿富结果”—— 这违反 Google 内容指南,有被人工干预的风险。
  • 删掉了 JSON-LD 里的 HowTo,但 HTML 里 microdata 的 itemtype="https://schema.org/HowTo" 还留着。解析器依然会读它。

FAQ

Q:Google 是彻底干掉了 HowTo,还是只在某些品类下线?

彻底,对所有人都是。HowTo 富结果在 2023 年 8 月停止在移动端展示、2023 年 9 月 13 日在桌面端停止,随后 Google 把 HowTo 从 Rich Results Test 和 Search Console 报告里移除。截至 2026 年 6 月没有任何残留的试点或语区例外。把 HowTo 当作”没了”来对待。

Q:我的 HowTo 验证零错误,不就说明它有效吗?

不能。你几乎肯定用的是 Schema Markup Validator(validator.schema.org),它检查的是 schema.org 词汇,任何合法的 HowTo 它都会乐意放行。能否拿到 Google 富结果是另一个问题,由 Rich Results Test 回答 —— 而它已经完全识别不到 HowTo 了。

Q:留着 HowTo schema 会伤排名吗?

它本身不会。Google 自己的说法是:没被使用的结构化数据不会给 Search 带来问题。真正的风险是改写之后那段跟可见页面矛盾的 HowTo —— 那是误导性标记,该删。干净地删掉,比维护一段什么都不干的标记更省事。

Q:分步教程现在用什么替代 HowTo?

ArticleTechArticle,配清晰的 H2/H3 步骤小标题。带上 mainEntityOfPageauthordatePublisheddateModified。这些能让 byline 和日期继续出现在 SERP 里;分步编号那种富结果本身已经不存在了。

Q:如果 HowTo 没造成什么麻烦,还值得删吗?

如果 step 和页面对得上,删除是低优先级的清理。如果 step 已经过期、或者标记是被自动塞到清单文和菜谱上的,那就现在删 —— 这种情况最容易产生误导性标记的信号,而且白白给每个页面加 byte、零收益。

标签: #SEO #排查 #结构化数据 #howto-schema #JSON-LD