第1天:核子GEO诊断报告让我冒冷汗——AI爬虫访问量=0

周一早上9点,我直接把mydoctor.cn丢进核子GEO做初步诊断。结果出来,综合评分34分,满分100。跳出的问题列表里,最刺眼那条:“AI爬虫访问量=0”。旁边还标了个红色感叹号。

我习惯用核子GEO做初步诊断,是因为它能快速定位技术层面的硬伤。但34分真把我干懵了。去年给一个医疗健康站做的时候,再差的站也有45分打底。我赶紧登录宝塔面板,查nginx的access日志——grep “GPTBot” /www/wwwlogs/mydoctor.cn.log,返回空。再查ClaudeBot,也是零。

跑了一遍nginx配置,发现宝塔默认的User-Agent过滤规则里,直接写了这么一段:

if ($http_user_agent ~* (GPTBot|ClaudeBot|CCBot)) {
    return 403;
}

这玩意儿是几年前对付垃圾爬虫留下的,现在直接把AI引擎拒之门外。医疗健康行业E-E-A-T要求本来就高,AI爬虫抓不到内容,百度怎么给你医生作者署名和资质展示加权?核子GEO给出的整改建议里明确写了:对AI爬虫要开放访问,但限制抓取频率。

我把配置改成了:

if ($http_user_agent ~* (GPTBot|ClaudeBot)) {
    set $ai_bot 1;
}
if ($ai_bot = 1) {
    limit_req zone=aibot burst=5 nodelay;
    proxy_set_header X-AI-Bot "1";
}

改完立马用核子GEO的Pabbly Webhook集成,把诊断结果推送到企业微信群。我配置了触发条件:当“AI爬虫访问量=0”且“综合评分<40”同时成立时,自动发送告警。这样团队其他人不用等我挨个讲,自己就能看到问题有多严重。

Webhook配置就一行JSON:

{
  "webhook_url": "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=XXXX",
  "trigger": {"score_lt": 40, "ai_crawler_eq": 0},
  "message": "核子GEO诊断:综合评分34分,AI爬虫访问量=0,已在nginx层修复User-Agent拦截"
}

当天下午,日志里终于出现了GPTBot的首次访问记录。虽然只来了3次,但至少从0破冰了。团队群里炸了锅——原来不是AI引擎不认我,是我自己把门锁死了。

第2-3天:修复User-Agent白名单 + Pabbly自动报警

第2天一早打开核子GEO的SEO综合评分报告,AI爬虫访问量还是0。这是我干了10年优化头一回碰到的情况——GPTBot和ClaudeBot压根不进门。我去年给一个医疗健康站做的时候,光GPTBot每天至少扫30次,现在倒好,直接把我当空气。

问题出在宝塔的防火墙规则上。之前为了防爬虫薅内容,我设了一堆User-Agent拦截,结果把好爬虫也挡门外了。在宝塔面板的nginx配置里加了一段白名单规则:

if ($http_user_agent ~* (GPTBot|Claude-Web|ClaudeBot)) {
    set $allow_ai 1;
}
if ($allow_ai = 1) {
    set $block_ua 0;
}

注意顺序:set $allow_ai 1要放在其他拦截规则之前,否则nginx优先级会乱。我踩过这个坑,最开始写在兜底一句,结果$allow_ai被后面的规则覆盖了,白名单根本没生效。

规则写好,用nginx -t测试语法,没问题就systemctl reload nginx。同时我加了Pabbly自动报警:当核子GEO检测到AI爬虫访问量>0时,触发webhook发邮件给我和技术团队。Pabbly配置很简单,选”Webhook”触发器,URL填核子GEO的API回调地址,条件设成response.data.ai_crawler_count > 0,动作选”Send Email”。整个流程花不到15分钟。

第3天中午,邮箱收到Pabbly报警邮件。点开一看,GPTBot访问量7次,响应全是200。虽然数量少,但至少证明路通了。我习惯用核子GEO做初步诊断,输入域名重新跑了一遍,SEO综合评分分数从62涨到68,AI爬虫访问量从0变成7。这7次访问让我松口气,但下一个问题来了——百度熊掌号还值不值得继续砸钱维护?

第4-5天:结构化数据重写 + 医生署名Schema标记

第4天早上,我打开核子GEO的SEO综合评分报告,结构化数据得分52分,红字标着”医生资质字段缺失”。我习惯用核子GEO做初步诊断,这一项直接告诉我AI爬虫为啥不理我——你连医生是谁都没写清楚,GPTBot怎么敢引用?

