成都一家本地火锅品牌”蜀味轩”(3家分店,年营收2000万)的运营总监陈浩发现一个现象:当用户在ChatGPT问”成都最好吃的火锅推荐”时,AI推荐了一些知名的连锁品牌和网红店,但”蜀味轩”这家在本地口碑不错的老店却完全不在推荐之列。
陈浩花了两周时间研究AI搜索的地理位置引用机制,发现了一个核心问题:AI搜索在推荐本地商家时,依赖于训练数据中的”地理位置信息密度”。换句话说,AI不是根据”谁好吃”来推荐,而是根据”谁在地理位置相关的数据中被提及得更多”来推荐。
陈浩开始了一项针对性的”位置GEO优化”——让”蜀味轩”在地理位置维度上成为AI搜索中的”高密度信息节点”。
AI搜索引擎处理”本地推荐”类问题时,与传统搜索完全不同。传统搜索依赖”NLP+地址匹配”——页面中有”成都”关键词就认为是成都相关内容。但AI搜索会构建”位置实体”的知识图谱,验证企业的实际地理位置与内容的真实关联。
很多本地企业网站没有部署LocalBusiness Schema,导致AI搜索引擎无法准确识别企业的位置信息——包括地址、营业时间、服务范围等。AI在需要本地推荐时,无法将这些企业纳入”位置候选池”。
“蜀味轩”的位置信息分散在大众点评、美团、百度地图、高德地图等平台,但这些信息之间没有互为印证的关系。AI搜索引擎在验证位置信息时,更倾向于引用那些”在多个平台有统一位置描述”的企业。
陈浩的方案围绕三个核心:位置结构化、本地内容覆盖、位置信息交叉验证。
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Restaurant",
"name": "蜀味轩成都火锅(春熙路店)",
"description": "主营成都老火锅,传承三代手艺,麻辣鲜香",
"url": "https://www.shuweixuan.com",
"telephone": "+86-28-XXXX-XXXX",
"openingHours": ["Mo-Su 11:00-22:00"],
"servesCuisine": "成都火锅",
"priceRange": "¥80-150",
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.5",
"bestRating": "5",
"ratingCount": "2800"
},
"address": {
"@type": "PostalAddress",
"streetAddress": "春熙路XXX号",
"addressLocality": "成都",
"addressRegion": "四川",
"postalCode": "610000",
"addressCountry": "CN"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 30.6566,
"longitude": 104.0833
},
"areaServed": [
{"@type": "City", "name": "成都"},
{"@type": "AdministrativeArea", "name": "锦江区"}
],
"hasMap": "https://maps.apple.com/?q=蜀味轩春熙路"
}
</script>
用Python脚本为每个分店生成独立的LocalBusiness Schema:
def generate_local_business_schema(store_info):
"""生成本地企业Schema"""
schema = {
"@context": "https://schema.org",
"@type": "Restaurant",
"name": store_info["name"],
"description": store_info["description"],
"url": store_info["url"],
"telephone": store_info["phone"],
"openingHours": store_info["hours"],
"servesCuisine": store_info["cuisine"],
"address": {
"@type": "PostalAddress",
"streetAddress": store_info["street"],
"addressLocality": store_info["city"],
"addressRegion": store_info["region"],
"postalCode": store_info["postal_code"],
"addressCountry": store_info["country"]
},
"geo": {
"@type": "GeoCoordinates",
"latitude": store_info["lat"],
"longitude": store_info["lng"]
}
}
return json.dumps(schema, ensure_ascii=False, indent=2)
AI搜索引擎对地址的描述方式很敏感。”春熙路路口那个火锅店”和”锦江区春熙路XXX号”在AI看来可能是两个位置实体。统一各平台的地址描述格式:
标准地址格式: 四川省成都市锦江区春熙路XXX号(蜀味轩成都火锅)
在以下平台必须使用完全一致的地址描述:
- 官网
- 大众点评
- 美团
- 百度地图
- 高德地图
- 小红书商家页面
- 抖音商家页面
围绕各分店位置,创造有”地理深度”的本地内容:
local_content_plan = [
{
"title": "春熙路逛吃指南:本地人推荐的10家必吃店(含蜀味轩)",
"geo_keywords": ["春熙路", "锦江区", "成都市中心"],
"content_type": "本地攻略"
},
{
"title": "成都火锅地图:锦江区3家三代传承的老火锅店",
"geo_keywords": ["锦江区", "成都老火锅", "三代传承"],
"content_type": "本地文化"
},
{
"title": "蜀味轩春熙路店探店:为什么成都人愿意排队2小时",
"geo_keywords": ["春熙路", "蜀味轩", "成都火锅探店"],
"content_type": "探店体验"
},
{
"title": "从春熙路到宽窄巷子:成都美食一日游路线",
"geo_keywords": ["春熙路", "宽窄巷子", "成都美食"],
"content_type": "旅游攻略"
}
]
每篇本地内容必须包含:
– 具体的地址和交通指引
– 附近的地标和景点关联
– 本地人的真实评价和推荐理由
除了LocalBusiness Schema,在本地内容中也添加位置信息标记:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "春熙路逛吃指南:本地人推荐的10家必吃店",
"contentLocation": {
"@type": "Place",
"name": "春熙路",
"address": {
"@type": "PostalAddress",
"addressLocality": "成都",
"addressRegion": "四川"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 30.6566,
"longitude": 104.0833
}
},
"mentions": [
{
"@type": "Restaurant",
"name": "蜀味轩成都火锅",
"url": "https://www.shuweixuan.com"
}
]
}
</script>
用Python脚本验证各平台的位置信息一致性:
class LocationConsistencyChecker:
"""位置信息一致性检查器"""
def __init__(self, standard_address):
self.standard = standard_address
def check_platform_consistency(self):
"""检查各平台地址的一致性"""
platforms = {
"大众点评": self._check_dianping(),
"美团": self._check_meituan(),
"百度地图": self._check_baidu_map(),
"高德地图": self._check_gaode_map()
}
inconsistencies = []
for platform, address in platforms.items():
if self._similarity(address, self.standard) < 0.8:
inconsistencies.append({
"platform": platform,
"current": address,
"expected": self.standard
})
return inconsistencies
def _similarity(self, addr1, addr2):
"""计算两个地址的相似度"""
from difflib import SequenceMatcher
return SequenceMatcher(None, addr1, addr2).ratio()
追踪品牌在不同AI搜索平台的位置被推荐情况:
def check_local_mention(platform, city, category):
"""检查品牌在指定城市和品类的AI推荐中是否被提及"""
prompts = [
f"{city}最好吃的{category}推荐",
f"{city}当地人推荐的{category}",
f"在{city}的{category}哪家好吃"
]
results = []
for prompt in prompts:
response = openai.chat.completions.create(
model="gpt-4",
messages=[{"role": "user", "content": prompt}]
)
content = response.choices[0].message.content
is_mentioned = "蜀味轩" in content
results.append({
"prompt": prompt,
"mentioned": is_mentioned,
"context": content[:300] if is_mentioned else ""
})
return results
“蜀味轩”执行位置GEO优化8周后的数据:
“成都有家很好吃的火锅”——这种描述在AI搜索中毫无价值。位置信息必须精确到街道和门牌号,AI才能将其与”成都火锅”这个位置查询关联起来。
AI搜索在推荐本地商家时,会参考”当前”的营业状态。如果营业时间不准确,AI可能推荐一个已打烊的店,损害用户体验,降低后续引用权重。
如果有3家分店,应该为每家分店独立部署LocalBusiness Schema,而不是用一个Schema描述3个位置。AI需要知道每家分店的独立位置信息。
如果竞争对手在知乎写了一篇”春熙路美食指南”被AI频繁引用,你的位置内容被引用的机会就会减少。不仅要优化自己的位置内容,还要分析竞争对手的位置内容策略。
店铺地址变更、营业时间调整、新增分店等情况发生后,需要及时更新所有平台的位置信息。延迟更新会导致AI搜索中的位置信息错误。
位置GEO是本地企业在AI搜索时代的”新地图”。当AI在回答”附近有什么好吃的””哪个城市最好玩”时,你的位置信息密度决定了你是否能被AI”标注”在推荐列表中。
位置GEO优化的核心:
1. LocalBusiness Schema:让AI准确识别企业位置
2. 本地内容覆盖:围绕位置创造有地理深度的内容
3. 位置信息一致性:确保所有平台地址统一
4. 交叉验证监测:追踪品牌在AI本地推荐中的表现
立即行动:
1. 为每家分店部署LocalBusiness Schema
2. 统一所有平台的地址描述
3. 创作3-5篇围绕门店位置的本地内容
4. 每周检查AI搜索中的本地推荐情况
当AI成为用户的”本地生活指南”时,你的位置信息密度决定了你是否能出现在这份指南中。
需要位置GEO优化工具?我们提供LocalBusiness Schema生成器和多平台地址一致性检查工具!