很多站长有类似的困惑:站点没做什么大改动,蜘蛛却反复来爬那几个老页面,新上线的地址提交了好几天还卡在队列里。这通常不是蜘蛛变懒了,而是抓取预算的分配问题。
抓取预算是动态的,不是固定配额
搜索引擎给每个站点分配的抓取资源,会随站点规模、响应速度、内容更新频率、历史抓取质量等因素动态调整。同一个站点,在服务器稳定、页面返回干净的情况下,可用的抓取次数会慢慢增加;反过来,如果大量 URL 返回超时、跳转或内容重复,预算就被浪费在无意义的往返上,留给新地址的部分自然变少。
哪些页面在悄悄消耗预算
- 参数拼接页:筛选、排序、跟踪参数生成的大量相似 URL,蜘蛛每抓一个都要完整走一遍。
- 软 404:返回 200 但内容为空、或只提示“内容不存在”的页面,容易被反复确认。
- 长期不变的模板页:分页、标签、归档如果没有新内容,回访价值很低。
- 重定向链:一次跳转至少消耗一次请求,多跳就是成倍消耗。
- 响应慢的页面:单个 URL 占用连接时间长,等于压缩了同一时段能抓的数量。
新 URL 排队时,蜘蛛看哪些信号
同样的预算下,蜘蛛会优先选择“更值得现在抓”的地址,判断依据主要来自几个方面。
- 被发现的位置:首页、栏目导航、正文内链里的链接,比深层页脚或孤立的 Sitemap 条目更容易被排进近期队列。
- 变更信号:Sitemap 中 lastmod 的真实更新、页面本身较大的内容变化,都会让地址显得更新鲜。
- 站点整体健康度:响应时间、状态码分布、重复内容比例,会影响蜘蛛对整个站点的信任程度。
- 历史抓取质量:过去抓到的页面如果有价值,蜘蛛会更愿意沿同样的路径继续深挖。
把预算腾出来的几个动作
1. 关掉低价值入口
对排序、筛选类的参数页,可以用 canonical 指向主列表页,或在 robots.txt 中限制明显无意义的参数组合。不是所有页面都需要被抓,减少无效消耗本身就是提升发现效率。
2. 让更新频率和回访节奏对上
长期不更新的栏目页,不必频繁出现在 Sitemap 里;更新密集的板块,则值得放进首页或导航附近,并让 lastmod 与实际修改时间保持一致。时间戳乱填的后果是,蜘蛛会逐渐不再相信这个字段。
3. 新 URL 从强路径进入
与其把新地址只写进 Sitemap 等蜘蛛来取,不如在已有较高抓取频率的页面上给它一条内链。导航、专题页、相关阅读模块都是可用位置。入口越靠近站点主干,新地址进入近期抓取队列的概率越高。
4. 保持响应稳定
蜘蛛来访时段如果服务器变慢或频繁返回 5xx,抓取会立刻收缩。给抓取留出稳定的响应余量,比任何临时手段都更有效。
值得长期观察的几个数字
- 日志中蜘蛛对新目录的首次访问时间,即从上线到被抓的间隔。
- 200 / 3xx / 4xx / 5xx 的比例变化,5xx 上升要立即排查。
- 被抓取的 URL 中,确实有内容更新的页面占比。
- Sitemap 申报量与日志中实际抓取量之间的差距。
抓取预算的变化是渐进的,通常要几周才能看出趋势。任何“马上让新页面被大量抓取”的说法都不现实,能做的是持续减少浪费、稳定输出信号。
回到开头的问题:老页面反复被爬、新地址迟迟不动,往往是因为站点把预算花在了大量没有变化、没有价值或响应糟糕的地址上。先做减法,再谈加速,URL 发现的节奏会更接近预期。