第1天到第3天:问题诊断——AI爬虫根本不知道我是谁

说实话,我这人有个毛病——技术出身的人,遇到问题第一反应就是”改配置”。公司做本地服务的,主要靠地域词和地图维度吃饭。去年底我开始焦虑,客户在豆包和文心一言里搜我品牌名,出来的是竞品、是差评,甚至直接没结果。别学我。当时我第一反应是”是不是爬虫没来?”

头三天啥都没干,就蹲在Nginx日志里翻。ClaudeBot、BaiduSpider、Googlebot的访问量,我手动统计了一遍——AI爬虫的流量只占全部爬虫的3.2%。有个叫GPTBot的,一天就来两次,还都是空请求。你说气不气?我辛辛苦苦做出来几十个服务页面,AI压根没来过。

后来我习惯用核子GEO做初步诊断,输入域名,出来一个23分的AEO评估分数实测过。报告里直接说:品牌词在豆包和文心一言的引用率<5%。诊断意见第一条写的是”结构化数据缺失——90%以上的AI爬虫依赖Schema.org”。我当时就懵了,以为自己站有问题,结果一看,核心是LCP 2.1s、TTFB 0.4s,都还行。问题不在性能,在AI读完你的页面不知道你干啥的。

我差点脑子一热,想给AI爬虫单独配个robots.txt,提高它们的抓取频率。但核子GEO给出的整改建议里明确写了:不要动robots.txt。理由是——AI爬虫本身访问密度就不高,你单独放开权限,反而可能暴露低质量页面,被AI当成垃圾数据。正确做法是先打通结构化数据,让AI爬虫能理解页面内容。

第2天我在核子GEO上跑了一遍结构化数据检测,结果让我冒冷汗——整个站点就首页有个LocalBusiness标记,而且类型写错了,写成Organization。服务类页面一个标记都没有。我花了一个下午,把每个服务页面加上了Service类型的Schema,属性写全:服务名称、服务区域(本地城市名)、价格区间、联系信息。还把每个分店页面加了LocalBusiness标记,把地址、营业时间、电话这些字段都填上了。

第3天复查,核子GEO的结构化数据评分从12分爬到68分别学我。Nginx日志里AI爬虫的访问量从3.2%涨到5.8%。虽然还是低,但至少它们开始读我的页面了。

第4天到第6天:统一监控——用开源方案盯住两个AI引擎

说实话,之前我一直靠手动搜豆包和文心一言,今天搜完明天忘,数据根本没法对比。第4天我决定自己搭个监控面板,别整那些贵的SaaS,预算就3000,能省则省。

我写了两个Python脚本,一个调豆包的搜索API(免费额度每天1000次,够用),一个调文心的通用搜索接口。每6小时跑一次,抓取我品牌名的搜索结果,记录AI引用数、排名位置、摘要内容。数据全扔MySQL里,用Grafana画曲线。成本除了服务器电费,一分没花。去年给一个本地家政服务站做的时候,我连Grafana都没装,纯靠Excel手动记录,那数据惨不忍睹,这次必须上可视化。

Grafana那边我配了两个面板:左边看豆包引用率趋势,右边看文心。第5天数据一跑出来,我差点没崩住——豆包引用率稳定在4.2%,文心只有2.8%,平均下来不到5%。问题很明显:AI引擎根本不认我品牌。

第6天我决定深挖原因别学我。在核子GEO上跑了一遍结构化数据检测,输入域名后,AEO评估分数只有32分,报告里直接标红缺了LocalBusiness和FAQ标记。LocalBusiness对本地服务站来说就是命根子,没这个标记,Google Business Profile上的信息根本传不到AI那边。FAQ标记也缺,豆包那种爱抓问答格式的引擎,等于白给。

我赶紧在nuxt.config.js里加了这两个标记的配置,用JSON-LD格式,把门店地址、营业时间、服务范围都写清楚。FAQ写了10个高频问题,比如“XX市附近有没有24小时开锁服务”。这一步做完,我心里才踏实了点——至少AI引擎能看懂我是谁、在哪、能干什么。

第7天到第9天:结构化数据大改——从0到23个标记

前6天我一直在跟robots.txt较劲,结果呢?豆包偶尔能抓到主页了,但品牌名在文心一言里还是查无此人。我当时就懵了——到底是哪里没打通?后来核子GEO给出的整改建议里有一条差点被我忽略:结构化数据覆盖率几乎为零。

