itemtype仅声明结构化数据类型,不描述商品规格;规格须用itemprop配合standard schema属性(如additionalproperty、color)表达,且值必须为meta content或纯文本,不可依赖可见dom或js渲染。

itemtype 属性本身不描述商品规格,只声明结构化数据类型
itemtype 的作用是告诉搜索引擎或解析器:“这段 HTML 里的内容,符合某个公开 Schema 定义的实体类型”。它不承载具体规格值(比如“颜色:红色”“内存:16GB”),那些得靠 itemprop 配合子元素或 content 属性来表达。常见错误是把 itemtype 当成万能标注框,往里塞自定义字段——这不会被识别,反而破坏语义一致性。
正确做法是先选对 Schema 类型,再用标准属性名描述规格:
- 商品页首选
https://schema.org/Product - 若含明确型号/批次信息,可嵌套
https://schema.org/OfferCatalog或用model、sku等已有itemprop - 避免自行发明
itemtypeURI(如http://myshop.com/specs),主流爬虫完全忽略
商品规格必须用 itemprop + 标准 Schema 属性名表达
Schema.org 明确定义了多个适用于规格的属性,直接复用即可,无需扩展:
-
color:支持字符串("Red")或Color类型嵌套(含rgb值) -
memoryRequirements、processorRequirements:专用于软件/硬件兼容性说明 -
additionalProperty:最常用——每个规格项用一个PropertyValue对象表示
示例(关键部分):
文章转信息图。将文章/笔记转化为手机可读的 HTML 信息图,自动匹配视觉风格。触发场景:文章转图、笔记转图、信息图、转小红书图、做张图、可视化这篇文章、文生图。
<div itemscope itemtype="https://schema.org/Product">
<span itemprop="name">MacBook Pro</span>
<div itemprop="additionalProperty" itemscope itemtype="https://schema.org/PropertyValue">
<meta itemprop="name" content="Processor">
<meta itemprop="value" content="Apple M3 Pro">
</div>
<div itemprop="additionalProperty" itemscope itemtype="https://schema.org/PropertyValue">
<meta itemprop="name" content="Storage">
<meta itemprop="value" content="512 GB SSD">
</div>
</div>
注意:additionalProperty 必须用 meta 或隐藏元素提供机器可读值,不能仅靠可见文本——否则 Google Rich Results 测试工具会报 “Missing field ‘value’” 错误。
常见坑:visible text 和 itemprop 冲突导致规格丢失
很多人把规格写成用户可见的 DOM 结构,同时又想用 itemprop 提取,结果因 HTML 结构不匹配失败:
- 错误写法:
<span itemprop="color">Red</span>—— 表面看没问题,但若页面实际显示为 “颜色:Red”,itemprop只抓到 “Red”,丢失上下文;更糟的是,若该span被 CSS 隐藏,Google 会直接忽略整个属性 - 正确策略:用
meta元素提供干净值,可见文本单独保留语义完整(如 “颜色:Red”) - 多值规格(如“支持 2.4GHz / 5GHz 频段”)不要塞进单个
value,应拆成两个PropertyValue,或用https://schema.org/QuantitativeValue描述范围
验证时重点检查 itemprop 值是否被实际提取
Google Rich Results Test 工具只显示最终解析出的 JSON-LD 等效结构,itemtype 和 itemprop 的 HTML 写法只是中间步骤。容易被忽略的关键点:
- 所有
itemprop值必须是纯文本、meta的content,或子itemscope的name/value字段——不能是img的alt或a的href -
additionalProperty的每个实例必须有且仅有 1 个name和 1 个value,多于或少于都会被丢弃 - 如果规格来自 JavaScript 动态渲染,需确认 Googlebot 能执行 JS 并看到最终 DOM —— 否则
itemprop根本不存在于服务端返回的 HTML 中
真正卡住人的往往不是 itemtype 选错,而是 itemprop 的值没进到最终结构化数据里。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










