SuperAPI AI 工具集

seo-schema-structured-data

营销与增长

查看项目

更新于 10-16 15:11

技能介绍

用途

本技能是 Schema.org 结构化数据与 JSON-LD 实现的专家指南,用于在以下场景:创建 schema 标记、验证结构化数据、实现富媒体搜索结果。

JSON-LD 基础

JSON-LD(JavaScript Object Notation for Linked Data)是 Google 推荐的结构化数据格式,通过 HTML 页面 head 或 body 中的 <script> 标签注入。

基本语法示例:

<script type="application/ld+json"> { "@context": "https://schema.org", "@type": "Article", "headline": "How to Implement Structured Data", "author": { "@type": "Person", "name": "Jane Smith" } } </script>

核心关键字:

  • @context:声明词汇表(始终为 https://schema.org),示例 "@context": "https://schema.org"
  • @type:指定实体类型,示例 "@type": "Article"
  • @id:实体的唯一标识符(支持交叉引用),示例 "@id": "https://example.com/#organization"
  • @graph:在单个 JSON-LD 块中包含多个实体,示例 "@graph": [{ ... }, { ... }]

实体既可嵌套,也可通过 @id 引用。当属性有多个值时使用数组。@graph 模式用于描述单页上的多个实体(如 Organization + WebPage + BreadcrumbList)。

Google 支持的 Schema 类型

下列类型被 Google 识别,可触发富媒体搜索结果。每节列出必需(R)与推荐(Rec)属性。

Article(NewsArticle、BlogPosting)

触发文章富媒体结果(标题、图片、日期)。必需:headline(最多 110 字符)、image(至少 696px 宽,建议多图)、datePublished(ISO 8601)、author(Person 或 Organization,含 name 与 url)。推荐:dateModified、publisher(Organization 含 name 与 logo)、description、mainEntityOfPage。

Product(配合 Offer、AggregateRating)

触发产品富媒体结果(价格、库存、评分星)。必需:name、image(至少一张)、offers(Offer 或 AggregateOffer)、offers.price、offers.priceCurrency(ISO 4217)、offers.availability(ItemAvailability 枚举,如 https://schema.org/InStock)。推荐:description、sku、brand、offers.url、aggregateRating、review。AggregateRating 与 Offer 嵌套在 Product 内。

FAQPage(配合 Question / Answer)

触发可展开的 FAQ 折叠面板。必需:mainEntity(Question 对象数组)、Question.name、Question.acceptedAnswer、Answer.text(允许 HTML)。规则:仅用于主要内容为问答列表的页面;每个问答必须在页面上可见;论坛或单问题页面不要使用(改用 QAPage)。

HowTo(配合 HowToStep)

触发分步富媒体结果或轮播。必需:name、step(HowToStep 对象数组)、step.name、step.text。推荐:step.image、step.url、totalTime(ISO 8601 时长,如 PT30M)、estimatedCost、supply、tool。

LocalBusiness(及子类型)

触发本地知识面板、地图包资格数据。子类型:Restaurant、Dentist、LegalService、RealEstateAgent、MedicalBusiness 等。必需:name、address(PostalAddress)。推荐:telephone、openingHoursSpecification、geo、url、image、priceRange、servesCuisine(Restaurant 子类型)、aggregateRating、review。

Organization

触发知识面板数据、搜索结果中的 logo。必需:name、url、logo(ImageObject 或 URL,至少 112x112px,建议方形)。推荐:sameAs、contactPoint、address、description、foundingDate。

BreadcrumbList

触发搜索结果中替代 URL 的面包屑路径。必需:itemListElement(ListItem 对象数组)、ListItem.position、ListItem.name。ListItem.item 在末项可省略。

WebSite(配合 SearchAction 实现站点链接搜索框)

触发品牌查询下的站点链接搜索框。必需:url、potentialAction(SearchAction 对象)、SearchAction.target(含 {search_term_string} 的 URL 模板)、SearchAction.query-input("required name=search_term_string")。推荐:name。

Event

触发事件富媒体结果(日期、地点、票务信息)。必需:name、startDate、location(Place 或 VirtualLocation)、location.name、location.address。推荐:endDate、description、image、offers、performer、organizer、eventStatus、eventAttendanceMode。

Recipe

触发食谱富媒体结果(图片、评分、烹饪时间)。必需:name、image(不同宽高比的多张图)、author、recipeInstructions(HowToStep 对象数组)。推荐:datePublished、description、prepTime、cookTime、totalTime、recipeYield、recipeIngredient、nutrition、aggregateRating、video。

VideoObject

触发视频富媒体结果(缩略图、时长、上传日期)。必需:name、description、thumbnailUrl、uploadDate。推荐:contentUrl、embedUrl、duration、interactionStatistic。

Course

触发搜索与 Google for Education 中的课程富媒体结果。必需:name、description、provider。推荐:offers、courseCode、hasCourseInstance。

SoftwareApplication

触发软件富媒体结果(评分、价格、操作系统)。必需:name、offers(免费使用 "0")。推荐:operatingSystem、applicationCategory、aggregateRating、review。

Review

触发带星评的评论摘要。必需:itemReviewed、author、reviewRating、reviewRating.bestRating、reviewRating.worstRating。推荐:datePublished、reviewBody。

动态 Schema 生成模式

以编程方式构建页面时,从数据模型生成 schema:

  • 服务端渲染(Next.js 示例):在组件中构造包含 @context、@type、name、image、description、sku、brand、offers 等字段的对象,通过 <script type="application/ld+json" dangerouslySetInnerHTML={{ __html: JSON.stringify(schema) }} /> 输出。
  • CMS 集成模式:对 WordPress、Shopify 或无头 CMS,在模板或插件中将 CMS 字段映射到 schema 属性;确保 price、availability、rating 数据来自实时数据源;使用条件逻辑只输出有值的属性。

验证方法

  1. Rich Results Test(Google):https://search.google.com/test/rich-results ,测试标记是否符合富媒体结果资格,按 schema 类型报告错误与警告。
  2. Schema Markup Validator(Schema.org):https://validator.schema.org/ ,依据完整 Schema.org 词汇表验证(范围比 Google 更广)。
  3. Google Search Console:在 Enhancements 部分查看结构化数据报告,监控错误、警告、有效条目数,审查带结构化数据的页面索引情况。

可用 MCP 工具:extract_schema 可从任意 URL 提取全部 JSON-LD、Microdata 与 RDFa;generate_schema 可针对给定类型生成有效标记。

常见陷阱

  • 不可见内容:schema 描述用户不可见的内容,需确保每个属性与可见页面内容一致。
  • 缺少必需字段:Google 会忽略不完整标记,须按类型包含全部必需属性。
  • 错误的 @type:使用 Google 不支持的富媒体结果类型,应只用 Google 文档中的类型。
  • 虚假评论:schema 包含编造的评分或评论,只标记真实用户评论。
  • 过期价格:产品 schema 显示旧价格,应从实时数据动态生成。
  • 多个冲突类型:同一页两个 Product schema 数据不同,每个实体只用一个规范 schema。
  • 自引用问题:@id 引用指向不存在的位置,确保每个 @id 引用都有对应定义。
  • 日期格式错误:用 MM/DD/YYYY 而非 ISO 8601,始终用 YYYY-MM-DD 或 YYYY-MM-DDTHH:MM:SS+00:00。
  • HTTP 图片 URL:图片通过 HTTP 而非 HTTPS 引用,所有图片使用 HTTPS URL。
  • 垃圾内容政策违规:仅为 SEO 操纵而标记内容,须遵守 Google 结构化数据垃圾内容政策。

相关技能

  • seo-on-page-optimization:内容与 meta 标签优化
  • seo-technical-audit:可抓取性与索引问题
  • seo-mcp-tools-expert:MCP 工具详细用法

结构化数据关键 MCP 工具

extract_schema:从任意 URL 提取现有结构化数据。 generate_schema:为给定页面与类型生成有效 JSON-LD 标记。

参见 SCHEMA_TEMPLATES.md 获取可直接使用的 JSON-LD 模板;参见 VALIDATION_RULES.md 获取 Google 验证要求;参见 RICH_RESULTS_GUIDE.md 了解哪些类型触发哪些富媒体结果。