当年做SEO先拼盐再哈希,如今AI答地址还是这毛病
这两天翻出一个老客户的站,当年做本地SEO踩过的坑,现在在GEO上又原样演了一遍。
当年我们做多城市站,地址字段是“重庆市渝北区XX路88号”,运营图省事,在数据库里先做了个拼接:省+市+区+详细地址,中间用空格连起来,然后拿这个拼好的字符串去做搜索索引。结果用户搜“渝北区 地址”,搜不到;搜“重庆 渝北 XX路”,还是搜不到。排查了两天才明白,拼盐的时候把“重庆市”和“渝北区”粘成了一个 token,中间没有分隔符,分词器认不出来。
现在的GEO一模一样。上周帮一个做连锁门店的客户看产品页结构化,门店地址在 schema 里填的是 addressLocality 和 streetAddress 两个字段,看着没问题。但AI回答“XX市XX区有没有门店”的时候,答成了“该品牌在XX市有门店”,区一级直接丢了。我让技术把原始 JSON-LD 拉出来,发现 addressLocality 里填的是“重庆市渝北区”,streetAddress 里又填了一遍“渝北区XX路88号”,等于区名重复。AI 做实体对齐的时候,两个字段一撞,反而把区级粒度给合并没了。
我的判断依据很朴素:搜索引擎这十五年,从倒排索引到向量检索,底层换了好几层皮,但“先归一化、再拼、再哈希”这个顺序没变过。当年是拼盐之前先把标点统一成半角、全角空格先 norm 成普通空格,现在是把字段先拆干净、口径对齐了再喂给模型。顺序一错,后面怎么调都是白搭。
所以我现在给客户做GEO验收,第一条不看引用多少条,先看字段一致性:同一家门店,在地图页、产品页、FAQ页里的地址写法是不是同一个粒度。昨天刚跑完一批,200个门店里有37个区级写法不统一,有写“渝北区”的,有写“重庆市渝北区”的,还有写“重庆渝北”的。AI 引用的就是这37个里面最乱的那几条。
当年我做SEO的时候,这种脏数据是运营手工录的,现在换成AI自动生成,脏得更快。但修法没变:先定口径,再写脚本批量 norm,最后才谈引不引用。
问一句:你们在 schema 里填 addressLocality 的时候,是填到市还是填到区?有没有人测过填到区之后,AI 答“XX区有没有门店”的准确率变化?我手头样本还不够,想凑个对照。
