应使用 script type="application/ld+json" 嵌入 JSON-LD 格式 LocalBusiness 结构化数据,因其解析稳定、维护简单、不干扰 DOM,且 Google 官方明确推荐;需置于 head 或 body 顶部,包含 @context 和 @type,地址用结构化 address 对象及数字型 geo 坐标,营业时间用 openingHoursSpecification 数组规范书写。

LocalBusiness 结构化数据该用哪种 HTML 标记方式
直接用 script type="application/ld+json" 嵌入 JSON-LD,而不是 microdata 或 RDFa。Google 官方明确推荐 JSON-LD,解析稳定、维护简单、不干扰 DOM 渲染。
常见错误是硬套 itemscope itemtype="http://schema.org/LocalBusiness" 在 <div> 上——这容易因页面结构变动导致字段丢失,且 Google 对 microdata 的支持近年持续弱化。
- JSON-LD 放在
<head>或<body>顶部即可,无需和页面元素一一绑定 - 必须包含
@context和@type,否则 Google Search Console 会报“Missing field 'type'” - 所有字符串值(如
name、address)需为纯文本,不能含 HTML 标签或换行符
地理坐标怎么填才被地图服务识别
用 geo 字段提供 latitude 和 longitude,单位必须是十进制度数(不是度分秒),且保留至少 5 位小数。只写 address 不写 geo,Google 可能无法准确定位,尤其对同名街道或新开发区。
错误示例:"geo": {"latitude": "31.2304", "longitude": "121.4737"} —— 字符串类型会被忽略;正确应为数字。
立即学习“前端免费学习笔记(深入)”;
-
address必须是完整结构对象,含streetAddress、addressLocality、addressRegion、postalCode、addressCountry -
addressCountry用 ISO 3166-1 alpha-2 码(如"CN"),不用中文或全称 - 若企业无固定物理地址(如上门服务类),仍需提供真实营业点坐标,否则标记可能被判定为“无效位置”
营业时间怎么写才能兼容 Google 和 Bing
用 openingHoursSpecification 数组,每个对象描述一天或连续多天的营业时段。不要用已废弃的 openingHours 字符串数组(如 "Mo-Su 09:00-18:00"),Bing 已不支持,Google 仅作降级 fallback。
典型坑:把 closes 写成 "24:00" —— 这是非法时间格式,必须用 "00:00" 表示次日零点闭店。
- 每天单独列一条,即使多天相同也别合并(
"Mo,We,Fri"不被识别) -
dayOfWeek必须用全大写英文缩写:"Monday"、"Tuesday"… 不接受中文、小写或数字 - 若午休暂停营业,需拆成两条:
{"dayOfWeek":"Monday","opens":"09:00","closes":"12:00"}和{"dayOfWeek":"Monday","opens":"13:30","closes":"18:00"}
验证时常见报错和绕过方法
Google Rich Results Test 报 "priceRange is missing" 或 "sameAs is missing"?这些字段非强制,但部分行业(如餐厅、酒店)会被加强校验。不填不会导致标记失效,但可能降低富媒体展示概率。
真正致命的是 "@type" value is not valid —— 多因复制粘贴时混入不可见 Unicode 字符(如零宽空格),或引号用了中文全角符号。
- 用 VS Code 打开 JSON-LD,开启“显示空白字符”,检查所有引号和冒号是否为 ASCII 符号
- 地址中避免使用
"&"实体,直接写"&"(JSON-LD 中允许) - 如果企业有多个分店,每个分店必须独立一个
script块,共用同一块会导致url字段冲突
最易被忽略的是 url 字段必须指向该门店专属落地页,而非首页或品牌页。哪怕只是 /store/shanghai 这样的路径,也比填 https://example.com/ 强得多。



















