itemprop 必须嵌套在 itemscope + itemtype 容器内才有效,单独使用无效;需严格遵循三元组规则,配合语义标签(如 <meta>、<time>、<link>)及完整 HTTPS URL,确保结构化数据被正确解析。

itemprop 必须绑定在 itemscope + itemtype 容器内才被识别
单独写 itemprop="name" 没有任何效果。Google 和其他结构化数据解析器只认“三元组”:一个明确的实体范围(itemscope)、该实体的类型定义(itemtype),以及该范围内的属性声明(itemprop)。
常见错误包括:
- 把
itemprop直接加在没套itemscope的<p>或<div>上 -
itemscope和itemtype分开写在父子标签里,比如外层<div itemscope><div itemtype="https://schema.org/Article">... - 用简写或错误协议,如
itemtype="Person"或http://schema.org/Article(必须是 HTTPS 完整 URL)
✅ 正确示例:
<div itemscope itemtype="https://schema.org/Article"><br> <h1 itemprop="headline">如何调试 CSS Grid</h1><br></div>
itemprop 值必须来自可见文本或 /
搜索引擎优先提取用户实际能看到的内容,而不是 DOM 结构里的任意值。这意味着:
立即学习“前端免费学习笔记(深入)”;
将调研报告、方案对比、数据分析、需求梳理、会议纪要、设计说明、代码评审、学习笔记等任务产物输出为可在浏览器直接打开的单文件 HTML,替代 Markdown 作为最终交付物。Markdown 在信息密度、视觉清晰度和可分享性上已跟不上 AI 产物的丰富度,HTML 能同时承载排版、表格、SVG 等。
-
itemprop写在<div>或<h1>上时,值取其textContent—— 不能含子标签,也不能靠 JS 拼接 - 想标价格、SKU、日期等机器可读但用户不需看到的值,必须用
<meta itemprop="price" content="299">或<time itemprop="datePublished" datetime="2026-08-10">昨天</time> -
display: none、visibility: hidden或aria-hidden="true"里的文本,即使带itemprop,也大概率被忽略
⚠️ 注意:<img itemprop="image" src="logo.jpg"> 是无效的 —— src 不会被提取;必须改用 <link itemprop="image" href="logo.jpg"> 或 <meta itemprop="image" content="logo.jpg">。
URL、日期、数值类属性必须用对应语义标签或属性指定
不同类型的属性,itemprop 的值提取规则完全不同:
- URL 类(
url、image、sameAs):必须用href(<a>、<link>)或content(<meta>),不能依赖src或文本内容 - 日期类(
datePublished、startDate):必须提供标准 ISO 格式datetime属性,<time>标签是唯一推荐方式 - 数值类(
price、ratingValue):必须用content显式声明机器可读值,例如<div itemprop="price" content="49.99">¥49.99</div> - 多值属性(
keywords、author):每个值独立成元素,不能逗号分隔写在一个标签里
❌ 错误示例:<span itemprop="price">¥49.99</span> → Google 提取到的是 "¥49.99" 字符串,不是数值,无法参与富摘要价格展示。
嵌套对象必须用紧贴的 itemscope,不能跨层或靠文本推断
当某个 itemprop 指向另一个实体(比如 author 是 Person),它不能只是文字描述,而必须是一个独立、紧贴的 itemscope 容器:
- 不允许:
<div itemprop="author">张三,前端工程师</div>—— 这只会被当作文本,不会生成 Person 对象 - 必须写成:
<div itemprop="author" itemscope itemtype="https://schema.org/Person"><span itemprop="name">张三</span><span itemprop="jobTitle">前端工程师</span></div> -
itemscope必须直接出现在承载itemprop的元素上,不能隔一层父容器 - 嵌套层级越深,越容易因 DOM 结构松散导致解析失败 —— 建议扁平化组织,避免三层以上嵌套
真正决定结构化数据是否生效的,从来不是某一行 itemprop 写得有多漂亮,而是整个微数据块能否被解析器还原成 schema.org 所定义的合法对象图。漏掉一个 itemscope,或错拼一个属性名,整块数据就归零。


















