itemtype 应使用 https://schema.org/LocalBusiness 或其具体子类型(如 Restaurant、CafeOrCoffeeShop),而非 OpeningHoursSpecification;后者须作为 openingHoursSpecification 属性值嵌套在商家实体内,并包含 dayOfWeek(ISO 格式)、opens、closes 字段。

itemtype 应该用 Schema.org 的哪个类型
标记商家营业时间必须用 https://schema.org/LocalBusiness 或其子类型(如 https://schema.org/Restaurant、https://schema.org/Store),不能直接用 https://schema.org/OpeningHoursSpecification 作为 itemtype——后者是属性值类型,不是可独立标记的实体。
常见错误是把 itemtype 写成 https://schema.org/OpeningHoursSpecification,导致结构化数据不被搜索引擎识别为商家信息。
-
itemtype必须指向一个“事物”(Thing),比如商家、产品、人;而营业时间只是它的属性之一 - 如果商家有多个分店,每个分店需单独用
itemscope+itemtype包裹 - 优先选语义更具体的子类型,例如咖啡馆用
https://schema.org/CafeOrCoffeeShop,比泛用LocalBusiness更利于富媒体展示
如何嵌套 OpeningHoursSpecification 正确表示每天营业时段
OpeningHoursSpecification 不是顶级实体,必须作为 openingHoursSpecification 属性的值嵌套在商家 itemscope 内。它本身需要自己的 itemscope 和 itemtype,且必须包含 dayOfWeek、opens、closes 三个必要字段。
注意:Google 当前只稳定支持 ISO 8601 格式的 dayOfWeek(如 "https://schema.org/Monday"),不推荐用字符串 "Monday" 或数字 1。
将调研报告、方案对比、数据分析、需求梳理、会议纪要、设计说明、代码评审、学习笔记等任务产物输出为可在浏览器直接打开的单文件 HTML,替代 Markdown 作为最终交付物。Markdown 在信息密度、视觉清晰度和可分享性上已跟不上 AI 产物的丰富度,HTML 能同时承载排版、表格、SVG 等。
立即学习“前端免费学习笔记(深入)”;
<div itemscope itemtype="https://schema.org/Restaurant">
<span itemprop="name">老张面馆</span>
<div itemprop="openingHoursSpecification" itemscope itemtype="https://schema.org/OpeningHoursSpecification">
<link itemprop="dayOfWeek" href="https://schema.org/Monday" />
<time itemprop="opens" datetime="11:00">11:00</time>
<time itemprop="closes" datetime="22:00">22:00</time>
</div>
<div itemprop="openingHoursSpecification" itemscope itemtype="https://schema.org/OpeningHoursSpecification">
<link itemprop="dayOfWeek" href="https://schema.org/Tuesday" />
<time itemprop="opens" datetime="11:00">11:00</time>
<time itemprop="closes" datetime="22:00">22:00</time>
</div>
</div>
多时段、休息日、节假日怎么写才不被忽略
单日多个营业段(如早市+晚市)要拆成多个独立的 OpeningHoursSpecification 块;休息日必须显式声明,不能留空;节假日需额外用 validFrom / validThrough 限定日期范围,否则会被当作常规营业时间处理。
- 周二休息?仍要写一个块:
<link itemprop="dayOfWeek" href="https://schema.org/Tuesday" />+<meta itemprop="opens" content="" />不起作用,正确做法是**省略该日的块**,或加<meta itemprop="closed" content="true" />(但 Google 目前不解析closed) - 春节初一到初三歇业:需单独建三个
OpeningHoursSpecification块,每块设validFrom和validThrough,并设opens/closes为空或省略(Google 接受空值表示不营业) - 避免用
openingHours简写属性(如itemprop="openingHours" content="Mo-Su 11:00-22:00"),它无法表达多时段和例外,且已被 Google 明确标注为“legacy”
验证通过但搜索结果不显示营业时间的原因
Google Rich Results Test 或 Schema Markup Validator 显示“有效”,不代表营业时间一定出现在搜索结果中——它还依赖页面内容可信度、商家在 Google Business Profile 中的数据一致性、以及用户地理位置匹配度。
- 页面上必须有与结构化数据一致的可见文本,例如
<p>营业时间:周一至周日 11:00–22:00</p>,否则可能被判定为隐藏内容 - 如果商家已在 Google 地图认领了主页,且主页里填了营业时间,网页上的
OpeningHoursSpecification可能被忽略或仅作校验参考 - 移动端搜索更倾向展示营业时间,桌面端常被折叠;且仅当用户搜索带“营业时间”“几点开门”等明确意图词时才触发
最易被忽略的一点:所有 time[datetime] 必须用 24 小时制、无空格、无 AM/PM,写成 datetime="9:00" 或 datetime="09:00" 都可以,但 datetime="9 AM" 会失效。


















