SEO
结构化数据完全指南2026 - 用JSON-LD获取富媒体搜索结果
学习如何使用Schema.org和JSON-LD获取Google富媒体摘要。FAQ、How-to、Product结构化数据实施指南与实战示例。
Toolypet Team
Development Team
结构化数据完全指南2026
您是否在搜索结果中看到过星级评分、FAQ或食谱卡片?那就是富媒体搜索结果(Rich Results)。
截至2026年,拥有富媒体结果的页面点击率平均高出58%。使用结构化数据让您的内容脱颖而出。
什么是结构化数据?
结构化数据是一种标准化格式,帮助搜索引擎理解页面内容。
核心概念
| 术语 | 说明 |
|---|---|
| Schema.org | 由Google、Microsoft、Yahoo共同开发的词汇表 |
| JSON-LD | 基于JavaScript的数据格式(Google推荐) |
| Rich Results | 基于结构化数据的增强搜索结果 |
| Rich Snippet | 富媒体结果的旧称 |
为什么选择JSON-LD?
| 格式 | 优点 | 缺点 |
|---|---|---|
| JSON-LD | 与HTML分离,易于维护 | 依赖JavaScript |
| Microdata | 直接嵌入HTML | 代码复杂 |
| RDFa | 灵活性强 | 学习成本高 |
Google官方推荐: JSON-LD
富媒体结果类型
Google支持的主要类型
| 类型 | 显示形式 | 使用场景 |
|---|---|---|
| Article | 新闻卡片 | 博客、新闻 |
| FAQ | 可展开的问答 | FAQ页面 |
| How-to | 分步指南 | 教程 |
| Product | 价格、库存、评分 | 商品页面 |
| Review | 星级评分显示 | 评论内容 |
| Recipe | 烹饪时间、卡路里 | 食谱 |
| Event | 日期、地点 | 活动 |
| LocalBusiness | 营业时间、位置 | 本地商家 |
| BreadcrumbList | 路径显示 | 所有页面 |
JSON-LD基本结构
模板
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "架构类型",
"属性1": "值1",
"属性2": "值2"
}
</script>
必需元素
| 元素 | 说明 |
|---|---|
@context | 始终为"https://schema.org" |
@type | 架构类型(Article、FAQ等) |
| 必需属性 | 因类型而异 |
实战实施示例
1. Article(博客/新闻)
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "结构化数据完全指南2026",
"description": "如何用JSON-LD获取富媒体结果",
"image": "https://example.com/article-image.jpg",
"author": {
"@type": "Person",
"name": "Sam Rank",
"url": "https://example.com/author/sam-rank"
},
"publisher": {
"@type": "Organization",
"name": "Toolypet",
"logo": {
"@type": "ImageObject",
"url": "https://toolypet.com/logo.png"
}
},
"datePublished": "2026-02-22",
"dateModified": "2026-02-22"
}
2. FAQ(常见问题)
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "什么是结构化数据?",
"acceptedAnswer": {
"@type": "Answer",
"text": "结构化数据是一种标准化格式,帮助搜索引擎理解页面内容。"
}
},
{
"@type": "Question",
"name": "JSON-LD应该放在哪里?",
"acceptedAnswer": {
"@type": "Answer",
"text": "可以放在HTML的<head>或<body>中的任何位置,但建议放在<head>中。"
}
}
]
}
3. How-to(分步指南)
{
"@context": "https://schema.org",
"@type": "HowTo",
"name": "如何添加JSON-LD结构化数据",
"description": "向网页添加JSON-LD的方法",
"totalTime": "PT10M",
"step": [
{
"@type": "HowToStep",
"name": "选择架构类型",
"text": "选择与页面内容匹配的Schema.org类型。"
},
{
"@type": "HowToStep",
"name": "编写JSON-LD代码",
"text": "根据所选架构编写JSON-LD代码。"
},
{
"@type": "HowToStep",
"name": "插入HTML",
"text": "用<script type='application/ld+json'>标签包装代码并插入HTML。"
},
{
"@type": "HowToStep",
"name": "测试",
"text": "使用Google Rich Results Test验证有效性。"
}
]
}
4. Product(商品)
{
"@context": "https://schema.org",
"@type": "Product",
"name": "SEO指南手册2026",
"description": "包含最新SEO策略的实战指南",
"image": "https://example.com/product.jpg",
"brand": {
"@type": "Brand",
"name": "Toolypet"
},
"offers": {
"@type": "Offer",
"price": "199",
"priceCurrency": "CNY",
"availability": "https://schema.org/InStock",
"url": "https://example.com/product"
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.8",
"reviewCount": "124"
}
}
5. BreadcrumbList(面包屑导航)
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "首页",
"item": "https://example.com"
},
{
"@type": "ListItem",
"position": 2,
"name": "SEO",
"item": "https://example.com/seo"
},
{
"@type": "ListItem",
"position": 3,
"name": "结构化数据指南",
"item": "https://example.com/seo/structured-data"
}
]
}
6. LocalBusiness(本地商家)
{
"@context": "https://schema.org",
"@type": "LocalBusiness",
"name": "晨曦咖啡馆",
"image": "https://example.com/cafe.jpg",
"address": {
"@type": "PostalAddress",
"streetAddress": "南京路123号",
"addressLocality": "上海市",
"addressRegion": "黄浦区",
"postalCode": "200001",
"addressCountry": "CN"
},
"telephone": "+86-21-1234-5678",
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
"opens": "09:00",
"closes": "22:00"
}
],
"priceRange": "$$"
}
各框架实施方法
Next.js
// app/layout.tsx 或 pages/_document.tsx
import Script from 'next/script';
export default function Layout({ children }) {
const jsonLd = {
"@context": "https://schema.org",
"@type": "WebSite",
"name": "Toolypet",
"url": "https://toolypet.com"
};
return (
<html>
<head>
<Script
id="json-ld"
type="application/ld+json"
dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLd) }}
/>
</head>
<body>{children}</body>
</html>
);
}
React(Helmet)
import { Helmet } from 'react-helmet';
function ArticlePage({ article }) {
const jsonLd = {
"@context": "https://schema.org",
"@type": "Article",
"headline": article.title,
"author": { "@type": "Person", "name": article.author }
};
return (
<>
<Helmet>
<script type="application/ld+json">
{JSON.stringify(jsonLd)}
</script>
</Helmet>
<article>{/* 内容 */}</article>
</>
);
}
WordPress
// functions.php
function add_json_ld_schema() {
if (is_single()) {
$schema = array(
"@context" => "https://schema.org",
"@type" => "Article",
"headline" => get_the_title(),
"datePublished" => get_the_date('c')
);
echo '<script type="application/ld+json">' . json_encode($schema) . '</script>';
}
}
add_action('wp_head', 'add_json_ld_schema');
验证与测试
Google官方工具
| 工具 | 网址 | 用途 |
|---|---|---|
| Rich Results Test | search.google.com/test/rich-results | 富媒体结果资格测试 |
| Schema Markup Validator | validator.schema.org | 验证架构语法 |
| Search Console | search.google.com/search-console | 检查实际索引状态 |
测试清单
- 无JSON语法错误
- 包含所有必需属性
- 与实际页面内容匹配
- 有效的图片URL
- 通过Rich Results Test
常见错误与解决方案
1. JSON语法错误
// ❌ 错误:末尾逗号
{
"name": "测试",
"url": "https://example.com", // 这里!
}
// ✅ 正确
{
"name": "测试",
"url": "https://example.com"
}
2. 缺少必需属性
// ❌ Article缺少author
{
"@type": "Article",
"headline": "仅有标题"
}
// ✅ 包含必需属性
{
"@type": "Article",
"headline": "完整文章",
"author": { "@type": "Person", "name": "作者" },
"datePublished": "2026-02-22"
}
3. 内容不匹配
// ❌ 与页面内容不同
{
"@type": "Product",
"price": "10000" // 实际页面显示15000
}
// 违反Google指南 = 人工处罚风险
4. 过度标记
❌ 将所有文本标记为结构化数据
❌ 对隐藏内容应用架构
❌ 包含用户看不到的信息
✅ 仅标记实际可见的内容
✅ 仅结构化关键信息
SEO效果
预期效果
| 指标 | 改善 |
|---|---|
| CTR(点击率) | +20-58% |
| 展示次数 | 富媒体结果资格 |
| 信任度 | 显示星级评分、评论 |
| 语音搜索 | 答案候选 |
注意事项
- 结构化数据 ≠ 保证排名提升
- 富媒体结果显示由Google决定
- 违反指南可能导致人工处罚
最佳实践清单
实施
- 选择适合页面类型的架构
- 包含所有必需属性
- 使用JSON-LD格式
- 放置在
<head>中
内容
- 与实际页面内容匹配
- 仅包含用户可见的信息
- 保持信息最新
测试
- 通过Rich Results Test
- 通过Schema Markup Validator
- Search Console无错误
常见问题
Q1: 结构化数据直接影响排名吗?
A: 它不是直接的排名因素。但是,它有间接效果,如增加点击率、语音搜索答案等。
Q2: 一个页面可以放多个架构吗?
A: 可以!同时使用Article + FAQ + BreadcrumbList是很常见的。每个使用单独的<script>标签添加。
Q3: 为什么富媒体结果不显示?
A: 可能的原因:
- 缺少必需属性
- 页面未被索引
- Google的自由裁量(不保证)
- 竞争页面更合适
Q4: Microdata vs JSON-LD,应该选择哪个?
A: 推荐JSON-LD。它是Google官方推荐的,与HTML分离,更易于维护。
Q5: 动态内容也可以应用结构化数据吗?
A: 可以!Google可以读取JavaScript生成的JSON-LD。但是,服务器端渲染更稳定。
总结
结构化数据要点:
- 使用JSON-LD: Google推荐格式
- 选择适当的架构: 匹配内容类型
- 包含必需属性: 检查类型特定要求
- 匹配内容: 仅可见信息
- 彻底测试: 通过Rich Results Test
相关工具
结构化数据JSON-LDSchema.org富媒体摘要SEO搜索优化
关于作者
Toolypet Team
Development Team
The Toolypet Team creates free, privacy-focused web tools for developers and designers. All tools run entirely in your browser with no data sent to servers.
Web DevelopmentCSS ToolsDeveloper ToolsSEOSecurity