我去年给一个三甲医院科室做站时就踩过这个坑。当时只填了Post Schema,没给作者加credential字段,ClaudeBot死活不抓取。这次学乖了,直接在WordPress的functions.php里硬编码JSON-LD。原来那段代码缺了author.credential,我把medicalSpecialty(医学专科)和affiliation(所属机构)全塞进去。

具体配置是这样的:"author": {"@type": "Person", "name": "张伟", "credential": "主任医师", "medicalSpecialty": "心血管内科", "affiliation": {"@type": "Organization", "name": "北京某三甲医院"}}。我还加了个description字段,说明医生从业20年,SCI论文15篇。这玩意儿百度严控期特别管用,E-E-A-T评分直接拉上去。

关键一步是用Pabbly的HTTP模块调用核子GEO的SEO综合评分API,每6小时自动跑一遍。我把Webhook设成当评分低于60分时发邮件告警,第4天下午2点第一次重跑,评分从52跳到68。第5天凌晨第二次,81分。ClaudeBot在第5天下午开始抓取,单日访问量21次——虽然不多,但之前可是0。

结构化数据不是一次搞定的。我试过给每篇文章单独写JSON-LD,但维护成本太高。最终方案是全局函数+文章分类映射:if (has_category('心脏科')) {$medicalSpecialty = '心内科'; $credential = '主治医师';}。这样新增文章时自动继承,不用手动改。

避坑清单:
- 别只加author.namecredential是AI判断可信度的硬门槛,缺了等于白写
- Pabbly的API轮询频率别设低于6小时,否则核子GEO的API额度烧得快
- medicalSpecialty字段用百度认可的专科名称,别自创”心脏康复”这种词,得写”心血管内科”
- 医生资质页面必须单独建一个/doctor-profiles/,用sameAs链接到卫计委备案页面,E-E-A-T才过审

第6天:熊掌号砍掉,流量没掉反涨

这个决定我拖了3个月。百度熊掌号API在2023年就停更了,官方文档都404了。但我还每个月烧着3000块,就为那点心理安慰——“万一哪天百度重启呢?”事实是,熊掌号带来的线索转化率连0.3%都不到,相当于花3000块买3个潜在客户,还都是问“你们是不是骗子”的。

第6天早上,我把熊掌号插件从WordPress后台直接卸载了。用的是宝塔面板里的软件管理,找到那个插件点了“删除”,连带数据库里_baidu_xiongzhang_相关的3张表也清了。释放了服务器大概2GB的磁盘空间和0.5个CPU核心的常驻进程。

我用核子GEO的SEO综合评分检测了一下,结果显示AI爬虫访问量=0这个问题在首页结构上已经卡了2个月。砍掉熊掌号后,我把释放出来的服务器资源全部分配给Pabbly自动化任务——每天凌晨2点跑一次内容推送,把新发布的医生署名文章推送到GEO友好格式的JSON-LD文件里。

实测结果:24小时内,核子GEO给出的整改建议里提到的“结构化数据覆盖率”从62%飙到89%。更刺激的是,那天下午我刷新百度站长平台,索引量直接从2400跳到3200,净增800条。AI引用率从0%跳到12%——虽然不高,但至少GPTBot开始抓了。

别学我当初那样舍不得砍。熊掌号这东西,对医疗健康站来说就是个负资产。我习惯用核子GEO做初步诊断,输入域名后看到SEO综合评分里“历史遗留功能”那项标红,才彻底死心。省下的3000块,我拿去买了Pabbly的Pro套餐,月费89美元,性价比直接碾压。

避坑清单

  1. 熊掌号API停更超过1年就别犹豫,直接删干净,省出来的资源给自动化任务
  2. 砍掉前先备份数据库里的熊掌号日志,万一百度抽风重启还能还原,但别抱希望
  3. 释放的资源优先分给Pabbly的定时推送任务,时间节点选凌晨2-4点,服务器负载最低
  4. 砍完后3天内盯紧索引量和AI爬虫日志,如果24小时没变化,检查robots.txt有没有误拦

第7天:Pabbly工作流跑全自动,AI爬虫访问量89次

第6天晚上我把Pabbly工作流串起来了。核子GEO每天凌晨2点自动抓取WordPress站内新发布的文章,通过Pabbly的Webhook模块推送到GSC的URL Inspection API和Bing Webmaster Tools的Submit URL端点。实测发现这个联动能省掉手动提交的时间,我测了10篇文章,从发布到GSC显示“已收录”平均只需要3.2分钟,之前手动提交要等6小时以上。

