microdata三件套必须同时出现在同一标签里,itemscope和itemtype须绑定在同一容器元素上(如),缺一不可;仅写其一或分置父子元素均导致整块被google忽略。

microdata 三件套必须同时出现在同一标签里
只写 itemscope 或只加 itemtype 没用,Google 会直接跳过整块。这两个属性必须和容器元素绑定在同一 HTML 标签上,比如 <div itemscope itemtype="https://schema.org/Product">。漏掉任意一个,<code>itemprop 就失去上下文,所有属性值都会被忽略。
常见错误:
– 把 itemscope 和 itemtype 分开写在父子元素上
– 在 上加 itemscope,却把 itemprop 写在深层 <p></p> 里,没嵌套好层级
– 用了旧版地址如 http://data-vocabulary.org/Product,必须是 https://schema.org/Product
itemprop 值必须来自可见文本或标准 meta/time 标签
搜索引擎优先抓取用户能看到的内容。直接写在 HTML 元素里的文本,比如 <h1 itemprop="name">iPhone 15</h1>,会被识别为产品名;但“¥5999”这种价格如果只是普通段落文字,没加 itemprop,就不会被结构化提取。
不可见字段要用专用标签:
– 日期必须用 <time datetime="2026-06-30"></time>,不能写“今天”或“6月30日”
– SKU、内部 ID、评分等用 <meta itemprop="sku" content="A123">
– itemprop 不能跨多个元素拼接内容,只取第一个匹配元素的文本,重复写没用
嵌套 itemscope 必须紧贴 itemprop 容器
当属性本身是个对象(比如 author 是 Person),嵌套的 itemscope 必须作为该 itemprop 的直接子容器。否则 Google 会丢弃整个嵌套块。
正确写法:
– <div itemprop="author" itemscope itemtype="https://schema.org/Person">张三</div>
错误写法:
– <div itemprop="author"><div itemscope itemtype="..."></div></div> —— 这样 itemprop="author" 没绑定到任何 itemscope,解析失败
– 地址类嵌套常漏掉 postalCode 或 addressCountry,导致 LocalBusiness 标记不完整,地图展示失败
页面主体决定 itemtype,不是按模块硬套
一个企业介绍页混着产品列表,主容器仍该用 Organization,而不是把整个页面塞进 Product。Google Rich Results Test 会报 “itemtype 不匹配主体内容”。判断标准只有一个:用户打开这个页面,最想了解的是什么?是公司、人、活动,还是某件商品?
选错类型后果明显:
– Organization 缺 address 或 telephone,富摘要不触发
– Product 没提供 offers(含 price 和 priceCurrency),价格不会出现在搜索结果中
– 查字段要求别靠猜,直接去 https://schema.org/XXX 页面看右侧 “Properties” 列表里标 * 的必填项
微数据真正生效的前提,是结构闭合严密、层级紧贴、字段语义真实——不是堆得越多越好,而是每一条 itemprop 都得有明确归属,且对应页面上用户实际看到或机器必须知道的信息。