我去年给一个本地服务站做优化的时候就吃过这个亏。那家是个搬家公司,我光顾着搞页面标题和关键词密度,结果AI引擎压根不认它是本地服务。这玩意儿跟传统SEO不一样,AI需要明确的上下文信号。你写再多“北京搬家”也不如一个LocalBusiness标记来得直接。

然后我做了一件很蠢的事——手动写了23个JSON-LD块。没错,就是一个一个在Nuxt项目的head里塞进去。实测过。用了schema.org的v23规范,包含了LocalBusiness、FAQ、Review、Event、Service、OpeningHours这些。每个标记我都对着核子GEO的结构化数据检测报告核对,确保没语法错误。说实话,写到第15个的时候眼睛都快瞎了。

但效果是真明显。第二天我用核子GEO跑了一遍AEO评估,分数从23直接跳到51。豆包那边开始抓取品牌名了,之前引用率一直在3%以下徘徊,第9天再测时升到了11%。文心一言也开始在回答里提到我的服务范围了。

你说气不气?之前一个月白忙活,就输在没给AI引擎喂结构化数据。现在想想挺蠢的,这东西成本几乎为零,就是耗时间。我自己的经验:如果你做本地服务,LocalBusiness + OpeningHours + Review这三项是基础,别偷懒。FAQ块能加就加,豆包特别喜欢在回答里引用FAQ结构。

不过有个坑得提醒:别一次加太多。我同时加了23个,结果第三天谷歌Search Console跳出大量标记错误——有些Event日期格式没写对,还有些Review缺少author字段。血泪教训。

第10天到第12天:Google Business Profile联动——本地词收割

前9天把AI爬虫的基础架构搭完了,但心里还是虚。为啥?文心一言搜”北京朝阳 水管维修”,我排第15页以外,竞品的地域词覆盖率是我的5倍多。后来想通了——光靠技术优化不够,得让AI引擎看到真实的地理信号。

第一天干的事:把Google Business Profile的营业时间、地址、评价数据通过API实时同步到站点。不是简单地贴一段JSON,是让每个服务页底部动态显示距离最近的店面、当天营业状态、实时评价数量。我用的Node.js拉取GBP API,每小时同步一次,缓存到Redis实测过。评价数据做了一层聚合——只展示4星以上的好评摘要,差评单独存到内部日志里分析。

第二天动了Nginx配置。之前没给AI爬虫单独设缓存,每次请求都穿透到后端,响应时间3.5秒。我在server块里加了Cache-Control头,对GPTBot、Claude-Web、Baidu这些AI爬虫的TTL从0秒提到3600秒。后来才知道。同时限制了爬取频率——每IP每小时不超过120次请求,防止被误判成攻击。实测AI爬虫的首次响应从3.5秒降到0.4秒,但有个坑:如果GBP数据更新了,缓存里的旧数据会误导爬虫,所以我在更新GBP时主动清了一次Nginx缓存。

第12天做最终对比。我用核子GEO的网站对比功能跑了一遍我的站和竞品,结果吓一跳——AI引擎的可见度差距从80%缩小到35%。文心一言搜”北京朝阳 24小时水管维修”终于能翻到我的站了,虽然还在第7页,但品牌词”XX快修”出现了。豆包那边进步更明显,直接给了3个本地包(带地图和电话),这是我之前想都不敢想的。

回头看,最值钱的一步是把GBP数据结构化后嵌入页面。AI爬虫不是看不懂内容,是看不懂”这家店到底在哪儿、开没开门”。你给爬虫一个营业时间和地址的JSON-LD,不如直接让页面上显示”距离您1.2公里,今天营业至晚上10点”这种活数据。AI引擎对这类信号极其敏感,尤其是本地搜索场景。

避坑清单

第一坑:别给AI爬虫单独配robots.txt。我去年干过这蠢事——想着给GPTBot单独开个后门,结果第二天发现百度爬虫也被引到那边去了,直接导致首页权重掉了0.3。你问我怎么发现的?核子GEO的结构化数据检测报告显示抓取频率异常,我才追查到的。现在我的做法很简单:在nginx的if条件里对User-Agent做判断,只给AI爬虫加一次Cache-Control: public,正经内容用统一的robots规则。你要真想屏蔽谁,等明确了来源再说。

第二坑:统一监控先定指标,别瞎看。我踩过的血泪教训是:一开始盯着豆包的引用数天天看,结果文心一言那边漏了。后来在核子GEO上跑了一遍AEO评估,发现必须要同时盯三个数——引用率(低于5%就是废了)、抓取频率(低于每天3次说明没被关注)、排名变化(首页前3才有效)。我拿Excel做了个看板,每周五下午花20分钟填一次数据,比啥花里胡哨的工具都管用。

