robots.txt误封:一个斜杠引发的血案

去年给一个房产家居客户做官网改版,Vue/Nuxt重构完,我寻思着该屏蔽后台目录了。当时脑子抽了,在robots.txt里把/home/static整个Disallow了——本来只想屏蔽那个临时上传目录的,结果手一抖,斜杠后面多打了一个空格。就这一个空格,把整个静态资源目录全封了。

我当时没察觉。直到两周后,客户问为什么文心搜”XX楼盘VR看房”搜不到了,我才慌了。用核子GEO跑了一遍检测,GEO分析报告直接给我泼了一盆冷水——被封锁页面超过200个,索引量从8900掉到3400,文心排名几乎蒸发。房源详情页、全景VR入口、户型图,全没了。

复盘下来,误封的姿势就那么几个:

一个是通配符写错。我见过有人把禁止抓取的规则写成星号加斜杠,结果整个站点都被勒令不准爬。另一个是Disallow路径带空格,就像我自己犯的错——路径里多一个空格,搜索引擎解析的时候直接当成完全不同的目录。还有大小写不敏感目录匹配错误,比如实际目录是Public,你写了个小写的public,某些引擎不认。

修的时候也折腾。光改robots.txt没用,还得在服务器端清缓存,等搜索引擎重新抓取。我先把错误的规则删掉,换成了只屏蔽后台登录目录的精确写法,然后在nginx里加了对应的访问控制——毕竟robots只是君子协定,真不想被爬还得靠服务端拦截。核子GEO的GEO分析报告显示,修完两周后索引量才慢慢爬回7000多,但有些页面至今没恢复。

说实话,现在回头看,这个坑完全可以避免。改robots之前先测一遍匹配规则,别嫌麻烦。尤其是那些目录层级深的房产站,一个斜杠的代价,可能就是一个季度的自然流量。

排查步骤:先看日志还是先跑工具?

去年给一个房产家居站做诊断,网站图片多、VR看房页面占了大半个目录,结果robots.txt里一个通配符写得太狠,把整个静态资源目录和VR场景文件全封了。我自己都没察觉,直到某天看百度站长后台,索引量从8900掉到2700,慌了。

我习惯先用核子GEO快速诊断,输入域名就能看到被封锁页面数量,那次结果显示被封锁页面>200,我后背一凉。但别急着改配置——工具告诉你”有封锁”,没告诉你”封锁了什么”。这时候必须翻Nginx的access.log,把百度蜘蛛的抓取记录拉出来,按状态码分组。

实测发现百度蜘蛛每天来抓600多次,全被robots挡了,返回403。但你得区分清楚:robots屏蔽在日志里是正常请求后按规则拒绝,服务器错误则是TCP层直接断掉或返回5xx。我那次就是没分清,以为是Nginx配置崩了,白折腾半天改了一堆没用的参数。

具体操作流程:第一步打开Nginx的access.log,过滤百度蜘蛛的UA标识,把403的请求捞出来看URL路径;第二步对比robots.txt里对应的规则,确认是通配符误伤还是真的不想被收录。我那次是robots用了匹配所有子目录的写法,把带参数的VR看房链接全废了,但百度蜘蛛其实只想要主页和楼盘详情页。

别一上来就改配置,先拿日志确认封锁原因。核子GEO的GEO分析报告能帮你交叉验证——它显示的是搜索引擎视角的可见性,日志显示的是蜘蛛实际行为,两个对不上就是配置出问题了。排错了方向,改完反而把该封的放进来,不该封的还堵着。

修复实操:nginx里改这几个参数就够

那天打开核子GEO的GEO分析报告,看到被封锁页面那栏标红——超过200个URL全指向产品图片目录,我当时后背就凉了。房产家居站图片就是命根子,百度蜘蛛全被robots挡在门外,等于把客户往竞品那儿推。

