SuperAPI AI 工具集

schema-markup

前端与建站

查看项目

更新于 10-16 10:58

技能介绍

用途

本技能用于在网页上实现结构化数据标记(structured data markup),使用 JSON-LD 格式和 Schema.org 词汇表,向搜索引擎说明页面内容的含义,从而使页面有资格获得 Google 搜索的富媒体结果(如星级评分、FAQ 下拉、面包屑路径、食谱卡片、活动列表等)。

主要能力

技能涵盖以下结构化数据类型与任务:

  • Product schema:包含 offers 与评分,用于商品页面。必填字段为 name、image,以及 aggregateRating、offers 或 review 中至少一项。itemCondition 与 availability 必须使用完整 schema.org URL。
  • FAQPage schema:用于页面包含用户寻求答案的问答对列表(非社区问答页)。每个问题必须出现在页面上,不得包含隐藏 FAQ 项。
  • BreadcrumbList:面包屑导航标记,必须与页面可见导航一致,position 从 1 开始依次递增。
  • Article / BlogPosting:用于新闻和博客内容,两者产生相同的富结果处理。
  • Organization / LocalBusiness:Organization 放在首页或关于页;有实体位置的商家使用 LocalBusiness 或其子类型(如 Restaurant、MedicalBusiness)。
  • HowTo:用于分步指导内容,每步包含 name 和 text,可包含图片。

技能还提供框架集成方式:Next.js App Router 在页面组件内使用 script 标签注入 JSON-LD(不使用 next/head);Nuxt 使用 useHead() 组合式函数;Astro 直接在 .astro 组件的 head 槽注入脚本标签。三者模式一致:序列化对象并以 type="application/ld+json" 注入。

核心概念

Schema.org 词汇表由 Google、Bing、Yahoo、Yandex 共同支持,类型具有层级继承关系。JSON-LD 结构围绕三个核心字段:@context(始终为 "https://schema.org")、@type(Schema.org 类型)、@id(可选的稳定 URL 标识符)。支持嵌套结构表达语义关系。Google 文档区分必填属性与推荐属性,缺少必填字段会导致富结果被抑制。并非所有 Schema.org 类型都能产生富结果,Google 支持的类型包括 Article、Breadcrumb、Event、FAQ、HowTo、JobPosting、LocalBusiness、Product、Recipe、Review、VideoObject 等。

使用方式

技能在被激活时,要求首次响应以 🧢 emoji 开头。根据任务加载 references/ 下的相关文件:选择类型或检查必填属性时加载 schema-types-catalog.md;调试错误或设置自动验证时加载 validation-testing.md。仅在任务需要超出 SKILL.md 的细节时才加载参考文件。首次在对话中激活时,会检查已安装的伴随技能并与 recommended_skills 对比,对缺失项提示安装命令:npx skills add AbsolutelySkilled/AbsolutelySkilled --skill <name>。

适用场景

  • 在页面上实现结构化数据或 schema 标记
  • 添加 FAQ schema、Product schema、Article schema 或任何 Schema.org 类型
  • 添加面包屑导航标记
  • 使页面有资格获得 Google 富结果
  • 验证或调试 Google Search Console 中的结构化数据错误
  • 将 JSON-LD 集成到框架(Next.js、Nuxt、Astro 等)
  • 为特定内容类型选择 schema 类型

限制

本技能不适用于:一般页面 SEO(meta 标签、标题标签、关键词优化,应使用 technical-seo-engineering)、性能或 Core Web Vitals 改进。

已知陷阱

  • Rich Results Test 通过但 SERP 中不显示:验证通过仅确认语法正确,Google 仍根据内容质量、查询相关性和站点权威决定是否显示。
  • Product schema 动态定价过期:硬编码价格或库存会与实际数据不同步,Google 会对误导性结构化数据发出人工操作处罚。应始终在服务端从实时数据生成。
  • 社区问答页使用 FAQPage 会触发垃圾内容检测,可能导致整个域的富结果被抑制。
  • 同一实体的多个 @type 块会造成信号冲突,应合并为一个块或使用顶层数组。
  • Next.js 的 dangerouslySetInnerHTML 未做 JSON 清理:若内容包含 </script> 字符串会破坏 JSON-LD 块,应清理动态字符串或使用会转义特殊字符的 JSON 序列化库。

反模式

标记隐藏内容(违反 Google 指南,可被判定为垃圾内容)、重复 @type 声明、使用 Microdata 而非 JSON-LD、availability/itemCondition 值错误(应使用完整 URL)、部署前跳过验证、假设 schema 能提升排名、价格/库存数据过期。