itemtype必须与itemscope配合使用,否则itemprop无效;itemprop值取textcontent而非html属性;嵌套实体需紧贴itemprop;多实体须各自独立声明;结构化数据须静态存在于初始html中。

itemtype 必须和 itemscope 一起用,否则 itemprop 无效
单独写 itemprop 是白忙活——它没有归属对象,搜索引擎根本不知道这个“名称”“价格”“地址”属于谁。必须先用 itemscope 和 itemtype 声明一个实体边界,itemprop 才能绑定到这个实体上。
常见错误包括:
-
itemtype单独写在<p></p>或<div> 上,没加 <code>itemscope - 把
itemprop放在itemscope容器之外(比如父级<main></main>里写了itemprop="name",但实际内容在子<section></section>里) - 用了旧协议或大小写错误的 URL,例如
http://schema.org/Person或https://schema.org/person -
<p itemprop="name">iPhone <sup>®</sup></p>提取出的值是"iPhone ®",含 HTML 实体,Google 可能拒收 -
<img itemprop="image" src="logo.jpg">不会提取src值,得改用<link itemprop="image" href="logo.jpg"> -
<time itemprop="datePublished">2026年10月12日</time>不会被识别为有效日期,必须加datetime属性:<time itemprop="datePublished" datetime="2026-10-12">2026年10月12日</time> - 价格显示
"¥ 89.00"(含不间断空格)会导致解析失败,建议服务端清洗:textContent.replace(/\s+/g, ' ').trim()
正确起点永远是:<section itemscope itemtype="https://schema.org/Article"></section>,然后所有 itemprop 都得在这个标签内部、且不能跨出它的闭合位置。
itemprop 的值来源很严格,不是“渲染出来什么样就取什么样”
itemprop 默认提取的是元素的 textContent,不是 innerHTML,也不是 alt、href 或 value。这意味着:
嵌套对象必须紧贴 itemprop,不能隔层
当某个属性本身是另一个实体(比如 author 是 Person,address 是 PostalAddress),嵌套的 itemscope 必须直接写在带 itemprop 的同一个元素上,中间不能插无关 wrapper。
✅ 正确:<div itemprop="author" itemscope itemtype="https://schema.org/Person">张三</div>
将调研报告、方案对比、数据分析、需求梳理、会议纪要、设计说明、代码评审、学习笔记等任务产物输出为可在浏览器直接打开的单文件 HTML,替代 Markdown 作为最终交付物。Markdown 在信息密度、视觉清晰度和可分享性上已跟不上 AI 产物的丰富度,HTML 能同时承载排版、表格、SVG 等。
❌ 错误:<div itemprop="author"><div itemscope itemtype="https://schema.org/Person">张三</div></div> —— Google 会丢弃整个嵌套块,因为 itemprop="author" 没绑定到任何 itemscope。
同理,address 必须这样写:<div itemprop="address" itemscope itemtype="https://schema.org/PostalAddress">...</div>,漏掉 postalCode 或 addressCountry 会导致 LocalBusiness 地图功能失效。
同一页面多个同类实体,每个都要独立声明作用域
别试图用一个 itemscope 容器包住三篇博客、五个产品或十个评论——这会被解析成一个对象的多个字段,而不是多个独立实体。
必须为每个实体单独写一套:itemscope + itemtype + 内部 itemprop。
例如三篇食谱:
<article itemscope itemtype="https://schema.org/Recipe"><h2 itemprop="name">番茄炒蛋</h2> </article><article itemscope itemtype="https://schema.org/Recipe"><h2 itemprop="name">麻婆豆腐</h2> </article><article itemscope itemtype="https://schema.org/Recipe"><h2 itemprop="name">清炒时蔬</h2> </article>
用 JS 动态批量添加 itemscope 也不行——结构化数据要求静态可解析,DOM 必须在初始 HTML 中就完整呈现。
最常被忽略的一点:验证不是看 HTML 是否“没报错”,而是用 Google Rich Results Test 看它是否真识别出了你想要的实体和字段。URL 多一个空格、itemtype 少个大写、itemprop 放错层级,都可能导致整块失效,且没有任何提示。










