你家包子铺的关键词排到首页了,但老板说电话静得像凌晨三点的面馆——不是流量没来,是用户根本没拨号。问题大概率出在:搜索引擎知道你卖包子,但不知道你几点揉面、能不能送外卖、WiFi密码是不是“baozi666”。
本地生意的命脉不在搜索排名,而在用户摸出手机那0.5秒的决策瞬间。今天这篇,就带你把“用户想打电话”这个念头,变成网页里几行能被谷歌读懂的代码。
什么是本地商家结构化数据?它为什么比关键词更重要?
结构化数据,就是塞给搜索引擎的一张电子名片。普通网页告诉谷歌:“这儿有家店。”结构化数据说的是:“这是小李包子铺,地址在成都春熙路72号,今天营业到晚上9点,评分4.7,支持微信下单,门口有充电桩。”
没这张名片?谷歌只能靠猜——猜你几点开门,猜你接不接外卖单,猜你是不是真有停车场。猜错一次,用户就点开了隔壁老张的页面。
关键词确实能带来点击,但点击不等于成交。我帮过一家成都火锅店做诊断:他们“春熙路火锅”稳居前三,可实际进店客户反而比第十名还少。一查源码,对方加了LocalBusiness和OpeningHours标记,用户搜“现在还在营业吗”,谷歌直接在结果页顶上标出“营业中”,顺手就拨通了电话。结构化数据不抢排名,但它让排名真正有用。
Schema标记到底怎么写?从LocalBusiness到Review的4个核心类型
Schema.org看着有几千个类,本地商家真用得上的,就这四个。
LocalBusiness是地基。理发店、宠物医院、社区打印店……只要你在实体街边,就得先打上这个标签。它告诉搜索引擎:“我不是博客,不是电商站,我是活生生开门做生意的本地人。”
示例代码:
{
"@context": "https://schema.org",
"@type": "LocalBusiness",
"name": "小李包子铺",
"address": {
"@type": "PostalAddress",
"streetAddress": "春熙路72号",
"addressLocality": "成都",
"addressRegion": "四川",
"postalCode": "610016"
},
"telephone": "+86-28-88889999"
}
OpeningHoursSpecification是用户最常问的那句“现在开门吗”。一位社区健身房老板告诉我,加上这个标记后,周六早上8:30到9:30的来电明显变多了——因为用户搜“附近健身房开门了吗”,结果页直接显示“营业中”,连网页都不用点开。
AggregateRating和Review负责建立第一眼信任。用aggregateRating标出总评分和评论总数,再用Review把真实顾客写的每一条评价单独标记出来。注意:别自己编五星好评。谷歌会核对页面上是否真有这条评论,对不上,整块标记就作废。
GeoCoordinates是手机搜索的隐形推手。用户搜“附近修车”,谷歌优先推坐标准确到门牌号的商家。光写“建设路88号”不够,补上经纬度,相当于给店铺钉了个GPS图钉。
如何在WordPress和Shopify里植入结构化数据?3种无代码方案
不会写代码?完全没问题。本地商家日常用的建站工具,早就有现成解法。
WordPress用户,装「Schema & Structured Data for WP & AMP」插件就行。 安装激活后,在首页或门店页面的编辑框下方,找到“Schema”选项卡,选“Local Business”,填上店名、电话、地址、营业时间——插件自动帮你生成并插入JSON-LD代码。记得勾上“Show schema in search results”,否则等于写了白写。
Shopify商家,用「JSON-LD for SEO」插件。 它对连锁店特别友好。后台新增分店信息时,插件会为每家店自动生成独立的LocalBusiness标记。一位做社区奶茶的品牌朋友反馈,用了之后,各分店页面在“附近奶茶”这类搜索里的露出频率高了不少,因为每家店都成了谷歌眼里“有身份证”的独立个体。
如果连插件也不想装,Google官方的「结构化数据标记助手」够用。 打开工具 → 选“Local Business” → 粘贴你的首页网址 → 用鼠标圈出页面上的店名、电话、地址、营业时间 → 工具生成代码 → 复制粘贴到网站后台的“网站代码”或“主题页脚”里(位置通常叫“Add code to footer”)。不用注册,不用付费,三分钟搞定。
移动端和语音搜索:结构化数据如何让用户“零点击”就行动
现在的人,真的懒得点网页。搜“修水管 现在”,他们要的是“马上能联系上”的确定感。结构化数据,就是把这种确定感,提前打包塞给搜索引擎。
移动端的“零点击”不是玄学。 用户在手机上搜“牙科诊所 9点开门”,谷歌直接从你的OpeningHoursSpecification里抽出信息,在搜索结果顶部显示“上午9:00开始营业”。页面没被点开,但电话已经响了——因为用户看到就信了,信了就拨。
语音搜索更挑食。 人对着手机说“附近评价最高的五金店”,谷歌只看两样:有没有AggregateRating(评分)、有没有GeoCoordinates(精准坐标)。一位成都五金店主加了这两项后,语音带来的咨询量明显提升。语音搜索通常只给一个答案,谷歌必须选那个“数据最全、最可信”的。
Action标记是下一步。 加上PotentialAction,比如标记“拨打电话”或“在线预约”,用户搜的时候,结果页可能直接出现蓝色按钮:“打电话”“预约试驾”。我帮一家修车铺加了CallAction后,一周内通过搜索结果页按钮直接拨号的用户数量大幅增长。关键点只有一个:target字段必须指向真实的电话链接,比如tel:+86-28-88889999。
测试工具和错误排查:3个免费工具让标记不白做
写完代码不验证,等于发了短信没按发送键。
Google Rich Results Test是第一道关。把你的首页URL粘进去,它立刻告诉你:哪些标记被识别了,哪些报错,哪些只是警告。重点关注标红的“Errors”——比如telephone没加+86前缀、openingHours格式写成“9:00-18:00”而不是“Mo-Fr 09:00-18:00”。
Schema.org Validator适合深挖细节。它不只看语法,还盯逻辑。比如你声明了LocalBusiness,但地址没用@type: PostalAddress包裹,它会提示“地址类型缺失”。有位民宿老板用Hotel类型却漏了checkinTime,导致入住时间无法展示,就是靠这个工具揪出来的。
Google Search Console的“增强功能”报告是你的长期哨兵。进入GSC → 左侧菜单点“效果”→ “增强功能”,就能看到哪些页面有结构化数据、哪些被标记为“无效”。建议每周扫一眼。如果某天“无效”数量突然飙升,大概率是网站更新模板时,把旧标记覆盖掉了——就像上次客户换主题,所有结构化数据一夜消失,幸好GSC提前亮了黄灯。
别踩这3个坑:常见错误和规避方法
坑1:数据和页面内容对不上。 页面上只显示2条顾客评论,你却在结构化数据里写“4.8分(32条评论)”。谷歌发现不一致,可能直接忽略整段标记。对策很简单:评分数据,严格跟着页面上真实展示的评论走。评论少于5条?先别用AggregateRating,改用Review一条条标。
坑2:节假日营业时间忘了改。 春节初一你歇业,但代码里还写着“每天营业”。用户兴冲冲跑来,发现卷帘门紧闭——下次他绝不会再信你的搜索结果。对策:用specialOpeningHoursSpecification单独标出特殊日期,比如"2024-02-10": "Closed"。拿不准?宁可删掉那天的营业时间,也别写错。
坑3:插件和手动代码打架。 插件已经生成了一套LocalBusiness,你又在主题文件里手写了一套。谷歌读到两个版本,容易混乱甚至全部失效。对策:打开首页,右键“查看网页源代码”,搜索application/ld+json。如果出现两次,留插件生成的那套,删掉手动加的。插件更稳定,也自带更新机制。
今天就能执行的一个操作:用3分钟为首页添加LocalBusiness标记
打开你店铺的网站首页 → 右键选择“查看网页源代码” → 按 Ctrl+F(Mac用 Cmd+F)搜索 application/ld+json。
如果没找到,说明还没加;如果找到了,检查里面有没有 "@type": "LocalBusiness"。
没有?现在就做:
- 打开 Google结构化数据标记助手
- 选“Local Business” → 粘贴你的首页网址
- 用鼠标依次圈出页面上的店名、地址、电话、营业时间
- 点击“创建HTML” → 复制生成的代码
- 进入你的网站后台(WordPress进“外观→主题编辑器→页脚”,Shopify进“在线商店→主题→编辑代码→theme.liquid底部
</body>前”)→ 粘贴代码 - 保存,再用Rich Results Test验证一次,确认没有红色报错
做完这一步,你的首页就比大多数同行多了一张“能说话的电子名片”。下周打开Google Search Console,去“增强功能”里看看——那串数字的变化,就是用户开始真正看见你的信号。