JSON-LD是当前最稳、最推荐的结构化数据落地方式,Google解析优先级最高、容错性强;必须用置于内,因爬虫不执行JS、只解析首屏HTML,动态注入无效;Product、Event、JobPosting三类页面加结构化数据后索引速度提升最明显。

JSON-LD是当前最稳、最推荐的结构化数据落地方式,Google 解析优先级最高,容错性强——只要最终 HTML 中存在且格式正确,基本都能识别。其他方式(如 Microdata、RDFa)一旦嵌套出错或漏字段,整块标记就失效。
为什么必须用 script type="application/ld+json" 放在 里
爬虫不执行 JS,只解析首屏 HTML;动态注入(比如 React 的 useEffect 或 Vue 的 mounted)生成的 <script></script> 标签,对搜索引擎不可见。
常见错误包括:
• 漏掉 type="application/ld+json",写成 text/json 或直接省略
• 把 JSON-LD 放在 底部,虽偶有识别,但稳定性差
• 在模板中用字符串拼接 JSON(如 PHP 的 "{ 'name': '$title' }"),易引入 XSS 或语法错误
正确做法:
• Next.js:用 next/head 或 useHead
• Nuxt:用 useHead 或 head: {} 配置项
• 静态页 / PHP / Jinja:调用语言原生安全序列化函数(如 json_encode($data, JSON_UNESCAPED_UNICODE)),禁止手拼
BreadcrumbList 必须严格对齐 HTML 结构
富片段不展示,90% 是因为 HTML 和 JSON-LD 对不上。
关键校验点:
• itemListElement 是必填数组,拼错成 itemListElements 就失败
• 每个 ListItem 的 position 必须从 1 开始连续递增(1,2,3…),跳号或从 0 起都无效
• item 必须是对象,至少含 @id(推荐绝对 URL)或 name;只写字符串如 "首页" 会报 “missing field @id”
• 当前页 HTML 中必须用 aria-current="page",且不能带 链接;class="active" 或 aria-current="true" 全无效
• 多语言站点要同步 hreflang,@id 必须指向对应语言版本 URL
哪些页面加了结构化数据后索引速度提升最明显
不是所有页面都值得加——前提是内容已被爬虫发现,且具备独立语义价值。
实测见效最快的三类:
• Product:电商 SKU 页,尤其含 offers.price、availability、sku 字段时,Google 更倾向主动抓取
• Event:活动页带明确 startDate 和 endDate,爬虫会按时间戳预判时效性,提前调度抓取频次
• JobPosting:招聘页标注 hiringOrganization、jobLocation、datePosted 后,常进入 Google for Jobs 专用索引队列
注意:WebSite 或 Organization 这类全局标记,对单页索引速度几乎无影响,更适合长期品牌露出
字段填错比不填更危险
语义冲突会被算法识别为误导,轻则富摘要不展示,重则降权。
典型错误:
• Product 里写 "availability": "InStock",但页面实际显示“缺货”
• datePublished 写成未来时间(如 "2026-12-01"),CMS 自动生成时容易出这种 bug,导致页面被归入“未发布”状态
• BreadcrumbList 中第 3 项 HTML 显示“无线耳机”,JSON-LD 却写成 "name": "蓝牙耳机"
核心原则:结构化数据必须与 DOM 可见内容一致。宁可少标几个字段,也不要标一个错字段。
真正难的不是写对 JSON-LD,而是让每个字段和页面上用户看到的文字、链接、状态完全咬合——差一个空格、大小写、斜杠,都可能让富片段消失。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