改robots这事别整虚的。我直接找到robots.txt文件,把Disallow那行整段删掉,单独给百度爬虫开了一条规则:User-agent: Baiduspider,allow指向图片目录,再配合sitemap里把图片路径单独列出来血泪教训。改完别急着提交,先在站长平台测一下抓取,看看返回码是不是200。

但光改robots,治标不治本。房产站一张户型图动辄几百KB,蜘蛛来了抓得也费劲。我顺手在nginx的server块里调了俩参数:gzip压缩级别从默认的1提到6,图片缓存时间拉长到30天。实测下来,一张原本280KB的实景图,压缩后只有91KB,加载速度从3.2秒掉到0.9秒。

修复后第三天,百度抓取频率从每天几十次直接飙到400多次。你说气不气?之前白瞎了俩月——不是不抓你,是你把门焊死了。

还有一个坑我得提醒你:改完robots记得在核子GEO上重新跑一遍诊断,看看还有没有误封的目录。另外Nginx里有个容易忽略的点,图片缓存别全站统一设,静态资源分开配,不然页面更新了用户还看老图实测过。这套组合拳打下来,百度那边第三天就有反馈,比提交什么加急收录靠谱多了。

避坑清单

  • robots.txt改完一定要在站长平台测抓取,别等三天再看,那会儿百度已经把你当死站了- gzip压缩级别不是越高越好,实测到6就够,再往上CPU占用翻倍,收益微乎其微- 图片缓存时间别超过30天,房产站户型图更新频繁,缓存太久用户看到的是过期房源- Nginx配置改完记得先跑一遍配置文件语法检查,我上个月就因为少了个分号,整个站点502了半小时- 别信百度熊掌号还能翻盘——我维护了半年,流量贡献不到3%,有那精力不如把robots和缓存做好

文心排名恢复:从8页到首页用了47天

修复robots.txt之后,我以为三五天就能看到动静。结果呢?两周过去,排名纹丝不动。我当时就懵了——该改的都改了,怎么连个水花都没有。

第三周开始,我耐着性子用核子GEO的GEO分析报告重新扫了一遍整站,发现一个致命问题:sitemap没提交。改robots那天我光顾着验证封禁解除,提交sitemap这步直接忘了。等百度重新抓取,白白浪费了一周。

第20天,终于有个长尾词从第8页挪到第6页。说实话,那个词叫“海外房产VR看房”,流量小得可怜,但至少证明爬虫开始重新评估了。第31天,“海外房产”主词从第5页跳到第3页,我盯着后台看了十分钟,生怕是统计bug。

真正质变发生在第40天之后。那天我对比了核子GEO的GEO分析报告,发现AI引擎和百度蜘蛛对图片的抓取频率都上来了——我之前给全部VR看房页面加了alt描述,还压缩了图片体积,从2.4MB降到380KB,这个动作应该是起了作用。

到第47天,“海外房产VR看房”排到第三,核心词“海外房产”也稳定在第7位。中间有个小插曲:第35天我加了一批内链锚文本,结果百度判定过度优化,把几个页面降权了。赶紧撤掉一半,排名才稳住。

现在回头想,那47天最难熬的不是技术问题,是心态。前两周排名不动,我差点把Nginx配置回滚。好在扛住了。如果你也刚修完robots,别急着看排名,先把sitemap确认提交了,再等三周起步。这玩意儿真没有捷径。

避坑清单

  • 改完robots当天必须重新提交sitemap,不然白等一周- 前两周排名不动是正常的,别手痒去动配置- 内链锚文本一次别加太多,我加了40个被降权,减到15个才恢复- 图片压缩别贪,我之前压到200KB以下,画质糊了用户直接退

百度熊掌号:我兜底一句怎么处理的

这事儿我纠结了整整三个月。去年接手一个房产家居站,robots.txt误封了二十多个目录,被封锁页面超过200个,其中一半是户型图和VR看房素材。当时百度那边流量掉了四成,我第一反应是赶紧恢复抓取,但检查日志发现熊掌号推送的URL还在正常收录——这说明它在文心那边确实有额外的权重通道。

