structured data
本地来源:seo-llm/skill/google-seo-skill/references/structured-data.md
结构化数据(Structured Data)完整指南
1. Article / BlogPosting Schema
// components/ArticleSchema.tsx
export function ArticleSchema({ post }: { post: Post }) {
const schema = {
'@context': 'https://schema.org',
'@type': 'Article',
headline: post.title,
description: post.excerpt,
image: post.coverImage,
datePublished: post.publishedAt,
dateModified: post.updatedAt,
// author 最佳实践:使用 @type Person/Organization,含 name + url/sameAs
// 多作者用数组,不要合并到一个 name 字段
author: [{
'@type': 'Person',
name: post.author.name,
url: post.author.url, // 或 sameAs 指向作者主页
}],
publisher: {
'@type': 'Organization',
name: '网站名称',
logo: {
'@type': 'ImageObject',
url: 'https://example.com/logo.png',
},
},
mainEntityOfPage: {
'@type': 'WebPage',
'@id': `https://example.com/blog/${post.slug}`,
},
}
return (
<script
type="application/ld+json"
dangerouslySetInnerHTML={{ __html: JSON.stringify(schema) }}
/>
)
}
2. BreadcrumbList Schema
// components/BreadcrumbSchema.tsx
export function BreadcrumbSchema({ items }: { items: BreadcrumbItem[] }) {
const schema = {
'@context': 'https://schema.org',
'@type': 'BreadcrumbList',
itemListElement: items.map((item, index) => ({
'@type': 'ListItem',
position: index + 1,
name: item.name,
item: item.url,
})),
}
return (
<script
type="application/ld+json"
dangerouslySetInnerHTML={{ __html: JSON.stringify(schema) }}
/>
)
}
// 使用示例
<BreadcrumbSchema
items={[
{ name: '首页', url: 'https://example.com' },
{ name: '博客', url: 'https://example.com/blog' },
{ name: '文章标题', url: 'https://example.com/blog/article' },
]}
/>
BreadcrumbList 必查清单(存在性 → 完整性 → 规范性):
### 存在性检查
- [ ] 页面 HTML 中存在 `@type: BreadcrumbList` 的 JSON-LD 脚本
- [ ] JSON-LD 在服务端渲染输出中(非客户端 JS 注入)
- [ ] 所有需要面包屑的页面都有对应的 BreadcrumbList Schema(非仅首页)
### 完整性检查
- [ ] `itemListElement` 至少包含 2 项(首页 + 当前页)
- [ ] 每个 ListItem 包含 `@type`、`position`、`name` 三个必需字段
- [ ] 除最后一项外,每个 ListItem 都包含 `item`(URL) 字段
- [ ] 面包屑覆盖完整路径层级(首页 → 分类 → 当前页),不跳级
### 规范性检查
- [ ] `position` 从 1 开始严格递增,无跳号无重复
- [ ] `item` URL 使用完整绝对路径(`https://example.com/path`,非 `/path`)
- [ ] `item` URL 与 canonical URL 格式一致(www/非www、尾斜杠统一)
- [ ] `name` 与页面可见面包屑导航文本完全一致
- [ ] 面包屑层级与 URL 路径层级逻辑对应
- [ ] 通过 Google Rich Results Test 验证无错误无警告
3. Organization Schema
// components/OrganizationSchema.tsx(放在首页)
export function OrganizationSchema() {
const schema = {
'@context': 'https://schema.org',
'@type': 'Organization',
name: '公司名称',
url: 'https://example.com',
logo: 'https://example.com/logo.png', // ≥ 112x112px,Googlebot 可抓取可索引
description: '公司简介',
sameAs: [
'https://twitter.com/company',
'https://github.com/company',
'https://linkedin.com/company/company',
],
contactPoint: {
'@type': 'ContactPoint',
telephone: '+86-xxx-xxxx-xxxx',
contactType: 'customer service',
availableLanguage: ['Chinese', 'English'],
},
address: {
'@type': 'PostalAddress',
streetAddress: '街道地址',
addressLocality: '城市',
addressRegion: '省份',
postalCode: '邮编',
addressCountry: 'CN',
},
// 电商站点可选:hasMerchantReturnPolicy, hasMemberProgram, hasShippingService
// 合规可选:legalName, vatID, taxID, foundingDate, numberOfEmployees
}
return (
<script
type="application/ld+json"
dangerouslySetInnerHTML={{ __html: JSON.stringify(schema) }}
/>
)
}
4. Product Schema
Google 区分两种 Product 标记: - Product Snippet(商品摘要):用于评测/比较等非购买页面,侧重评价信息和优缺点 - Merchant Listing(商家信息):用于可直接购买的页面,含配送、退货、产品变体等详情
电商站点应使用 Merchant Listing 模式,评测站点使用 Product Snippet 模式。
// components/ProductSchema.tsx
export function ProductSchema({ product }: { product: Product }) {
const schema = {
'@context': 'https://schema.org',
'@type': 'Product',
name: product.name,
image: product.images,
description: product.description,
brand: {
'@type': 'Brand',
name: product.brand,
},
offers: {
'@type': 'Offer',
url: `https://example.com/products/${product.slug}`,
priceCurrency: 'CNY',
price: product.price,
availability: product.inStock
? 'https://schema.org/InStock'
: 'https://schema.org/OutOfStock',
seller: {
'@type': 'Organization',
name: '网站名称',
},
// Merchant Listing 可扩展:shippingDetails、hasMerchantReturnPolicy
},
aggregateRating: product.rating
? {
'@type': 'AggregateRating',
ratingValue: product.rating.value,
reviewCount: product.rating.count,
}
: undefined,
}
return (
<script
type="application/ld+json"
dangerouslySetInnerHTML={{ __html: JSON.stringify(schema) }}
/>
)
}
// 产品变体:使用 ProductGroup + hasVariant
// ⚠️ ProductGroup.name 必填,variesBy 支持:color/size/suggestedAge/suggestedGender/material/pattern
// 每个变体需独立 URL + 唯一标识符(SKU/GTIN),productGroupID 必须与 inProductGroupWithID 匹配
// const variantSchema = {
// '@type': 'ProductGroup',
// name: '产品系列名',
// productGroupID: 'group-123',
// variesBy: ['https://schema.org/color', 'https://schema.org/size'],
// hasVariant: [
// { '@type': 'Product', name: '红色-S', color: '红色', size: 'S', sku: 'SKU-001',
// url: 'https://example.com/products/item-red-s', inProductGroupWithID: 'group-123' },
// { '@type': 'Product', name: '蓝色-M', color: '蓝色', size: 'M', sku: 'SKU-002',
// url: 'https://example.com/products/item-blue-m', inProductGroupWithID: 'group-123' },
// ],
// }
5. FAQ Schema
// components/FAQSchema.tsx
export function FAQSchema({ faqs }: { faqs: FAQ[] }) {
const schema = {
'@context': 'https://schema.org',
'@type': 'FAQPage',
mainEntity: faqs.map((faq) => ({
'@type': 'Question',
name: faq.question,
acceptedAnswer: {
'@type': 'Answer',
text: faq.answer,
},
})),
}
return (
<script
type="application/ld+json"
dangerouslySetInnerHTML={{ __html: JSON.stringify(schema) }}
/>
)
}
FAQ Schema 重要规则: - ⚠️ FAQ 富媒体结果现仅限健康类权威网站和政府网站展示,普通网站的 FAQ Schema 仍可标记但不会在搜索结果中获得 Rich Results 展示 - 每个问题在整个网站中只能出现一次(跨页面检查!) - 问题文本必须与页面可见内容完全一致 - 答案必须是完整的回答,不能只是链接 - 不要在 FAQ Schema 中放置广告或推广内容
6. WebSite Schema
⚠️ SearchAction / Sitelinks Search Box 已于 2024 年 11 月废弃,Google 不再支持通过 WebSite Schema 的
potentialAction触发站内搜索框。不要再添加 SearchAction 字段。
WebSite Schema 的核心作用是控制 Google 搜索结果中显示的网站名称。name 字段直接影响搜索结果顶部的站点名称展示。
// components/WebSiteSchema.tsx(放在首页)
export function WebSiteSchema() {
const schema = {
'@context': 'https://schema.org',
'@type': 'WebSite',
name: '你的网站名称', // ← 控制 Google 搜索结果中的站点名称
alternateName: 'YourSiteName', // ← 可选:备用名称(缩写或英文名)
url: 'https://example.com',
// ❌ 不要再添加 potentialAction / SearchAction
}
// 使用 Next.js Metadata API 或服务端渲染输出 JSON-LD
return <JsonLd data={schema} />
}
WebSite Schema 关键规则:
- name 必须与网站实际品牌名称一致,不能堆砌关键词
- alternateName 用于品牌缩写或多语言名称(如中文网站的英文名)
- 仅在首页部署,全站只需一个 WebSite Schema
- url 必须是首页完整 URL
- Google 综合 WebSite Schema name + og:site_name + <title> + 网页引用 决定站点名称,保持一致性
7. HowTo Schema(⚠️ 已废弃 — 2023.9 起桌面+移动端均不再展示 Rich Results)
// components/HowToSchema.tsx
export function HowToSchema({ howTo }: { howTo: HowToData }) {
const schema = {
'@context': 'https://schema.org',
'@type': 'HowTo',
name: howTo.title,
description: howTo.description,
totalTime: howTo.totalTime, // ISO 8601 格式,如 "PT30M"
estimatedCost: howTo.cost
? {
'@type': 'MonetaryAmount',
currency: 'CNY',
value: howTo.cost,
}
: undefined,
supply: howTo.supplies?.map((s) => ({
'@type': 'HowToSupply',
name: s,
})),
tool: howTo.tools?.map((t) => ({
'@type': 'HowToTool',
name: t,
})),
step: howTo.steps.map((step, index) => ({
'@type': 'HowToStep',
position: index + 1,
name: step.title,
text: step.description,
image: step.image,
url: `${howTo.url}#step-${index + 1}`,
})),
}
return (
<script
type="application/ld+json"
dangerouslySetInnerHTML={{ __html: JSON.stringify(schema) }}
/>
)
}
8. SoftwareApplication Schema
// components/SoftwareAppSchema.tsx(用于 SaaS 产品页)
export function SoftwareAppSchema({ app }: { app: SoftwareApp }) {
const schema = {
'@context': 'https://schema.org',
'@type': 'SoftwareApplication',
name: app.name, // ← 必填
description: app.description,
applicationCategory: app.category, // 如 "BusinessApplication"
operatingSystem: app.os || 'Web',
url: app.url,
screenshot: app.screenshots,
offers: { // ← 必填(免费产品 price 写 "0")
'@type': 'Offer',
price: app.price || '0',
priceCurrency: 'USD',
},
// ⚠️ aggregateRating 或 review 二选一必填,否则不展示 Rich Results
aggregateRating: app.rating
? {
'@type': 'AggregateRating',
ratingValue: app.rating.value,
ratingCount: app.rating.count,
}
: undefined,
author: {
'@type': 'Organization',
name: app.developer,
},
}
return (
<script
type="application/ld+json"
dangerouslySetInnerHTML={{ __html: JSON.stringify(schema) }}
/>
)
}
9. VideoObject Schema
// components/VideoSchema.tsx(用于视频页面)
export function VideoSchema({ video }: { video: VideoData }) {
const schema = {
'@context': 'https://schema.org',
'@type': 'VideoObject',
name: video.title,
description: video.description,
thumbnailUrl: video.thumbnail, // 必须:稳定 URL,≥ 60x30px,BMP/GIF/JPEG/PNG/WebP/SVG/AVIF
uploadDate: video.publishedAt, // ISO 8601
duration: video.duration, // ISO 8601,如 "PT1M30S"
contentUrl: video.fileUrl, // 视频文件直链(可选,有助于预览生成)
embedUrl: video.embedUrl, // 嵌入播放器 URL
}
return <JsonLd data={schema} />
}
VideoObject 关键规则:
- 视频必须使用标准 HTML 元素(<video>/<embed>/<iframe>/<object>),不能只用 CSS/JS
- 每个视频创建专属观看页(视频为主要内容),有助于获取富媒体特性
- 缩略图必须是稳定 URL、受支持格式(BMP/GIF/JPEG/PNG/WebP/SVG/AVIF)、≥ 60x30px
- 关键时刻:使用 Clip 或 SeekToAction 结构化数据标记视频章节
- 直播徽章:使用 BroadcastEvent 结构化数据标记直播内容
- 使用 Search Console 视频索引报告监控视频索引状态
- ❌ 禁止使用 URL fragment(#)加载视频,Google 不支持 URL fragments
- ❌ 禁止依赖用户交互(点击、滑动)才加载视频,确保渲染后的 HTML 直接包含视频元素
- ❌ Data URL 不受支持,视频源必须是标准 HTTP(S) URL
- 使用 max-video-preview meta robots 标签控制视频预览时长(如 max-video-preview:30 限制 30 秒)
- 支持的视频文件格式:3GP, 3G2, ASF, AVI, DivX, M2V, M3U, M3U8, M4V, MKV, MOV, MP4, MPEG, OGV, QVT, RAM, RM, VOB, WebM, WMV, XAP
- 地区限制:使用结构化数据 regionsAllowed/ineligibleRegion 或 Video Sitemap <video:restriction> 控制可见国家/地区(ISO 3166-1 国家代码)
- 视频移除:返回 404 状态码、添加 noindex meta 标签、或在结构化数据中设置过期日期(expires),也可通过 Search Console 提交移除请求
Video Sitemap:
<!-- 可独立或嵌入主 sitemap,与 VideoObject 结构化数据互补 -->
<url>
<loc>https://example.com/videos/video-page</loc>
<video:video>
<video:thumbnail_loc>https://example.com/thumbs/video1.jpg</video:thumbnail_loc>
<video:title>视频标题</video:title>
<video:description>视频描述</video:description>
<video:content_loc>https://example.com/videos/video1.mp4</video:content_loc>
<video:duration>600</video:duration><!-- 秒 -->
<video:publication_date>2025-10-15T08:00:00+08:00</video:publication_date>
<!-- 地区限制(可选) -->
<video:restriction relationship="allow">CN US</video:restriction>
</video:video>
</url>
10. Review Schema (原第9节)
// components/ReviewSchema.tsx
export function ReviewSchema({ review }: { review: ReviewData }) {
const schema = {
'@context': 'https://schema.org',
'@type': 'Review',
itemReviewed: {
'@type': review.itemType, // Product, SoftwareApplication, Book 等
name: review.itemName,
image: review.itemImage,
},
reviewRating: {
'@type': 'Rating',
ratingValue: review.rating,
bestRating: '5',
worstRating: '1',
},
author: {
'@type': 'Person',
name: review.authorName,
},
datePublished: review.publishedAt,
reviewBody: review.body,
publisher: {
'@type': 'Organization',
name: '网站名称',
},
}
return (
<script
type="application/ld+json"
dangerouslySetInnerHTML={{ __html: JSON.stringify(schema) }}
/>
)
}
Review Schema 规则:
- itemReviewed 必须明确指定被评论的对象类型和名称
- 评分范围必须通过 bestRating 和 worstRating 声明
- reviewBody 应包含实质性评论内容,不能只有评分
- 自我评论(评论自己的产品)不符合 Rich Results 资格
- 与 AggregateRating 配合使用:单条评论用 Review,汇总评分用 AggregateRating
11. Rich Results 资格速查表
rich_results_eligibility:
description: "各 Schema 类型在 Google 搜索中的 Rich Results 展示条件"
# 本 skill 核心覆盖的 Schema 类型
always_eligible:
- type: "Article"
rich_result: "AMP 文章轮播、Top Stories"
requirements: ["headline", "image", "datePublished", "author"]
- type: "BreadcrumbList"
rich_result: "搜索结果中的面包屑路径"
requirements: ["itemListElement 至少 2 项"]
- type: "FAQ"
rich_result: "可展开的问答列表(⚠️ 现仅限健康类权威网站和政府网站)"
requirements: ["至少 1 个 Question+Answer", "问题全站唯一"]
- type: "HowTo"
rich_result: "⚠️ **已废弃** — 2023.9 起桌面端+移动端均不再展示 Rich Results"
requirements: ["已废弃,不再使用;教程改用 Article + H2/H3 步骤标题"]
conditional_eligible:
- type: "Product"
rich_result: "价格、库存、评分星标(区分 Product Snippet vs Merchant Listing)"
requirements: ["name", "offers 或 review 或 aggregateRating"]
note: "需有真实的价格和库存信息"
- type: "Review"
rich_result: "评分星标"
requirements: ["itemReviewed", "reviewRating", "author"]
note: "不能评论自己的产品"
# Google 搜索支持的全部 33 种结构化数据类型 + 1 Beta(按需使用)
all_supported_types:
core: ["Article", "BreadcrumbList", "Organization", "Product", "FAQ", "WebSite", "SoftwareApplication", "VideoObject", "Review"]
# ⚠️ HowTo 已于 2023.9 废弃(桌面+移动端均不再展示 Rich Results),不再列入 core
domain_specific:
- "Event — 活动/会议(需 name, startDate, location)"
- "LocalBusiness — 本地商家(需 name, address)"
- "Course — 课程(需 name, description, provider;轮播需 ≥3 门)"
- "ProfilePage — 个人资料页(需 mainEntity: Person/Organization)"
- "Recipe — 食谱(需 name, image;定义 nutrition.calories 时必须同时定义 recipeYield)"
- "JobPosting — 招聘(需 title, datePosted, description, hiringOrganization;远程用 TELECOMMUTE;过期用 validThrough + Indexing API 加速移除)"
- "Book — 图书"
- "Movie — 电影"
- "Dataset — 数据集(需 name, description;⚠️ 仅用于 Google Dataset Search,不在常规搜索结果中展示 Rich Results)"
- "QAPage — 问答页面"
- "Discussion Forum — 论坛"
- "Carousel/ItemList — 轮播/列表容器"
- "Speakable — 语音搜索标记"
- "Subscription/Paywalled Content — 付费墙内容"
- "Vacation Rental — 度假租赁"
- "Image License Metadata — 图片版权"
- "Employer Aggregate Rating — 雇主评分"
- "MathSolver — 数学求解器(分步讲解)"
- "Education Q&A — 教育问答(学习辅助平台,使用 Quiz/Question 类型)"
- "ClaimReview (Factcheck) — 事实核查(需 claimReviewed, reviewRating)"
- "ProductGroup/Product Variants — 产品变体(需 ProductGroup: name, productGroupID, variesBy; 每个变体需唯一 SKU/GTIN + offers;支持 nested 或 isVariantOf 两种结构)"
- "MerchantReturnPolicy — 退货政策(需 applicableCountry + returnPolicyCategory 或 merchantReturnLink;季节性覆盖用 returnPolicySeasonalOverride + startDate/endDate)"
- "MemberProgram — 会员忠诚计划(嵌套在 Organization 中,需 name, description, hasTiers→MemberProgramTier;通过 Product→Offer→UnitPriceSpecification 关联会员价)"
- "ShippingService — 商家级配送政策(嵌套在 Organization.hasShippingService 中,需 shippingConditions;优先级:Content API > Merchant Center/Search Console > 产品级标记 > Organization 级标记)"
- "⚠️ Carousels Beta(EEA/土耳其/南非)— ItemList + LocalBusiness/Product/Event,≥3 项,单站点策展,摘要页放置"
validation:
tool: "https://search.google.com/test/rich-results"
frequency: "每次修改 Schema 后必须验证"
common_errors:
- "缺少必需字段"
- "字段值与页面可见内容不一致"
- "日期格式不正确(必须 ISO 8601)"
- "URL 不可访问或重定向"
结构化数据验证要点
### 通用规则
- [ ] 使用 JSON-LD 格式(Google 推荐),也支持 Microdata 和 RDFa
- [ ] ⚠️ data-vocabulary.org 标记已停止支持,必须使用 schema.org 词汇
- [ ] 放在 `<head>` 中或服务端渲染
- [ ] Schema 内容必须与页面可见内容一致
- [ ] **不得标记用户看不到的内容**(标记不可见内容会被判为 spam,导致手动操作处罚)
- [ ] 不得包含隐藏内容或误导信息
- [ ] 所有必需字段都已填写
- [ ] 优先提供"少量但完整准确的推荐属性"而非"全面但不准确的属性"
- [ ] 时效性内容(活动、优惠等)的结构化数据必须保持更新
- [ ] 手动操作处罚仅影响富媒体结果展示,不影响普通搜索排名
### @type 类型准确性(必查!极易遗漏)
- [ ] **`@type` 必须与页面实际内容严格对应,用错类型会导致 Rich Results 失效甚至被判为 spam**
- [ ] SaaS / 在线工具 / 软件产品 → `SoftwareApplication`(必须含 `applicationCategory`、`operatingSystem`)
- [ ] 实物商品 / 电商产品 → `Product`(必须含 `offers`、`brand`)
- [ ] 博客 / 新闻文章 → `Article` 或 `BlogPosting`(必须含 `headline`、`datePublished`、`author`)
- [ ] 教程 / 步骤指南 → `Article`(⚠️ `HowTo` Rich Results 已于 2023.9 废弃,桌面+移动端均不再展示)
- [ ] 常见错误举例:
- SaaS 定价页用了 `Product` → 应该用 `SoftwareApplication` + `offers`
- 软件下载页用了 `Article` → 应该用 `SoftwareApplication`
- 实物商品用了 `SoftwareApplication` → 应该用 `Product`
- ~~教程文章用了 `Article` → 如果有明确步骤应该用 `HowTo`~~ HowTo 已废弃,教程直接用 `Article` + H2/H3 步骤标题
- [ ] 一个页面的主 Schema 只能有一个主类型,不能同时声明 Product 和 SoftwareApplication
- [ ] 辅助 Schema(BreadcrumbList、Organization、WebSite)可以与主 Schema 共存
### 字段值正确性(必查!极易遗漏)
**日期字段**:
- [ ] `datePublished` 和 `dateModified` 必须使用 ISO 8601 格式(`2025-01-15` 或 `2025-01-15T08:00:00+08:00`)
- [ ] `dateModified` 必须反映页面实际最后修改时间,**不能写死、不能永远等于 `datePublished`**
- [ ] 如果内容有更新但 `dateModified` 没变,Google 会认为内容陈旧,影响 Freshness 排名
- [ ] 常见错误:用构建时间代替实际内容修改时间、SSG 每次部署都刷新 `dateModified`
**价格字段**:
- [ ] `offers.price` 免费产品/SaaS **必须写 `"0"`**,不能省略 `price` 字段
- [ ] 省略 `price` 会导致 Google Rich Results 不展示价格信息
- [ ] `priceCurrency` 必须是有效的 ISO 4217 货币代码(`USD`、`CNY`、`EUR` 等)
- [ ] Freemium 模式:免费版用 `"price": "0"`,付费版用实际价格,不能写 `"Free"`
**图片字段**:
- [ ] `image` 必须是可访问的绝对 URL(`https://example.com/image.jpg`)
- [ ] 不能使用 base64 编码、相对路径、或返回 404 的链接
- [ ] **Article Schema 图片要求**:≥ 50K 像素(宽×高),推荐 16:9、4:3、1:1 多种宽高比,每篇至少一张
- [ ] Google 发现页面 / Top Stories 展示要求高分辨率图片(max-image-preview:large 或 AMP)
- [ ] 多图时使用数组格式:`"image": ["url1", "url2", "url3"]`
**null 值处理**:
- [ ] JSON-LD 中**不能出现 `null` 值**,Google 会报验证错误
- [ ] `JSON.stringify` 会自动去掉 `undefined` 字段(安全),但会输出 `null`(危险)
- [ ] 正确写法:条件渲染时用 `undefined` 而非 `null`,或在序列化前过滤掉 `null`
- [ ] 示例:`aggregateRating: product.rating ? { ... } : undefined` ✅
- [ ] 反例:`aggregateRating: product.rating ?? null` ❌
**@id 唯一性(多 Schema 共存时)**:
- [ ] 同一页面有多个 `<script type="application/ld+json">` 时,每个 Schema 的 `@id` 必须全局唯一
- [ ] 推荐格式:`"@id": "https://example.com/page#breadcrumb"`、`"@id": "https://example.com/page#article"`
- [ ] `@id` 重复会导致 Google 错误合并不同 Schema,产生无效数据
- [ ] 辅助 Schema(BreadcrumbList、Organization、WebSite)与主 Schema 共存时尤其注意
### 验证工具
- Google Rich Results Test: https://search.google.com/test/rich-results
- Schema.org Validator: https://validator.schema.org/
### FAQ Schema 跨页面重复检查
- [ ] 每个 FAQ 问题在全站只出现一次
- [ ] 使用 Grep 工具全局搜索重复的 question 字段
- [ ] 不同页面的 FAQ 主题应有明确区分
- [ ] ⚠️ FAQ 富媒体结果现仅限健康类权威网站和政府网站展示
### 结构化数据政策(违规会触发手动操作)
- [ ] 不为空白页面添加结构化数据
- [ ] 不标记虚假评论或欺骗性内容
- [ ] 不虚假声明所有权、隶属关系或主要用途
- [ ] 使用最具体的 schema.org 类型和属性名称
- [ ] 手动操作仅阻止富媒体结果展示,不影响普通搜索排名
相关文档
- 元数据优化指南 — 元数据与结构化数据的协同优化
- 语义化 HTML 与图片优化 — 语义化标记与 Schema 的配合
- 高级 SEO 技术 — 富文本结果与 SERP 特性优化
- Google Search Console 集成 — 结构化数据错误监控与修复
本文档为站内渲染。原始文件本地路径:saas/source/seo-llm/skill-google-seo-skill-references-structured-data-5861a1.md(仅本地保留,不入库不部署)