搜尋抓取

抓取队列里的新舊之争:蜘蛛先抓新 URL 還是先重訪舊頁面

蜘蛛的抓取队列並不是简單的先来後到。新 URL 被發現後要排队,舊頁面也有自己的重訪周期。理解新頁面與老頁面在調度中的竞争關系,能帮站長判断為什么有些連結很快被訪問,有些却迟迟没有動静,並據此調整内鏈、Sitemap 與更新节奏。

搜尋抓取

抓取队列里的新舊之争:蜘蛛先抓新 URL 還是先重訪舊頁面

不少站長會盯着日誌問:為什么刚發布的頁面几分钟就被蜘蛛訪問,而一些老頁面几個月都不更新一次?也有人發現,自己明明提交了新 URL,蜘蛛却先去翻舊列表。這背後不是蜘蛛随机乱走,而是抓取队列在調度。

抓取队列不是先来後到

蜘蛛面對的是全互联網的 URL 池。它需要控制請求速率、避免压垮服務器,也要尽量把有限的抓取額度花在“值得抓”的地址上。因此,抓取队列會综合考虑 URL 的發現時間、歷史抓取质量、頁面更新频率、站点整体稳定性以及内鏈位置。新 URL 和舊頁面並不是在同一條队伍里简單排队,而是由不同信号推着走。

新 URL 與舊頁面的竞争

新 URL 的優势是“新鲜”,它通常通過内鏈、Sitemap、RSS 或提交接口進入發現通道。但發現不等于立刻抓取,蜘蛛還要判断這條連結是否值得優先安排。舊頁面的優势是“已知”,蜘蛛有它的歷史记錄,會按一定周期回来看看有没有變化。如果舊頁面長期没有更新,重訪間隔可能拉長;如果它突然出現新内容或新内鏈,重訪間隔又可能缩短。

新連結的露出位置很關键

同一批新 URL,放在首頁、栏目頁、Sitemap 和文章底部的推荐位,進入抓取队列的速度往往不同。蜘蛛更倾向顺着稳定、层級清晰、点击深度浅的連結走。如果新頁面只藏在深层分頁或需要多次点击才能到達,它可能先被记下,但抓取排期會往後靠。

舊頁面的重訪信号

  • 頁面内容是否真的發生變化,而不是只改模板或广告位。
  • 内鏈是否持續指向它,尤其是来自首頁或栏目的連結。
  • Sitemap 中的 lastmod 是否與實际修改時間一致。
  • 歷史抓取是否稳定返回 200,且响應速度在可接受范围。

站点可以做的配合

與其猜测蜘蛛的優先級,不如把几個基础信号做稳。蜘蛛不會因為一次提交就長期偏爱某個頁面,但稳定的结构能减少它做判断的成本。

  1. 保持内鏈稳定。重要頁面不要频繁更換 URL 或從導航中撤下,否則蜘蛛需要重新發現路径。
  2. 更新後让連結重新露出。有新内容时,可以在相關栏目、聚合頁或舊文中加入指向連結,给蜘蛛一個再次訪問的理由。
  3. Sitemap 的 lastmod 要准确。如果每次發布都批量刷新全站時間,蜘蛛會逐渐降低對這個信号的信任。
  4. 服務器保持可抓取。频繁超时、5xx 或连接中断,會让蜘蛛放慢對整站的抓取节奏。
  5. 减少無意义參數 URL。大量篩選、排序、會话參數會把新頁面的抓取机會稀释掉。

從日誌判断優先級

想了解自己站点在新舊 URL 之間的抓取分配,可以看服務器日誌里的蜘蛛訪問记錄。重点不是只看總抓取量,而是看新 URL 從首次發現到首次抓取隔了多久、舊頁面重訪間隔是缩短還是拉長、抓取时返回的狀態碼和响應時間是否正常。把這几項放在一起,才能判断問题出在發現、排队還是服務器响應。

抓取队列的優先級無法被人為完全控制。能做的,是让重要 URL 更容易被發現、更稳定地被訪問,並减少让蜘蛛犹豫的信号。

新 URL 和舊頁面並不是二選一。蜘蛛會同时维護發現、重訪和更新判断。站点结构越清晰、响應越稳定、内容變化越可识別,蜘蛛越容易做出接近你预期的調度。與其追逐單次抓取,不如把抓取路径上的基础环节長期维護好。