很多站长把「URL 被发现」当成终点,其实它只是起点。URL 进入搜索引擎的已知集合之后,还要排队等待调度,才能真正被蜘蛛请求一次。理解这段等待期,比反复追问「为什么还不抓」更有用。
发现和抓取之间隔着一个队列
搜索蜘蛛的工作大致可以拆成几件事:从各种入口拿到新 URL、把 URL 放进待抓列表、按调度规则决定先抓谁、抓完之后进入解析与索引流程。你提交 sitemap、发一条外链、在文章里加一个内链,影响的是第一步「发现」;而抓取什么时候发生,取决于第二步之后的调度。
调度并不是先到先得。搜索引擎会综合站点整体表现、历史抓取成功率、页面更新频率、服务器响应速度等因素,给每个站点分配一个大致的抓取额度,再在这个额度里排优先级。所以同一批新 URL,在不同站点上排队时长可能差出好几倍。
哪些变量会拉长等待时间
- 服务器响应慢或错误率高:超时和 5xx 会让蜘蛛降低对站点的访问频率,队列整体后移。
- URL 所处的链接深度太深:从首页要跳五六次才到的页面,通常排在浅层页面之后。
- 页面本身缺少更新信号:长期不变化的内容,复查间隔会自然拉长。
- 站点内大量低价值 URL 占位:参数页、筛选页、重复内容太多,会稀释真正需要的页面能分到的抓取次数。
- Sitemap 信息不准确:lastmod 全站统一写成当前时间,等于没有提供有效信号。
让 URL 排得靠前一些的做法
能做的事情不多,但都比较实在:
- 让重要页面离首页更近,通过导航、栏目页、相关推荐给它稳定的内链入口,而不是只放在 sitemap 里。
- 保持服务器稳定,把响应时间控制在一个合理范围,避免大批量 5xx 和长时间超时。
- Sitemap 只放需要被抓的规范 URL,分片清晰,lastmod 按实际修改时间更新。
- 内容有更新时同步调整页面的修改时间、标题或正文,让复查能拿到变化。
- 清理明显无价值的 URL,减少蜘蛛在低产出页面上的往返。
怎么观察排队情况
服务器日志是按时间排序的。把「URL 第一次出现在 sitemap 或内链里的时间」和「日志里第一次被蜘蛛请求的时间」做个对照,就能看出这段等待大概有多长。如果某个栏目普遍等待很久,通常指向两类问题:入口太深,或者服务器在蜘蛛访问时不稳定。
等待时间长不等于被拒绝。它更多反映的是调度顺序,而不是对页面价值的最终判断。
几个常见的误判
- 「提交了推送就一定会马上抓」——推送只是加快发现,并不改变调度顺序。
- 「加了内链就等于排到队列前面」——还要看这条内链所在页面自身的抓取频率。
- 「sitemap 里 URL 越多越好」——清单越长,越容易让真正重要的页面被淹没。
把「发现」和「抓取」分开看,很多焦虑就变得可解释:先确认 URL 确实被发现了,再看它在队列里等了多久,最后才去排查页面本身的问题。顺序对了,排查才不会来回绕。