事情本身不复杂,线索都在日志里。门店页的营业时间在后台是「周一至周五 09:00-18:00」这样的中文字段,JSON-LD 里被整段塞进了 openingHours。富媒体报告提示格式不符,本地商家信息在搜索结果里一直不展示营业状态,地图卡片也拿不到时间。
第一反应是「节假日特殊营业时间混在常规字段里 应该放到特殊日期属性」,验证下来不成立。
原因不止一个,得分开看。openingHours 只接受规范的星期缩写加 24 小时制时段。另一种情况是营业时间跨零点没有拆成两段 结束时间小于开始时间被拒。
还有一种情况,时区没有声明 蜘蛛按 UTC 解析导致时段整体偏移。
取一段线上输出的营业时间
curl -s https://www.example.com/store/123 | grep -o '"openingHours"[^]]*]'
再往下把中文时段拆成规范写法
"openingHoursSpecification": [{"@type": "OpeningHoursSpecification", "dayOfWeek": ["Monday","Tuesday"], "opens": "09:00", "closes": "18:00"}]
跨零点时段拆成两段分别声明
"opens": "22:00", "closes": "02:00"
补上时区并复验
"timeZone": "Asia/Shanghai"
改完先别撤,确认这几项。改成规范时段后报告里的格式错误清零,本地商家卡片开始展示营业中状态,地图入口的点击也有明显回升。
营业时间看着简单,但格式校验很严,中文文案和跨零点时段是最容易踩的两个坑。改动前把原配置备份一份,出问题能马上回滚,这比任何技巧都实用。