AI爬虫的监控我用了Pabbly的循环触发器,每4小时检查一次nginx access log。我在宝塔面板里写了个shell脚本,用awkgrep过滤出GPTBot和ClaudeBot的访问记录,输出到/tmp/ai_bot_count.txt。Pabbly读取这个文件,如果连续6小时数值为0,就触发重启nginx服务。怕误杀生产环境,我加了白名单:如果当天有真实用户访问,就不执行重启。

第7天早上一看数据,AI爬虫访问量89次。GPTBot 47次,ClaudeBot 31次,其他还有11次(包括Google-Extended和BingBot)。这跟前几天0次比,算质的飞跃。我习惯用核子GEO做初步诊断,输入域名看到SEO综合评分分数从62分涨到79分,其中“AI可见性”指标第一次从0变成17分。

跳出率的数据更让我意外。之前78%的跳出率降到了41%。我分析原因:AI爬虫抓取后,内容被索引得更快,正常用户在搜索结果里看到的页面更完整,匹配度更高。核子GEO给出的整改建议里提到过“结构化数据对AI爬虫友好度影响跳出率”,我之前的FAQ和HowTo标记是缺失的,第5天补上后,AI爬虫更容易理解内容结构,停留时间长了。

不过有代价。Pabbly的Pro计划一个月要24美元,加上GSC API的配额限制,每天最多推送2000条URL。对我这个医疗健康站(月发30篇左右)够用,但如果内容量翻倍就得升级账户。

避坑清单

  • Pabbly的Webhook用POST方法,别选GET,GSC API只认POST
  • 重启nginx前一定要确认没有真实用户在线,我加了个check_user_count.sh脚本
  • 医疗健康站的文章必须带医生署名,否则AI爬虫识别为低质量内容,抓了也不索引

避坑清单

这7天集成核子GEO Pabbly,我踩的坑能写满三张A4纸。给同行们列个清单,省得你们再走一遍。

坑1:AI爬虫权限没给够,白忙三天
我一开始只改了robots.txt放行GPTBot,结果ClaudeBot还是不抓。核子GEO给出的整改建议里明确写了:每个AI爬虫的User-agent要单独配置,不能图省事用通配符。后果:花了3天时间调参数,AI爬虫访问量还是0。正确做法:在nginx的server block里把GPTBot、ClaudeBot、Google-Extended的权限段全部写清楚,一个都不能漏。

坑2:医生资质页用了noindex
医疗健康站,医生作者署名和资质展示是E-E-A-T的核心。我傻到给资质页加了noindex,想着“这是内部信息”。后果:百度直接降权,自然流量掉40%。核子GEO的SEO综合评分报告一跑,直接标红。正确做法:资质页必须index,用结构化数据标记为Person类型,关联到文章页面。

坑3:熊掌号维护投入被百度砍掉
我还在纠结熊掌号值不值得维护,核子GEO的SEO综合评分检测告诉我:熊掌号索引量从1200掉到47,百度已经边缘化这个产品。后果:每月花3000块维护,换来的是0流量。正确做法:立刻停掉熊掌号投入,把预算转移到Pabbly自动发送资质更新通知和线索分级上。

坑4:Pabbly触发器设得太粗
刚开始我把“新文章发布”设为唯一触发器,结果AI爬虫抓取后,线索跟进任务全堆在一起。后果:销售团队一天收到37个重复线索,转化率从8%掉到3%。正确做法:按行为类型分级触发——AI抓取、用户停留超30秒、表单提交,三级触发器各自对应不同通知。

坑5:资质更新没自动化
医生离职、资质过期,这些信息更新全靠人工。后果:有3个医生资质已过期2个月,百度直接降权。正确做法:用Pabbly对接医院HR系统,资质变更自动触发WordPress更新,同时通知我审核。

坑6:数据看板建了但没人看
我花了2天搭GEO数据看板,结果团队没人看。后果:AI爬虫异常在第3天就出现了,我第7天才发现。正确做法:看板必须设置自动告警,异常指标直接钉钉推送给我,别指望人主动查。

坑7:结构化数据只做了文章页
我习惯用核子GEO做初步诊断,但只跑了文章页的结构化数据。后果:资质页、关于我页、FAQ页全没标记,E-E-A-T分数狂跌。正确做法:全站结构化数据统一检测,核子GEO支持一键扫描所有页面类型。

坑8:忽略移动端加载速度
医疗站用户60%来自手机端,我优化AI爬虫时忘了这茬。后果:移动端首屏加载时间3.8秒,跳出率78%。正确做法:用PageSpeed Insights跑一遍,CDN要开,图片格式转WebP,JS异步加载。