被拦下的蜘蛛,看起来很像内容问题
排查抓取异常时,很多人的第一反应是页面质量、内链结构或者 Sitemap。但如果日志里搜索引擎 IP 的请求大多是 403、429、503,或者返回体只有几百字节的一段拦截提示,那问题不在内容,而在防护规则。蜘蛛拿到的是「请稍后再试」,自然不会继续往下走。
这类误伤常出现在站点刚上线、刚迁移或刚调整防护策略之后。站长自己用浏览器访问一切正常,因为浏览器带着真实 Cookie、执行了 JS、也没有触发频率阈值。
常见的几种误伤来源
- 频率限制过严:CC 防护按 IP 或会话统计单位时间请求数,蜘蛛短时间内集中抓取一批 URL,很容易撞线。
- UA 黑名单写得太粗:用关键词匹配 UA,把包含 bot、spider 的请求一概拦掉,正规蜘蛛也跟着中招。
- 来源 IP 段被封:机房 IP、云服务商 IP 段被整体拉黑,而搜索蜘蛛恰恰常从这些网段发起请求。
- JS 校验与验证码:强制跳转到验证页,蜘蛛不会替你完成验证,只会停止抓取。
- 规则写错位置:本意是拦某个广告爬虫,结果匹配范围覆盖了整站或整类请求。
先判断是拦截还是内容问题
看状态码和响应体
在日志里筛出搜索引擎的访问,按状态码分组。403、429 集中出现在某些路径上,基本就是规则命中;503 如果只出现在对蜘蛛的请求上,也要怀疑是防护层返回的。
看抓取量的变化曲线
抓取频次不是缓慢下降,而是在某一天之后突然掉到接近零,通常对应防护策略上线的时间点。把这条时间线和操作记录对一下,比逐条翻日志更快找到原因。
放行要做对,而不是全放开
先确认身份再放行
只根据 UA 放行最省事,也最容易被冒用。更稳妥的做法是用反向 DNS 解析或者官方公布的 IP 段做匹配,确认来源确实属于对应搜索引擎,再加白名单。只认 UA 的白名单,等于给伪装者开了同一扇门。
按路径和阈值分别处理
如果只是详情页被抓得太密,可以只对内容目录降低限制,管理后台、接口路径继续严格拦。频率阈值按路径分开设置,能让抓取落在真正需要更新的页面上。
给验证码和挑战页留例外
对已确认身份的蜘蛛,跳过 JS 挑战和验证码;否则无论前面的规则多宽松,抓取都会停在那一页。
放行不等于关掉防护。目的是让可验证的抓取顺利通过,同时保留对可疑流量的限制,而不是把所有规则一次性撤销。
调整之后看什么
改完规则别只看当天数据,观察一周左右:搜索引擎 IP 的 403、429 是否减少,抓取请求是否回到正常水平,此前没被访问过的 URL 是否开始出现。同时留意有没有非搜索引擎的请求混进白名单,如果某个 IP 段放行后出现大量异常抓取,就该把范围收窄。
另外,抓取恢复不代表收录会立刻变化。防护规则只是把路打通,页面最终能不能进索引,还要看内容本身和站内结构。