很多站长在提交完 sitemap,或者刚发了一条外链,就盯着日志等蜘蛛上门。但蜘蛛并不是随叫随到——它手头有一张待抓取的 URL 列表,也就是常说的抓取队列。你的页面能不能被抓,取决于它有没有进队列、排在什么位置、以及多久轮到一次。
队列里的 URL 是怎么来的
蜘蛛手上的 URL 来源比想象中杂:
- 已抓过页面的历史记录,用于判断什么时候该回来重抓;
- 站内链接,包括导航、正文、列表页分页;
- sitemap 与站点地图索引;
- 外部链接、重定向跳转,以及各种提交接口;
- JS 渲染后新出现的链接,这一部分经常被忽略。
来源越多,不代表队列越短。如果同一个 URL 被重复发现,蜘蛛会做去重,重复发现不会让它来得更快,只是白白占用了发现通道。
队列不是先来后到
抓取队列更像一个不断重排的任务表,而不是排队买票。影响顺序的通常是这几件事:
1. 页面在站内的位置
离首页近、内链多、被重要页面指向的 URL,一般会更早被安排。一个只能通过三层分页才走到、且只有一条入链的页面,等待时间往往长得多。
2. 站点的整体抓取表现
服务器响应快、返回码干净、很少超时,蜘蛛愿意多给抓取额度。反之,大量 5xx、长时间 TTFB,会让抓取速率下调,队列推进速度自然变慢。
3. 页面的更新特征
经常更新的页面会被判定为需要更频繁回访;长期不动的页面,回访间隔会被拉长。这也解释了为什么老页面改一次内容,可能要等一阵才被重新抓取。
4. URL 的历史与质量
曾经返回 404、软 404,或者内容高度重复的 URL,重新被重视的难度更大。清理这些 URL,其实是在给队列减负。
重抓间隔:改完内容为什么没动静
抓取队列里有一大部分任务是「重抓」,而不是「首次发现」。重抓间隔没有公开的固定值,它由站点规模、更新频率、服务器能力共同决定。sitemap 里的 lastmod 是一个提示信号,但前提是它得真实——如果每次生成都刷新成当天,这个信号很快就会失效,反而拖慢真正更新的页面。
把 lastmod 当成「改动日志」,而不是「生成时间」,它才有参考价值。
让 URL 早些进队列,能做的事其实不多
- 缩短重要页面的内链路径,让它出现在首页、栏目页或相关文章模块里;
- 保持 sitemap 干净,只放该被抓的规范 URL,并能稳定返回;
- 收敛参数页、搜索结果页、筛选组合页,别让它们挤占队列;
- 保证服务器稳定,减少超时和 5xx;
- 定期检查死链和断掉的内链,别让蜘蛛走到一半返工。
几个不用指望的事
提交 sitemap 不等于马上抓取,被抓取不等于被收录,被收录也不等于有排名。这三件事之间隔着索引判断和排序,任何一步都不是提交动作能决定的。与其反复点提交,不如去看日志里蜘蛛的抓取频次、状态码分布和抓取最多的目录——那里才看得出队列在你站上是怎样推进的。