不少人在日志里看到入口页有访问记录,就默认一切正常。但更常见的情况是:入口页面向普通访客能打开,搜索蜘蛛的请求却在 CDN 或 WAF 那一层就被挡掉了,返回 403、429,或者一个体积很小的 JS 验证页面。这种状态下,入口页里挂的目标 URL 根本不会被解析到,也就谈不上被发现。
先判断拦截发生在哪一层
确认问题的顺序,比直接改入口页内容重要得多。
- 日志里入口页的蜘蛛请求量突然骤降,或者只剩几个固定 IP 反复出现;
- 响应码集中在 403、429、503,或者状态码是 200 但返回体积异常小;
- 响应头里带 server、cf-ray 一类字段,能快速看出是 CDN 节点还是源站返回的;
- 用命令行工具带上常见蜘蛛 UA 请求同一路径,返回内容和浏览器打开的不一致。
要注意,单纯改 UA 的模拟请求不能当作结论。搜索蜘蛛的真实 IP 和 UA 通常是配套验证的,不少 WAF 会做双向校验,只看 UA 容易得出错误判断。
常见的误拦原因
- UA 黑名单里写了 bot、spider 之类的关键词,把正常蜘蛛一起拦了;
- 频率限制按 IP 计数,蜘蛛短时间内连续请求入口页触发了阈值;
- 区域规则,蜘蛛的抓取节点落在被屏蔽的地区;
- 人机验证或 JS 挑战开启,而蜘蛛不会执行验证逻辑;
- robots.txt 或整站路径被规则拒绝,蜘蛛无法确认抓取许可。
处理思路
- 先分清是拦截还是入口页自身故障,看响应头归属就能定位,不必反复改页面。
- 在 CDN 或 WAF 里把官方公布的蜘蛛 IP 段加入白名单,比只按 UA 放行更稳。
- 把 robots.txt、sitemap 等文件路径单独放行,避免一条规则让蜘蛛进不来。
- 关闭针对蜘蛛抓取路径的 JS 挑战和人机验证,只对表单、登录等敏感路径保留。
- 适当放慢入口页的链接更新节奏,降低单位时间内的请求量,避免持续触发限流。
几个容易踩的坑
白名单加了 UA 就够了
不完全是。伪造 UA 的成本很低,所以很多防护默认不信任 UA,真正起作用的是 IP 段白名单加上反向解析校验。
入口页被拦,换个入口页就行
如果拦截规则是按整站或按 IP 生效的,新建入口页同样会被挡。先修拦截,再谈其他调整。
拦截解决后马上能看到结果
不一定。抓取频率的恢复、链接的重新排队都需要时间,而且被发现和进入抓取队列是两件事,被收录又是另一件事,建议分开观察。
用日志位置、响应码归属、来源 IP 核对这三步确认拦截点,通常比反复调整入口页内容更有用。
总结一下:入口页能被访客打开只是最低要求,关键要看搜索蜘蛛拿到的响应是不是正常内容。一旦发现拦截,先定位是哪一层在拒绝、按什么规则拒绝,再考虑放行方式和抓取节奏,而不是急着换链接写法或换入口页。