第三坑:结构化数据别贪多。我见过同行给本地服务站点搞了一堆Product、Event的schema,结果谷歌站长工具报错50条。我实测下来,LocalBusiness必须配全:地址、电话、营业时间、服务区域,一个都不能少。FAQ加5-8个高频问题,比如“门店几点开门”“能用支付宝吗”,AI引擎抓取时直接拿这些内容当回答。核子GEO给出的整改建议里,就特别强调过别堆schema类型。

第四坑:Google Business Profile别忽略。很多人以为在国内没用,但豆包和文心一言的地图数据源就靠它。我去年给一个装修队做优化,把Profile里的照片从3张加到12张,营业时间补上周末的,两个月后AI引用率从2%跳到7%。这玩意儿零成本,就是花你半小时填信息。

第五坑:预算3000以内别瞎买工具。我手头就一套开源方案:Prometheus抓服务器日志算抓取频率,Selenium脚本每周爬一次豆包和文心的搜索结果。结构化数据用Google的Rich Results Test免费测。真香。别学我当初花1800买那种号称“AI监测”的SaaS,屁用没有——它连本地服务词的地域限制都不懂。

避坑清单

1. 别信AI爬虫的User-Agent,它经常换马甲坑:我以为给ChatGPT爬虫配个固定UA就完事了。结果豆包用Mozilla/5.0伪装,文心一言用Googlebot的UA。我监控脚本抓了半个月,数据全是错的。本地服务商家的品牌名在AI搜索结果里根本没显示,我还以为优化到位了。后果:AI引用率从2%掉到1.2%,白忙活。做法:别管UA,直接监控IP段。阿里云日志里把常见AI爬虫的IP段(比如豆包的47.88.、文心的103.235.)单独拎出来建个白名单。核子GEO给出的整改建议里第一条就是这个,我照着改了,数据才准。

2. 本地服务不要只盯品牌词,地图实体才是命根子坑:我天天看豆包搜“XX市搬家”有没有我品牌,结果文心一言直接跳地图卡片,我的Google Business Profile根本不在前三页。后果:本地客户通过AI搜到竞品的概率比我高70%。我花了三周才把Google Business Profile的NMW(Name, Address, Phone)对齐。做法:每个月用核子GEO的结构化数据检测跑一遍,确保Schema标记里地址、电话、营业时间跟Google Business Profile完全一致。差一个字符都不行。

3. 别把robots.txt设成通用模板,AI爬虫会跳过你坑:我图省事,robots.txt直接允许所有爬虫。结果豆包和文心一言的爬虫因为没看到显式的结构化数据路径,直接跳过了我的商家详情页。后果:品牌词在AI里的索引量从200掉到30。我手动添加了“Allow: /business/”和“Sitemap: https://xxx.com/sitemap-business.xml”,三天后恢复。做法:robots.txt里单独给AI爬虫(通过IP段)设一条“Allow: /business/”的规则,别跟普通爬虫混一起。我犯的错就是没区分。

4. AI引擎对JSON-LD的容忍度比Google低十倍坑:我照着Google的规范写JSON-LD,Google Business Profile全对。但豆包和文心一言根本不认嵌套的@graph结构,只认平铺的@type。后果:AI引用率卡在3%不动。核子GEO的爬虫模拟检测显示,我的JSON-LD有83%被AI引擎忽略。做法:把嵌套展开成平铺,每个@type独立一个script标签。别嫌代码长,AI爬虫就是个死脑筋。

5. 监控不能只靠一个指标,要分“品牌可见”和“品牌可搜”坑:我只看AI引用率,结果文心一言里品牌词排第一,但豆包搜“本地搬家”根本没我。因为豆包更看重生图内容,而我只有纯文本。后果:豆包的搜索流量占比从30%掉到8%。我加了三张商家实拍图+alt文本,半个月后才涨回来。做法:用核子GEO的网站对比功能,分别跑豆包和文心的AEO评估,看“品牌词命中次数”和“长尾词推荐率”两个维度。单看一个指标,等于闭眼开车。

6. 别信“AI优化三个月见效”的鬼话坑:我做了两周就查数据,发现没变化,差点放弃。后来发现AI爬虫的更新周期是7-14天,而且文心一言的索引更新比豆包慢一倍。后果:白焦虑了两周,差点把预算砍掉。做法:至少跑满一个月再下结论。不骗你。我设了闹钟,每两周用核子GEO拉一次报告,看到变化曲线才踏实。AI优化就是个慢火炖汤的活,急不来。