itemtype 应写在包裹整个商品信息的容器标签(如 <div>、<article> 或 <li>)上,且必须与 itemscope 成对出现;不可用于 <img>、<h3> 等内层标签。

itemtype 应该写在哪个 HTML 标签上
itemtype 是 Microdata 规范里的属性,必须和 itemscope 成对出现,且只能加在包裹整个商品信息的容器元素上——通常是 <div>、<article> 或 <li>。不能写在 <img>、<h3> 或 <p> 这类内层标签上,否则解析器会忽略。
常见错误是把 itemtype 塞进列表父容器(比如 <ul itemscope itemtype="https://schema.org/ItemList">),但实际每个商品项才需要独立的 itemscope 和 itemtype。正确做法是让每个 <li> 或 <article> 自己声明:
<li itemscope itemtype="https://www.php.cn/link/5ce1696154c224dd56c13b37e0f2c618"> <h3 itemprop="name">无线降噪耳机</h3> <span itemprop="price" content="899.00">¥899</span> </li>
该用 https://www.php.cn/link/5ce1696154c224dd56c13b37e0f2c618 还是其他类型
绝大多数电商商品应直接使用 https://www.php.cn/link/5ce1696154c224dd56c13b37e0f2c618。只有特殊场景才换类型:
- 卖的是书?可用
https://schema.org/Book(它继承自Product,兼容性更好) - 卖的是课程?用
https://schema.org/Course - 卖的是本地服务(如美甲)?用
https://schema.org/Service
不要用已废弃的旧 URL,例如 http://schema.org/Product(HTTP 协议)或 http://data-vocabulary.org/Product(已被 Google 宣布停用)。Google Structured Data Testing Tool 会直接报错。
立即学习“前端免费学习笔记(深入)”;
itemprop 属性怎么对应到 itemtype 的字段
itemtype 定义了“这是什么”,而 itemprop 必须是该类型在 schema.org 文档中明确列出的属性。比如 Product 支持 name、image、offers,但不支持随意写 itemprop="skuCode" —— 这会导致结构化数据无效。
使用 PptxGenJS 和 Python 解析,将结构化的 HTML/CSS 幻灯片内容转换为原生、可编辑的 PowerPoint(.pptx)演示文稿。
实操建议:
- 查官方文档:https://www.php.cn/link/5ce1696154c224dd56c13b37e0f2c618,只用「Properties」栏列出的属性名
-
offers是个复杂属性,需嵌套另一个itemscope:<div itemprop="offers" itemscope itemtype="https://schema.org/Offer"> - 价格必须用
content属性提供机器可读数值:<meta itemprop="price" content="299.99">,而非仅靠文本“¥299”
多个商品时要不要统一用同一个 itemscope
不要。每个商品必须有自己独立的 itemscope + itemtype。共用一个 scope 会让所有 itemprop 都归属到同一个实体,导致价格、名称等属性被错误合并。
典型翻车现场:
<ul itemscope itemtype="https://www.php.cn/link/5ce1696154c224dd56c13b37e0f2c618"> <li><h3 itemprop="name">耳机</h3></li> <li><h3 itemprop="name">充电宝</h3></li> </ul>
这段代码会让结构化数据解析器认为“耳机”和“充电宝”是同一个商品的两个名字。正确方式是每个 <li> 单独带 itemscope。
另外,如果页面同时有商品列表和单个商品详情,二者 itemtype 可以不同,但别混用同一组属性名——比如列表里用 itemprop="name",详情页却用 itemprop="productName",后者不会被识别为名称。


















