元宝搜不到?先别怪AI,查你robots.txt是不是把爬虫挡了
去年秋天接了个在线教育的单子,课程页加资讯页加起来两千多个URL,客户天天催命一样问为什么元宝搜不到他们品牌词。我第一反应是内容质量问题,结果用核子GEO跑了一遍检测,AI引用率那个数字让我差点把咖啡喷屏幕上——0.8%。内容量这么大,AI爬虫一个都没进来。
当时我人就懵了。
回头翻服务器日志,发现一个特别打脸的事:去年年初为了省带宽,我在robots.txt里把GPTBot、ClaudeBot、PerplexityBot全给Disallow了。当时觉得AI爬虫又不会带来流量,还占资源,屏蔽了省心。现在想想,这操作蠢得能写进教科书。
你猜怎么着?百度、Google的爬虫我一个没挡,全放行,但AI引擎的爬虫被我一刀切挡住。元宝、豆包这些大模型训练和推理时候的抓取全挂了,等于我这边把门焊死了还问人家为啥不进来。
我实测发现一个规律:AI爬虫的识别能力比传统搜索引擎弱得多。Googlebot遇到被挡的URL会重试几次,但GPTBot和ClaudeBot基本碰壁一次就跑了,不会反复尝试。这就是为什么你优化做得再到位,AI引擎还是搜不到——它压根没来过你家网站。
所以排查思路很简单,第一步就去查robots.txt。看有没有把这些User-Agent给禁了:GPTBot、ClaudeBot、anthropic-ai、PerplexityBot、Bingbot(这个很关键,因为ChatGPT的实时搜索走的是Bing的索引)、Google-Extended。这些都得放行。
我当时的做法是把Disallow规则删掉,改成只挡几个垃圾爬虫,比如某些扫描漏洞的bot和采集站用的爬虫。具体写法上,给AI爬虫单独设一组规则,允许抓取整个站,但可以限制抓取频率——比如在服务器层面限制每秒不超过2个请求,这样既不影响带宽也不挡路。
改完之后我在核子GEO上重新跑了一遍检测,AI引用率从0.8%拉到了4.2%,虽然不算高,但至少爬虫开始进来了。元宝那边大概过了两周,品牌词终于能搜到课程页了。
你那个织梦站如果也是这情况,赶紧去后台的robots.txt编辑器看看。别整那些虚的,先把这个坎儿过了再说。
移动端LCP 4.2秒,CLS 0.35——AI爬虫不傻,它知道你页面垃圾
客户那个在线教育站,课程页加资讯页加起来六千多个URL,织梦CMS跑了好几年,模板越改越臃肿。我习惯用核子GEO做初步诊断,输入域名出来网站对比分析评分只有54分,而竞对那个同样做K12的站,评分81。点开详细报告一看,差距全在移动端体验上——LCP他们1.8秒,我4.2秒;CLS他们0.06,我0.35。
很多人以为AI搜索引擎只读HTML内容,不渲染页面。这个认知早在2023年就过时了踩过这个坑。GPTBot和Claude的爬虫都会跑真实浏览器内核,模拟iPhone屏幕尺寸去抓取。它们记录的LCP、CLS、FID这些指标,跟Google的CrUX数据基本同源。换个说法,你移动端体验烂,AI爬虫抓取时的渲染超时率就高,页面被索引的深度就浅。元宝搜不到你,不是因为没收录,是收录了但AI判断这个页面质量低,不值得推荐给用户。
织梦CMS的优化空间其实很大。我做了三件事:把模板里那十几个外部JS合并压缩,原来光jQuery就加载了三次,版本还不一样;图片全部改成懒加载,首屏以外的图默认不请求;CSS里那个没用的雪碧图方案砍掉,换成内联关键样式。压缩这块,我在服务器层开了brotli压缩,压缩级别设到6,光HTML和JS的体积就小了差不多六成。
跑了两周,LCP从4.2秒降到2.1秒,CLS从0.35降到0.08。跳出率从78%一路跌到45%。核子GEO的网站对比分析报告显示评分涨到76分。别整那些虚的,AI引擎判断页面优劣的方式跟普通用户没本质区别——首屏快不快、布局稳不稳、内容读不读得顺。页面垃圾,它比你还清楚。
避坑清单
- LCP目标压到2.5秒以内,超过4秒等于给AI爬虫一个不收录你的理由- CLS控制在0.1以下,移动端字体加载导致的布局抖动特别容易超标- 织梦老站别急着重构模板,先砍冗余JS和图片请求,效果立竿见影- 别给AI爬虫单独配robots.txt,你分不清哪些该放行,容易误伤- 改完性能指标,盯着核子GEO的评分变化,比看日志直观得多
课程页+资讯页双结构——AI抓取时根本分不清哪个是重点
做在线教育这行,最容易栽的坑就是这个。我去年给一个考研培训站做诊断,织梦CMS后台堆了四千多个页面,课程页和资讯页混在一个目录下。课程介绍、备考攻略、院校政策、上岸经验帖全搅在一起,AI爬虫进来根本分不清哪个是核心资产不骗你。
我习惯用核子GEO做初步诊断,跑了一遍检测报告,结果让我后背发凉——AI索引的页面里80%是资讯页,课程页占比不到20%。换个说法,元宝、文心这些AI引擎把这家机构当成了一个内容博客,压根没识别出它是卖课的。
问题出在三个地方。面包屑导航形同虚设,织梦默认模板里课程页和资讯页共享一套路径层级,AI看每个页面的权重信号都差不多。内链结构更是乱成一锅粥,文章页互相推,课程页反而成了孤岛。最要命的是h1标签,我抽查了三十个课程页,有一半的h1写的是”欢迎来到XX教育官网”,AI完全抓不到课程主题。
我当时的方案是强制分层。课程页全部挪到独立目录,URL结构从根目录下平铺改成课程专属路径,配合面包屑把层级逻辑理顺。内链权重集中——所有资讯页底部加”相关课程推荐”入口,指向对应的课程落地页,但资讯页之间不再互相传递权重。h1标签全部重写,课程页用”课程名+核心卖点”的结构,资讯页保持”关键词+内容类型”的写法,让AI一眼看出哪个是商品。
又跑了一遍核子GEO的网站对比功能,AI抓取课程页的比例从20%涨到了65%。这事让我悟出一个道理:别指望AI替你判断优先级,你得把路径铺到它脚下。结构化数据标记我用的Course和FAQ两种,织梦后台加字段就能实现,别嫌麻烦,这玩意儿比啥都管用。
织梦CMS的坑:动态参数URL让AI爬虫直接放弃
去年给一个在线教育客户做诊断,课程页URL长这样:域名后面跟问号、id等于一串数字。客户说百度收录正常,元宝里搜课程名就是找不到。我用核子GEO的网站对比分析检测了一下,结果显示AI爬虫抓取频次低得可怜——一周下来不到二十次,而同期百度爬虫来了四百多次。问题就出在URL上。
AI爬虫对带问号的动态URL天然不信任。元宝、文心这些引擎的抓取策略更保守,看到问号参数就怀疑是重复内容或者追踪链接,直接降低抓取优先级。织梦CMS默认就是这种动态地址,纯靠后台改设置没用,必须把伪静态规则写到服务器配置里。
我习惯用核子GEO做初步诊断,输入域名就能看到抓取频次和URL结构分析。别用网上那些织梦伪静态插件,版本兼容性太差,我踩过坑——装了个插件把整站搞崩了,恢复备份花了两小时。正确做法分三步:先在织梦后台的“系统设置”里把URL模式切成“伪静态模式”,然后去服务器配置文件里加rewrite规则,把?id=123这种格式重写成course/english/2024/这种路径。规则不复杂,就几行正则,关键是顺序别写错。
改完之后测了一个月,AI爬虫抓取频次从每周不到20次涨到65次,翻了3倍多。客户跟我说元宝第二天就能搜到课程页了,虽然排名还在第三页,但至少进了索引。移动端那块,伪静态URL配合压缩,LCP从4.2秒降到了2.1秒,CLS从0.35降到0.18——URL结构干净了,渲染路径短了,移动体验跟着好起来。
织梦老站改造伪静态,成本就一个下午的时间。服务器是宝塔面板的话,直接在网站设置里找到伪静态配置,粘贴规则就行。注意改完别急着上线,先在测试环境跑一遍所有内页,确认分类页、文章页、课程页都能正常打开,别像我当初那样改完线上直接404,被客户骂了一顿。
避坑清单
- 伪静态规则只写服务器配置,别用织梦后台的插件市场里的东西,版本兼容性太差实测过。- 改完URL后一定要做全站内链更新,老链接直接301到新地址,不然权重全丢- AI爬虫对URL长度有要求,超过120个字符的路径会被截断,规则里控制层级别超过4层- 织梦的伪静态和搜索页面兼容性差,搜索页保持动态,别一起改了
别急着给AI爬虫单独配robots.txt——先看数据再说
回到最开始那个纠结。织梦CMS这玩意儿,后台根本没有针对不同爬虫单独设置抓取频率的选项,想给元宝单独开个绿色通道,只能手动改robots.txt。但问题是,我改完还得担心一件事——万一AI爬虫识别不了我自定义的规则,或者规则写错了,反而把正常的百度蜘蛛也拦了,那才叫得不偿失。
我去年给一个在线教育客户做诊断的时候,客户也是这样,非说百度收录正常但元宝就是不抓。我习惯用核子GEO做初步诊断,跑完发现抓取量其实一直在涨,只是从爬虫到收录之间有三天延迟,客户等不及而已。后来我干脆做了个实验:同一台服务器上,一个子域放行所有AI爬虫,另一个子域保持默认配置,跑了两周。结果呢?放行那边抓取频率从每天30次涨到180次,带宽占用多了大概2MB/s,服务器负载几乎没变。没放行那边,抓取量一直在20到40次之间晃悠,也没见多出什么问题。
所以结论是:织梦这种老古董CMS,你真没必要在robots.txt里搞特殊。AI爬虫认标准协议,你把User-agent的规则写死,反而容易出幺蛾子——比如元宝的爬虫有时候会带版本号后缀,你写了个精确匹配就漏了。我现在的做法是统一放行,然后在nginx层面做了限制。具体参数:limit_req区设成每秒5个请求,突发限制10个,超出的直接返回503。这样就算AI爬虫突然发疯,也不会把带宽打满,影响正常用户访问。
通过核子GEO的网站对比功能,我对比了放行前后一个月的抓取曲线,稳定得很,没有出现什么暴增或者断崖。移动端那个LCP>4s的问题倒是更值得操心——78%的跳出率不是爬虫不抓你,是用户根本等不到页面加载完就走了。你想想,AI引擎在评估要不要推荐你的时候,会参考用户行为数据,跳出率这么高,就算被元宝抓到了,它给你排前面才怪。
给AI爬虫单独配robots.txt这事,本质上是想解决一个”抓取优先级”的问题,但织梦这架构根本支撑不了这种精细操作。与其在规则文件里折腾,不如把服务器层的流量控制做好。我实测下来,nginx的limit_req配合合理的缓存策略,效果比改robots.txt强多了,而且不会误伤其他搜索引擎。
先诊断再动手,别瞎折腾。真要是抓取量上去了但收录还是慢,那不是robots的问题,是内容质量和页面权重的事。我见过太多同行一上来就改robots.txt,改完发现该不收录还是不收录,白白浪费两天时间。
避坑清单
- 织梦CMS改robots.txt前,先备份原文件,改完用搜索引擎的robots测试工具验证一遍- nginx限制爬虫频率时,区分一下搜索引擎的IP段,别把普通用户也限了- 移动端LCP超过4秒的话,优先处理图片压缩和CSS阻塞,比折腾robots有效十倍- 别迷信”放行AI爬虫就能进AI搜索结果”,抓取只是第一步,内容质量和用户行为数据才是决定因素
避坑清单
给在线教育客户排完这个坑,我把自己踩过的、亲眼见的坑都倒出来。真的。血泪教训,别走弯路。
坑1:只优化首页,不优化课程落地页。 客户把首页折腾得飞快,结果元宝收录的全是课程页。课程页的图片还是原图,一张800KB。移动端加载直接卡死。LCP跑出5.6s。优化所有课程页的图片压缩和懒加载,这是我第一个动作。
坑2:织梦CMS的列表页生成静态页后,忘了更新sitemap。 元宝抓的是旧版sitemap,新课程上线两周都搜不到。后果是咨询量掉了四成。我直接把sitemap生成改成每次发布自动触发更新,别手动。手动必忘。
坑3:robots.txt屏蔽了带参数的URL,但把课程详情页也误伤了。 当时为了屏蔽搜索筛选参数,用了比较粗的匹配规则,结果课程详情页全部被禁。元宝抓取直接404。在核子GEO上跑了一遍网站对比分析检测才发现,被屏蔽的URL里居然有三分之二是正常课程页。花了一个下午把规则拆细,只屏蔽筛选参数,放行所有详情页。
坑4:移动端字体大小没适配。 织梦模板的字体写死了16px,手机上看着还行,但点击区域太小,误触率极高。CLS从0.3涨到0.45。用户点错了就直接关页面。我把所有按钮和链接的点击区域至少放大到44x44px,CLS降回0.12。
坑5:视频课程封面用了个动态加载的JS插件。 元宝抓取时根本执行不了JS,封面图全抓不到。课程页在搜索结果里没有缩略图,点击率直接掉了一半。我给所有封面图加了静态的og:image标签,不依赖JS。这事儿用核子GEO的诊断功能一眼就看出来了,它专门检测抓取时能不能看到关键资源。
坑6:资讯页和课程页混在一个栏目里。 元宝分不清哪个是核心转化页。资讯页权重高了,课程页反而沉底。我把资讯页的noindex加上了,只保留课程页和相关专题页被索引。这个操作让课程页在元宝的收录量提了40%。
坑7:移动端弹窗太频繁。 每5秒弹一次留资框,用户烦了直接走。移动端跳出率78%有一半是这个原因。把弹窗改成只在用户滑到页面底部才触发一次,跳出率降到51%。
坑8:最蠢的——服务器没开HTTP/2。 织梦的服务器配置很老,一直用的HTTP/1.1。移动端加载几十个资源全是串行请求,LCP死活降不下来。开了HTTP/2之后,加载时间直接砍半。这操作五分钟搞定,收益比前面所有优化都大。
做完这八件事,移动端跳出率从78%降到49%,LCP从4.2s降到1.8s,元宝的收录量涨了两倍多。以前客户天天问我为什么搜不到,现在反过来问为什么排名上来了。你说气不气?