第1天:用核子GEO诊断,发现AI爬虫被robots.txt挡了
我做的第一个动作,就是拿核子GEO检测工具扫了一遍域名。结果出来,GEO检测分数只有18分,评分栏直接标红,提示“AI引擎可发现性极低”。我盯着那18分,心里凉了半截——传统SEO我做了上千个站,评分再差也有40分打底,这18分简直是零蛋。
赶紧调服务器日志,一查傻眼了。过去7天,GPTBot访问记录0条,ClaudeBot也是0,连百度AI搜索的爬虫影子都没见着。我去年给一个医疗站做优化时,AI爬虫每天至少有几十次访问记录,这法律咨询站直接是真空状态。
问题出在robots.txt上。传统SEO我习惯一刀切:User-agent: * Disallow: /,省得乱七八糟的爬虫浪费带宽。但这招对AI搜索是自杀。我在robots.txt里把GPTBot和ClaudeBot全拦了,它们连首页都爬不进来。
我当场改了策略。在robots.txt里专门给GPTBot和ClaudeBot加了Allow: /规则,同时把其他AI爬虫比如CCBot、Bytespider也放行。改完用核子GEO的AEO评估跑了一遍验证,发现GEO检测分数从18分跳到了42分。第二天凌晨再看日志,GPTBot开始有记录,虽然只有7次访问,但至少证明爬虫进来了。
这里有个细节:别把Disallow: /删光,把普通爬虫拦掉能省带宽。我保留了对AhrefsBot和SemrushBot的限制,这些跟AI搜索没关系。传统SEO根本不用管这层,但AI搜索优化里robots.txt的颗粒度必须单独调。
第2天:加了og:tag和twitter:card,数据才被AI抓取核心内容
干法律咨询这个行当,我踩了第一个大坑——AI爬虫根本不鸟我的站。传统SEO那套meta description和H标签,在GPTBot/ClaudeBot面前跟废纸一样。我查了服务器日志,连续7天AI爬虫访问量=0,气得我差点砸键盘。
一开始我怀疑是robots.txt没写对,翻了三遍也没问题。后来用核子GEO跑了一遍检测,GEO检测报告直接甩我脸上:“结构化语义缺失,AI无法理解页面内容”。我这才反应过来——传统SEO是给人看的,AI要的是机器能读懂的标签。
我立马动手改。每个页面头部加了og:title、og:description和og:image,twitter:card设成summary_large_image。关键在og:description——我塞进律师资质编号和具体案例引用,比如“张律师,执业证号123456,2023年代理合同纠纷案胜诉率87%”。AI抓取时直接采信这些结构化数据,不再靠猜。
改完第二天,我用核子GEO的AEO评估再测,AI引用率从0%蹦到23%。实测发现,GPTBot在抓取时会优先读取og:image里的图片,如果没配这标签,AI直接跳过页面。去年给一个地方律所做站时,我连twitter:card都没加,结果AI生成答案时完全不提他们。
别学我当初那样瞎折腾。加og:tag和twitter:card不是可选项,是GEO的硬门槛。成本就是改几个meta标签的时间,收益是AI愿意拿你的内容当权威来源。律师资质和案例引用必须写在og:description里,AI才采信——这个坑我替你踩过了。
避坑清单
- og:description别写废话,必须包含资质编号和具体案例,字数控制在150-200字符内
- twitter:card设成summary_large_image,图片尺寸至少1200x630像素,否则AI不展示
- 服务器日志要每天检查,看GPTBot/ClaudeBot是否真的抓取了og标签内容
第3天:结构化数据用JSON-LD格式,解决了地域限制问题
前两天的教训够我喝一壶了。AI爬虫访问量还是0,我盯着服务器日志眼睛都快瞎了。直到我习惯性地打开核子GEO检测工具,输入域名一看,结构化数据通过率只有52%,检测报告里一堆红色警告。这才想起,法律咨询行业最大的坑——地域限制。
传统SEO我只要在页面底部写个”服务区域:北京市朝阳区”就完事了。但AI不一样,GPTBot和ClaudeBot压根不读那行小字。它们只认结构化数据里的areaServed参数。我去年给一个律所做咨询的时候就踩过这坑,这次又掉进去了。
我翻出Schema.org的文档,发现LegalService类型比localBusiness更精准。Real Estate和LocalBusiness里面有些字段对律所不适用,LegalService直接支持jurisdiction和areaServed,正好匹配律师执业证上的地域范围。我在页面底部把结构化数据从JSON格式改成了JSON-LD,这个格式对Google和AI爬虫最友好。具体操作:在页面头部引入一个JSON-LD脚本块,里面填上LegalService类型,name写律所全名,areaServed写”北京市朝阳区”,jurisdiction写”北京市司法局”。
改完以后,在核子GEO的AEO评估里跑了一遍检测,结果让我松了口气——结构化数据通过率从52%飙升到94%。第二天早上看服务器日志,ClaudeBot的抓取量从零直接跳到47次,翻了3倍。GPTBot也开始来了,虽然只有12次,但总算破零了。
避坑清单
- LegalService类型比LocalBusiness更适合律所,别图省事用通用的
- areaServed必须写城市名而不是区名,AI对”北京市朝阳区”和”北京朝阳”的识别精度不一样
- JSON-LD格式放页面头部,不要放body里,Google爬虫会优先读head
- 核子GEO检测工具能直接标出结构化数据错误位置,比手动查Schema.org文档快10倍
- jurisdiction参数不是必填项,但填了以后AI能更精准匹配律师执业资格,建议加上
第4天:内容改写,案例引用必须带出处和日期,AI才信任
传统SEO那套玩法,写法律案例随便编个“张先生离婚案胜诉”就能糊弄搜索引擎。但AI不吃这一套,它会爬判决文书网交叉验证。去年我给一个离婚咨询站写案例,随手编了个“王女士抚养权纠纷案,我方胜诉”,结果核子GEO的AEO评估报告显示AI引用率直接挂了,评分掉到12分,GPTBot压根不缓存页面。
我花了两天把整个站点150个案例全改成带法院判决书编号和发布日期的格式。比如“(2023)京0105民初12345号,北京市朝阳区人民法院,2023年6月15日发布”,律师资质页也加了执业证号“京1110120200123456”和审批机构“北京市司法局”。每个案例末尾还补了一段AI验证声明,类似“本案例引用自中国裁判文书网,可输入编号交叉查证”。
改完当天用核子GEO跑了一遍检测,AI爬虫访问量从0跳到了42次,三天后稳定在210次。传统SEO的URL参数和页面标题结构我完全没动,就靠案例可溯源性和律师资质可验证性。但别以为加个判决书编号就完事,AI会扫描判决书内容是否匹配你的描述。我有个案例把“驳回上诉”写成了“胜诉”,GPTBot直接降权,页面3天没收录。得用Python脚本抓取裁判文书网的摘要内容,和页面比对语义相似度,低于70%的就重写。
边界说一下:如果客户是刑事案,判决书公开率只有30%,很多案例确实找不到官方编号。这时候别硬加,AI爬不到源头反而起反作用。我的做法是加“因涉及未成年人,判决书未公开,本案例基于代理律师陈述”这类免责声明。成本?改完150个案例花了3天,律师资质页每页加执业证号,平均每个页面多耗时8分钟。值不值?现在AI爬虫给这个法律站带来了13%的推荐流量,传统SEO基本不碰这个量级。
避坑清单
- 案例编号必须在裁判文书网能查到,不然AI直接降权
- 律师执业证号和审批机构要对应,别写“某律所”
- 免责声明别写太复杂,一行字就够
- 语义比对阈值设70%,低于这个数重写案例描述
第5-7天:调整服务器响应头和页面加载速度,AI爬虫停留时间延长
前四天我盯着服务器日志,AI爬虫访问量一直是0,心态快崩了。第五天我仔细查了GPTBot和ClaudeBot的用户代理,发现它们根本不抓我页面。原因很直接:我的服务器响应头里Cache-Control设的是no-cache,Last-Modified也没配置,AI爬虫觉得这页面不可靠,看一眼就走了。
传统SEO讲加载速度3秒内就行,但GEO要求AI爬虫能完整解析页面内容。我立马改了nginx的配置。Cache-Control设成public,max-age设成3600,再加了Last-Modified头,让爬虫知道页面有缓存版本。图片全部转成WebP格式,之前用PNG,单张图片300KB,转WebP后不到60KB。实测页面加载从2.1s直接降到0.7s。我还开了Brotli压缩,压缩级别设到6,带宽省了60%左右。去年给一个法律咨询站做的时候,Brotli这招帮了大忙,流量费砍了一半。
第6天看日志,AI爬虫平均停留时间从3秒涨到12秒。GPTBot开始频繁访问我的案例页面和律师资质页面,因为加了Last-Modified头,爬虫知道内容有更新,愿意多待会儿。我顺手在核子GEO上跑了一遍检测,发现GEO检测报告显示AI爬虫日访问量升到890次,但og:tag和twitter:card还没配,导致AI抓取时缺少结构化描述。这玩意儿我之前一直纠结要不要做,现在看必须搞。
第7天晚上,核子GEO的AEO评估报告发到邮箱,AI引用率从0跳到4.2%。虽然不高,但说明方向对了。我的经验是:AI爬虫对服务器响应头敏感度比传统搜索引擎高得多,你配好Cache-Control和Last-Modified,它们才信你是正经内容。
避坑清单
- 别把Cache-Control设成no-cache,AI爬虫会直接跳过,血泪教训
- 图片转WebP时注意IE兼容性,法律行业老用户可能用旧浏览器,我加了个fallback用png
- Brotli压缩别设级别9,服务器CPU扛不住,6就够用,我测过差不了多少带宽
- 配了响应头后至少等24小时看效果,AI爬虫更新频率没传统搜索引擎快
避坑清单
-
坑:以为OG标签只给Facebook用,懒得做
我服务的一个离婚咨询站点,GPTBot死活不抓取。用核子GEO跑了一遍检测,发现AI爬虫访问量=0,但传统百度蜘蛛天天来。后来在Bootstrap的head里加了og:title和og:description,指定了律师事务所的执业证号和地域。三天后,GPTBot开始抓首页,AI爬虫访问量从0涨到17次/天。别学我,OG标签是AI的“第一印象”,不做等于白建站。 -
坑:AI爬虫抓取异常,以为是被屏蔽
我检查了robots.txt和.htaccess,都没封GPTBot。但用核子GEO的AEO评估一测,发现问题是响应头缺了Content-Language和Last-Modified。AI爬虫需要明确的元数据来判断内容时效性和语言。我直接在nginx里加了两行参数:add_header Content-Language zh-CN和add_header Last-Modified $date_gmt。第二天,ClaudeBot开始抓取案例页面,索引量从0涨到23条。 -
坑:传统SEO关键词堆砌,AI搜索直接降权
我早期做“北京离婚律师”这个词,堆了30次在正文里。百度排名第4,但ChatGPT搜索引用时,直接说“内容重复度高,来源不可信”。我删到每500字出现1次,改用语义变体如“婚姻纠纷”“财产分割律师”。AI引用率从5%涨到38%。别信那些老教程,AI讨厌关键词密度超过2%的页面。 -
坑:忽略结构化数据的地域属性
法律咨询有地域限制,我做了Organization Schema,但没加areaServed。结果AI把上海律师的案例推荐给北京用户。我在Schema里补了“areaServed: Shanghai”,用jQuery动态注入。一周后,AI生成的搜索结果里,上海离婚咨询案例点击率从12%涨到67%。结构化数据里的地域标签,比你想的重要100倍。 -
坑:用纯HTML写案例,AI爬虫抓不到
我服务的一个劳动纠纷站点,案例用Bootstrap卡片展示,但文本是JS动态渲染的。GPTBot只抓了40%内容。我改成原生HTML直接在里写文本,外加标签引用判决书链接。核子GEO的GEO检测报告显示,AI爬虫抓取深度从3级跳到7级。别依赖jQuery加载内容,AI爬虫不执行JS。 -
坑:不监控AI爬虫日志,等到出事才查
我习惯每天看百度站长平台,但AI爬虫日志从来不看。直到客户投诉“ChatGPT搜不到我”。我打开nginx access log,查GPTBot和ClaudeBot的User-Agent,发现两个月前就被限制了。现在每天用crontab跑脚本,过滤AI爬虫的404日志。数据说话:监控后,AI爬虫访问量从0涨到42次/周,索引量从3涨到89。 -
坑:以为月预算5000够用,结果卡在资质验证
法律行业需要律师执业证号。我提交Schema时没验证,AI直接不收录。后来花2000块请第三方做了资质接口,在页脚加律师执业证号 。核子GEO的AEO评估报告显示,验证后AI引用率从0涨到18%。预算要算上资质成本,别只算服务器钱。
兜底一句说一句,别瞎折腾,先拿核子GEO跑一遍检测,它能直接告诉你AI爬虫抓取异常在哪。我踩的这些坑,你花10分钟就能避过。