很多人在入口页日志里已经看到搜索蜘蛛来了,链接也写了,但目标站的服务器日志里两三天都没有动静。这种情况通常不是“链接没被发现”,而是发现之后还隔着一段调度过程。理解这段过程,比反复改入口页更有用。
发现和抓取是两件分开的事
搜索蜘蛛抓取入口页时,会把页面里的链接提取出来,转成一个待抓取的 URL 列表。这个动作叫URL 发现。发现之后,URL 只是进入了一个候选池,并不意味着马上会被访问。
候选池里的 URL 需要经过优先级排序、抓取配额分配、可抓取性检查,最后才由调度系统派出蜘蛛去请求。整个过程可能几分钟,也可能几周,取决于目标站本身在搜索引擎眼里的状态。
从发现到抓取,中间大致要过这几步
- 入队与去重:同一个 URL 被多个入口页指向,通常只会留下一条记录,重复指向不会成倍加快。
- 优先级排序:站点历史抓取质量、页面更新频率、被链接的广度都会影响排序。
- 可抓取性检查:目标站的 robots.txt、页面级 meta robots,以及之前的 HTTP 状态记录都会被参考。
- 配额分配:搜索引擎会给每个站点分配一个大致的抓取量,站点响应越慢、错误越多,这个量往往越小。
- 实际调度与重试:第一次请求失败(超时、5xx)会进入重试,重试间隔通常逐步拉长。
哪些因素会让等待变长
- 目标站响应慢:几百毫秒和几秒的差别,在配额分配上是量级差异。
- 目标站错误率高:频繁 5xx、连接重置、证书问题,都会让调度器降低访问意愿。
- 目标站本身被抓得少:新站或长期没有内容更新的站,抓取频次本来就低。
- URL 变体太多:带参数、大小写、www 与非 www 混用,会把有限的抓取量分散到多个地址上。
- 入口页质量差:入口页大量重复、内容空洞,提取出的链接在排序里会被降权。
可以主动做的几件事
- 把目标 URL 自身的 sitemap 维护好,让搜索引擎有独立于入口页的发现渠道。
- 保证目标页面返回稳定的 200,响应时间尽量控制在可接受范围内。
- 减少跳转链:一次 301 可以接受,连续多次跳转容易被降低优先级。
- 页面 URL 尽量固定,不要因为改版频繁变动地址。
- 在目标站内部做好链接,让被抓到的任一页面都能通向其他页面。
- 用日志记录“首次发现时间”和“首次抓取时间”的差距,长期看趋势,而不是盯着某一天。
几个常见的误解
- 入口页数量越多越快:重复链接对调度排序的作用很小,边际效果递减明显。
- 刷新入口页能立刻触发抓取:入口页被重抓,只是重新确认了一次链接,不等于目标 URL 被排到队首。
- 提交就等于插队:提交只是提供发现渠道,是否抓、什么时候抓仍由调度决定。
怎么判断是“还没轮到”还是“被挡了”
如果入口页日志正常,但目标站日志完全没有搜索蜘蛛的请求记录,可以按下面顺序查:先在目标站日志里搜索蜘蛛 UA 是否存在;再检查 robots.txt 是否误屏蔽了整站或目录;然后看服务器是否有防火墙、CDN 规则拦截了蜘蛛 UA;最后确认 DNS 解析是否稳定。
如果日志里能看到请求但返回 403、5xx 或超时,问题就在服务器侧,不在入口页。
把入口页当成“递名片”的动作就好:名片递出去了,对方什么时候回访,取决于你这边门是不是开的、接电话快不快。入口页能影响的是被发现的机会,抓取节奏最终还是由目标站自身的状态决定。