做蜘蛛池或站点运营时,经常遇到一种情况:入口页在日志里能看到搜索蜘蛛访问,但目标 URL 过了几天仍然没有抓取记录。这时不要急着加更多入口页,先按下面顺序把问题拆开。
先分清“没被抓”的具体含义
“目标 URL 没被抓”至少有四种不同表现,处理方式完全不同:
- 入口页根本没被访问:说明蜘蛛还没发现入口页,或入口页被 robots、防火墙、DNS 等问题挡住。
- 入口页被访问,但目标链接没被解析:链接写法、渲染方式、内容类型、响应截断等都可能导致。
- 目标 URL 被请求过,但日志里没看到:可能日志采样、CDN 缓存、只记录了部分状态码,或者你看的是错误日志。
- 目标 URL 被抓过,但没进索引:抓取和收录是两件事,抓取正常不代表会展示。
先确认你手里的是抓取日志、服务器访问日志,还是搜索平台后台的抓取统计。三者口径不同,不要混着判断。
入口页侧:链接是否真的能被发现
入口页被访问,只代表蜘蛛拿到了这个页面,不代表它会跟进里面的每一个地址。可以逐项检查:
- 目标地址是否写成可解析的超链接,而不是纯文本、图片、按钮或仅存在于 JavaScript 变量里。
- 链接是否被 nofollow、X-Robots-Tag、robots.txt 或页面级 noindex 间接影响。
- 入口页返回状态码是否稳定为 200,Content-Type 是否接近 text/html。
- 入口页是否响应过慢、体积过大,导致蜘蛛只读取了前面一部分。
- 是否用了 iframe、meta refresh、POST 表单等非常规发现路径。
如果入口页本身经常返回 5xx、验证页或登录页,蜘蛛即使来过,也可能不会继续解析链接。
目标 URL 侧:能抓不等于会抓
入口页把链接交出去之后,蜘蛛还要对目标 URL 做一轮判断:
- 目标 URL 是否返回 200,是否稳定,是否会跳转到登录页或验证页。
- 目标页是否被 robots.txt 屏蔽,是否带 noindex,canonical 是否指向别的地址。
- 是否和大量参数 URL、大小写变体、尾斜杠变体重复,导致蜘蛛认为不值得重复抓取。
- 服务器或 WAF 是否对蜘蛛 IP 返回 403、429 或人机验证。
这些情况在日志里可能表现为“蜘蛛来过入口页,但目标 URL 一次都没出现”,也可能是“目标 URL 出现了一次,之后再也没来”。
抓取配额与调度:入口页多不等于抓得快
蜘蛛池常见误区是:入口页从几十个增加到几百个,目标 URL 就应该立刻被抓。实际上,搜索蜘蛛的抓取量受站点整体质量、历史抓取反馈、服务器响应速度、页面更新频率等影响。入口页数量只是发现渠道之一,不是配额开关。
如果入口页每天大量轮换、同一批 URL 反复出现在不同入口页,蜘蛛可能把抓取预算花在重复入口上,目标 URL 的调度反而被推迟。更稳妥的做法是保持入口页结构稳定,让新 URL 有持续、可预期的发现路径,同时用 sitemap 和站内链接做补充。
一套可执行的自查顺序
- 在日志中按目标 URL 精确搜索,确认是否出现过任何一次请求,包括 4xx、5xx 和重定向。
- 用蜘蛛视角检查入口页:返回码、Content-Type、是否含可解析链接、是否被 noindex 或 nofollow 影响。
- 检查目标 URL:返回码、robots.txt、meta robots、canonical、是否有登录或验证拦截。
- 对比 sitemap、内链和入口页三种发现路径,看目标 URL 是否至少有一种稳定入口。
- 观察一到两周,不要因为当天没抓就立刻换域名、换入口页或堆大量新链接。
几个容易误判的点
- 日志里的 User-Agent 带 spider 字样,不一定是官方搜索蜘蛛,可能是第三方采集或扫描。
- 使用了 CDN 或反向代理时,源站日志可能看不到全部蜘蛛请求,需要看 CDN 日志或边缘日志。
- 目标 URL 被抓取过一次,不等于会被持续抓取;内容更新频率、页面质量和站点整体抓取反馈都会影响后续调度。
总结一下:入口页有蜘蛛访问但目标 URL 没被抓,优先排查“链接是否可发现”和“目标页是否允许抓取”,再看抓取配额和日志口径。把入口页、sitemap 和内链做成稳定组合,比频繁增加入口页更有利于 URL 被持续发现。抓取和收录没有保证,能做的只是减少障碍、保持稳定。