很多站長在提交完 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 不等于马上抓取,被抓取不等于被收錄,被收錄也不等于有排名。這三件事之間隔着索引判断和排序,任何一步都不是提交動作能决定的。與其反复点提交,不如去看日誌里蜘蛛的抓取频次、狀態碼分布和抓取最多的目錄——那里才看得出队列在你站上是怎样推進的。