itemtype必须使用schema.org的完整https url,如https://schema.org/restaurant;须与itemscope、itemprop配合使用;地址等复杂属性需嵌套对应类型;务必通过结构化数据测试工具验证实际解析效果。

itemtype 必须用 Schema.org 的完整 URL
HTML 中的 itemtype 不是随便写个单词或缩写,它必须指向 Schema.org 官方定义的结构化数据类型 URI。描述本地商家,唯一合规的值是 https://www.php.cn/link/ae5e0f7b9471c114f931a344af8483a9(注意协议是 https,不是 http,且末尾无斜杠)。浏览器和搜索引擎(如 Google)会严格校验这个 URL —— 写成 schema.org/LocalBusiness、http://schema.org/LocalBusiness 或 LocalBusiness 都会导致结构化数据解析失败。
LocalBusiness 是基类,多数场景该用更具体的子类型
LocalBusiness 本身语义较宽泛,Google 富媒体搜索结果(如地图卡片、营业时间、电话直拨)通常要求更精确的类型。实际部署时应优先选子类:
- 餐厅用
https://schema.org/Restaurant - 理发店用
https://schema.org/BeautySalon - 维修服务用
https://schema.org/RepairService - 医院用
https://schema.org/Hospital
选错类型可能导致关键字段(如 priceRange、menu)被忽略,或富媒体展示不触发。可用 Schema.org 文档 查子类继承关系,避免硬套 LocalBusiness。
itemtype 必须配合 itemscope 和 itemprop 才生效
itemtype 单独存在毫无意义。它必须嵌套在带 itemscope 的容器内,并通过 itemprop 标注具体属性。常见错误包括:
- 只加
itemtype,漏掉itemscope—— 结构化数据完全不被识别 - 把
itemprop放在itemscope外层 —— 属性归属丢失 - 用
itemprop="address"但没嵌套PostalAddress类型 —— 地址字段解析为空
正确写法示例:
<div itemscope itemtype="https://schema.org/Restaurant">
<h1 itemprop="name">老张面馆</h1>
<div itemprop="address" itemscope itemtype="https://schema.org/PostalAddress">
<span itemprop="streetAddress">建国路88号</span>
<span itemprop="addressLocality">北京市朝阳区</span>
</div>
<span itemprop="telephone">010-12345678</span>
</div>
验证时别只看网页源码,要查结构化数据测试工具
即使 HTML 里 itemtype 拼写全对、嵌套完整,也可能因 CSS 隐藏、JS 动态渲染、或 meta 标签冲突导致搜索引擎无法提取。上线后必须用 Google 的 Rich Results Test 或 Schema Markup Validator 抓取真实解析结果。特别注意:
- 工具报 “Missing field ‘sameAs’” 不影响基础展示,但补上社交媒体链接能提升可信度
- “Warning: address not found” 往往是因为
address没用PostalAddress包裹,而非地址文本缺失 - 电话号码格式(如带括号、短横线)不影响解析,但建议统一为
+86-10-1234-5678这类清晰写法
本地商家的结构化数据,真正难的不是写对 itemtype,而是让搜索引擎信你写的地址、电话、营业时间都是真实可验证的 —— 这部分依赖页面可见文本与标记的一致性,而非标签本身。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











