年初帮一个做连锁餐饮的客户排查问题。他有两个品牌网站,A站和B站,内容量差不多(都在200篇左右),更新时间一致,用的同一套AI生成工作流。奇怪的是,A站在AI搜索结果里的月均引用量是17次,B站是0次。
我逐个排查了域名年龄、外链、内容质量、技术SEO,都没发现明显差异。最后在网页源码里找到了答案:A站的Schema标记里多了6行地理位置代码——GeoCoordinates里的经纬度、GeoShape里的服务半径、还有一个hasMap链接。B站的内容完全一样,但Schema里只有基础的Organization信息,没有地理标签。
这6行代码让搜索引擎明确知道了A站服务的具体地理位置,所以在用户搜索"朝阳区XX餐厅推荐"这类带地理意图的查询时,A站被AI引用,B站被忽略。同一个城市、同样的内容、就差这几行地理标签——搜索引擎对"这个内容属于哪个地理位置"的理解完全不同。
一、地理标签到底是什么,和你在文章里写"北京"有什么区别

很多人觉得地理标签就是"在文章里多写几个地名"——标题带城市名、正文提几遍"北京"、H2里再加个区域。这不叫地理标签,这叫地理关键词。区别在于:地理关键词是给人看的,地理标签是给机器读的。
搜索引擎理解"北京"这个词的时候,是靠上下文推断的——文章里出现了"朝阳区""三里屯""国贸",它大概知道你说的北京是中国的北京。但这个推断过程有误差:万一是北京的培训课程面向全国招生呢?万一你的公司注册在北京但服务全国呢?机器靠自然语言推断地理位置,准确率并不高。
地理标签做的事情不一样:它用机器直接能读的格式告诉搜索引擎——我的经纬度是39.9042,116.4074,我服务的范围是以这个点为中心、半径15公里的圆形区域,我的门店地址是北京市朝阳区XX路XX号。机器不需要"理解",它直接"读取"。当用户问AI"离我最近的川菜馆在哪",AI拿用户的GPS坐标和页面的GeoCoordinates做距离计算,不需要理解"附近""周边"这些模糊概念。
简单说:地理关键词=在正文里提到"我在北京",搜索引擎需要推断。地理标签=在代码里标注"latitude": 39.9042,搜索引擎直接读取。在AI搜索时代,标签的价值远大于关键词,因为AI不是靠猜的,是靠结构化数据做精确匹配的。
二、六种地理标签类型,从基础到高级逐级增加位置信号强度
地理标签不是一个东西,是一整套位置信号的组合。每多一层,搜索引擎对你"在哪、服务谁"的判断就精确一级。
L1到L3是基础配置,大部分本地商家网站做了L1,少数做了L2,做L3的极少。L4到L6是进阶操作,在基础位置上叠加地图引用、图片信号和多层级结构,信号强度逐级叠加。做了L6的页面,在AI搜索结果里的本地相关性得分比只做L1的高出一个数量级。
三、直接贴代码,GeoCoordinates + GeoShape的完整写法
Schema标记用JSON-LD格式写在页面的<script type="application/ld+json">标签里,不影响页面显示,只给搜索引擎读。以下是本地商家最常用的完整写法:
<script type="application/ld+json">{"@context": "https://schema.org","@type": "LocalBusiness","name": "XX川菜馆","url": "https://www.example.com","telephone": "+86-10-12345678",// L1: 文本地址"address": {"@type": "PostalAddress","streetAddress": "朝阳区建国路88号","addressLocality": "北京市","addressRegion": "朝阳区","postalCode": "100022","addressCountry": "CN"},// L2: 精确经纬度"geo": {"@type": "GeoCoordinates","latitude": 39.9087,"longitude": 116.4716},// L4: 地图链接"hasMap": "https://map.baidu.com/place/xxxxx",// L3: 服务区域 — 半径5公里圆形"areaServed": {"@type": "GeoCircle","geoMidpoint": {"@type": "GeoCoordinates","latitude": 39.9087,"longitude": 116.4716},"geoRadius": "5000"}}</script>
几个容易出错的地方:
· 经纬度精度:至少保留小数点后4位。39.90和39.9087差了将近一公里,在密集商圈里这个误差会让你的店被排到相邻商圈去。
· GeoCircle的geoRadius单位是米,不是公里。"5000"代表5公里半径,别写成"5"。
· NAP一致性:Schema里的name、address、telephone必须和网页上肉眼可见的文本完全一致。不一致是Schema标记最常见的报错原因,搜索引擎会直接忽略整个标记。
· 一个页面只能有一个LocalBusiness标记。如果是多门店,每个门店应该有独立页面,而不是在一个页面上堆多个LocalBusiness。
四、没有实体门店怎么办,四种"无门店"场景的地理标签方案
不是所有网站都有实体门店。做本地生活内容的网站、做城市攻略的博客、做同城信息聚合的平台——这些场景没有"门店地址",但同样需要地理标签来告诉搜索引擎内容属于哪个城市。
最典型的错误是:做城市攻略的网站硬套了一个LocalBusiness Schema,填了一个假的地址。Google的Rich Results Test会报错,百度的结构化数据工具也会提示类型不匹配。Schema类型用错了比不用还糟糕——搜索引擎会因为你提供了矛盾的信息而降低信任度。
五、哪些工具能帮你生成和验证地理标签
手写JSON-LD不难,但批量操作几十个城市的子站就费劲了。以下是生成和验证地理标签的常用工具:
Schema生成工具

Merkle Schema Markup Generator:在线可视化生成器,选LocalBusiness类型,填表就自动生成JSON-LD。适合单页面操作,免费。
Schema App:企业级Schema管理平台,支持批量部署和动态模板。一个模板套到几百个城市页面上,自动替换经纬度和地址。付费,适合多站点矩阵。
用AI直接生成:把地址和经纬度给ChatGPT或Claude,让它生成完整的JSON-LD Schema代码。多城市的话写一个Python脚本,读取城市经纬度表,循环生成。效率最高,0成本。
验证工具
Google Rich Results Test:粘贴URL或代码片段,检查Schema是否符合Google标准。会提示具体哪行有问题。免费。
百度结构化数据工具:百度站长平台的Schema验证,对标百度搜索标准。国内站必备。
Schema.org Validator:官方验证器,最严格的标准。上面两个通过了不代表这个能过,但通过了这个基本上面两个都没问题。
经纬度查询工具
百度地图拾取坐标系:在地图上点一下就能拿到GCJ-02坐标。国内用GCJ-02坐标系(火星坐标),不要用WGS-84(GPS原始坐标),两者偏差几百米。不过Schema里标注经纬度时,Google和百度都能处理GCJ-02的偏差,所以用百度地图拿到的坐标直接填就行。
Google Maps坐标拾取:右键任意位置,第一个菜单就是经纬度。海外站点用这个,拿WGS-84坐标。
六、部署后怎么验证生效了,不只是看有没有报错
Schema通过了验证工具不代表真正生效了。验证工具只检查格式对不对,不检查搜索引擎有没有真的用上这些数据。
真正判断地理标签是否生效,看三个信号:
· Google Search Console的"增强功能"报告:如果Schema被Google正确解析,会在增强功能里出现对应的项目类型。看到LocalBusiness项目出现且没有错误,说明地理标签已经进入Google的知识图谱。
· AI搜索的引用测试:在Perplexity、秘塔AI、天工AI里搜索"XX区XX服务推荐",看你的页面是否出现在引用来源里。如果出现且排在本地竞品前面,说明地理标签在起作用。
· 本地搜索排名的变化:部署前后,在百度搜索"城市+服务词"时,排名的变化幅度。一般部署后1-2周内会有可见的排名提升,如果两周后纹丝不动,大概率是Schema有问题或者NAP不一致。
对于多站点矩阵的场景,手动检查每个站的Schema太慢了。UC建站系统的多站看板可以统一监控所有站点的Schema状态和AI引用数据——哪个站的Schema报错了、哪个站的地理标签被AI引用了、哪个站的本地搜索排名在掉,一个后台就能看到。WP底层+独立部署的架构也方便批量管理Schema模板,一个LocalBusiness模板写好之后,城市名、经纬度、电话等字段通过变量自动替换,几十个城市子站一键部署,不用一个一个页面去改。
七、最后收个尾
地理标签这件事的技术门槛其实不高——就是一段JSON-LD代码,复制粘贴改改经纬度就行。但大部分做本地内容的网站就是不做,或者做错了。一个做错了的Schema比不做的危害还大,因为搜索引擎会因为你提供了矛盾信息而降低信任分。
回到开头那个连锁餐饮客户的案例:A站和B站的内容完全一样,就因为多了6行地理标签代码,AI引用量差了17倍。在AI搜索时代,搜索引擎越来越依赖结构化数据做精准匹配,而不是靠自然语言推断。你的内容里有没有地理标签,决定的是搜索引擎"知不知道你在哪"——而这个问题,在用户搜"附近XX"的时候,就是排名和0的区别。