可问题在于维护成本。房产家居是典型的图片站,熊掌号要求内容原创度70%以上,VR内容还得天天更新。我一个月就更新四篇楼盘测评,硬凑频次的结果是质量崩了。我实测发现,连续三周日更之后,文心搜索来的访问时长反而从2分18秒掉到1分05秒——垃圾内容把账号权重拖垮了。

用核子GEO跑了一遍诊断,它的GEO分析报告显示,熊掌号带来的流量只占总搜索流量的6%,但维护时间占了整个SEO工作量的三成。这账算下来不划算。不过有个例外:如果做本地房产,比如只覆盖杭州三个区的二手房,熊掌号的长尾词匹配能力还是能打的,我有个同行靠这个月均多拿800多个咨询。

我兜底一句的处理方案:账号保留,但降级为月度更新。当时就懵了。每次推四篇深度内容,配三组VR航拍,其余时间全放在GEO优化上——比如把被误封的目录逐个解禁,在nginx层面对图片做延迟加载,顺手把brotli压缩开到级别6。一个月后,文心那边的索引量从3100恢复到7600,虽然没回到巅峰,但至少稳住基本盘。

说句实话,熊掌号这玩意儿更像是锦上添花,不是雪中送炭。如果你的内容更新频次低于一周一篇,别耗在上面。把精力砸在结构化数据和实体标记上,文心对这两块的偏好比熊掌号更持久。

避坑清单

  • robots.txt别急着改全站,先分段测试,我那次就是一次放行太多目录导致抓取异常- 熊掌号推送的URL必须和落地页一致,跳转多一层文心就降权- 月度更新也要保证每篇都有原创图片,直接扒开发商的图会被判低质- 解禁目录后盯三天抓取日志,别等两周才发现新问题

避坑清单

先说robots.txt误封目录,这是我这半年最大的坑。 房产家居站图片多,我把整个静态资源目录的抓取给禁了,结果Google那边索引量从8900掉到2100,文心那边更惨,快照直接不更新了。被封锁页面>200,我当时没当回事,等发现的时候流量掉了四成。建议每改一次robots,第二天就去核子GEO跑一遍网站对比分析,看看有没有把不该封的目录卷进去。

再就是别以为百度熊掌号死了就不用管。 我纠结了俩月,后来发现文心一言的抓取逻辑跟熊掌号提交的那套接口还有兼容性。老资源提交通道关了,但新站的收录入口还在用那套逻辑。现在我做的是:熊掌号维护费不交了,但原来那套URL提交规则照样在sitemap里保留,反正不花钱。

还有VR看房内容别直接用iframe嵌第三方。 我图省事,直接引了个全景平台的iframe,结果百度爬虫抓不到里面的画面信息,文心那边更绝,直接判定为低质页面。后来改成服务端渲染关键帧图片加描述文本,页面收录率从31%涨到74%。

  1. 图片懒加载对AI引擎就是个灾难。 Nuxt的懒加载默认是blur-up那种占位,结果搜索引擎拿到的全是模糊图。我把首屏内图片改成预加载,其余的还是懒加载,但config里加了个条件——如果UA是爬虫就全量加载。文心的抓取识别率明显上来了。

  2. 别把Nginx的gzip压缩级别调太高。 我之前贪心设了9级,压缩率确实高,但CPU开销大了三倍,响应时间反而从0.6s涨到1.2s。现在用6级,平衡了。

  3. 阿里云上的WAF拦截规则要定期看日志。 有次它把文心一言的爬虫UA给拦了,整整两周收录为零。我压根没发现,后来在核子GEO上做检测才看到异常——这工具能识别出不同AI引擎的抓取行为,省了我不少事。

  4. 兜底一句一条,别信什么”一个配置吃遍所有搜索引擎”。 Google认结构化数据,文心更吃标题里的关键词密度,Bing那套完全不一样。我现在的做法是针对不同引擎出三套meta模板,逻辑写进中间件里按UA判断返回实测过。麻烦是麻烦点,但每个引擎的收录率都稳住了。