itemprop必须与itemscope和itemtype共同使用才生效,单独使用无效;其值取自textcontent而非渲染效果或属性值;url、日期、数值等类型需按schema.org规范用特定html结构声明。

itemprop必须和itemscope+itemtype一起用才生效
单独写 itemprop="name" 没有任何效果。搜索引擎解析器不认孤立的 itemprop,它只在明确的作用域内工作:外层容器得有 itemscope 和完整的 itemtype(比如 https://schema.org/Product),itemprop 才是这个作用域里的“字段声明”。
常见错误包括:
- 只给
<p></p>加itemprop="name",但父级没itemscope itemtype -
itemscope和itemtype分开写在不同层级,比如外层<div itemscope>、内层 <code><div itemtype="https://schema.org/Person"> —— 这种拆分直接导致整个结构被忽略 <li>把 <code>itemtype写成Product或http://schema.org/Product—— 必须是大小写敏感、协议完整、无多余斜杠的 HTTPS URL -
<h1 itemprop="name">iPhone <sup>®</sup> </h1>提取出的值是"iPhone ®",含 HTML 实体和符号,Google 可能拒收 -
<img itemprop="image" src="logo.jpg">不会被识别为图片 URL ——src不参与提取,必须用<link itemprop="image" href="logo.jpg">或<meta itemprop="image" content="logo.jpg"> - 价格显示为
"¥ 2999"(含不间断空格)会被当作文本污染,建议服务端清洗:textContent.replace(/\s+/g, ' ').trim() -
URL 类(如
url、image、logo):必须用href(<link>)或content(<meta>),<img src>本身无效 -
日期类(如
datePublished):用<time itemprop="datePublished" datetime="2026-08-13">今天</time>,解析器优先读datetime属性 -
数值类(如
price、ratingValue):必须显式提供content,例如<div itemprop="price" content="2999">¥2999</div> -
嵌套对象(如
author是 Person):必须紧贴绑定,<div itemprop="author" itemscope itemtype="https://schema.org/Person">张三</div>—— 中间不能隔一层<div> <h3>验证时最容易被忽略的三个点</h3> <p>跑完 Google Rich Results Test 工具还报错?大概率卡在这几个隐形坑上:</p> <ul> <li> <code><meta itemprop="xxx">没加content属性 → 整个标签被跳过,<meta name="description">那种写法对微数据完全无效 - 多图场景下只写一个
itemprop="image"→ Google 通常只取第一个,真要表达图集,得用ItemList结构,而不是堆多个<meta> - 组织类标记(如
Organization)里,logo和contactPoint不在同一个itemscope下 → 搜索引擎无法关联,结果是只认出 logo,却不知道这是谁的
itemprop值怎么取?不是你看到的,而是DOM里实际的textContent
itemprop 默认提取的是元素的 textContent,不是渲染后肉眼所见,也不是 src、href 或 alt 的值。这意味着:
不同类型属性要用不同写法
schema.org 对属性类型有硬性约定,不能靠“看起来像”就乱套。机器读取依赖特定 HTML 结构或属性:
真正起作用的从来不是单个 itemprop,而是它所处的完整三元组:外层 itemscope 定义作用域,itemtype 定义契约,itemprop 才是履约动作。漏掉任一环,机器就读不懂你在说什么。











