很多站点在抓取日誌里看到的現象是:蜘蛛来是来了,但總在几個栏目頁和翻頁上打轉,新上线的詳情頁迟迟不见踪影。這不是蜘蛛偷懒,而是它每次来訪能抓的 URL 數量有限,而你的站点在它眼里有優先級排序。這篇文章聊的是這個排序怎么形成,以及哪些部分可以主動調整。
抓取预算更像排队,而不是配額
常有人把抓取预算理解成一個固定數字,其實它更接近排队:搜尋引擎根據站点規模、更新频率、歷史响應质量,决定一段時間内大致来訪多少次、每次走多深。站点越大、頁面越多,單個頁面分到的机會就越少。
排队顺序受几個因素影响:連結层級、内鏈指向數量、歷史更新情况、服務器响應速度,以及 Sitemap 里给出的時間信号。這些因素不是各自獨立,而是叠加在一起,决定蜘蛛這次先敲哪扇门。
把抓取预算当成注意力更贴切:注意力花在哪,取决于哪里看起来更值得去。
三類頁面的優先顺序
新頁面
新頁面上线後能不能被尽快發現,主要看它被谁指向。從首頁或高频更新的栏目頁给一两條内鏈,比在頁脚堆一排連結有效得多。Sitemap 里同步更新 lastmod,也能减少蜘蛛以為内容没變而跳過的概率。
老頁面
已经抓過的頁面不會自動降級,但如果内容長期不變、响應又慢,蜘蛛复訪的間隔會慢慢拉長。真正有價值的老頁面,靠的是稳定的可訪問性和偶尔的實质更新,而不是频繁改動時間戳。
低频頁面
标簽頁、篩選结果頁、歷史归档頁這類頁面,數量往往是正文頁的几倍。如果它們被内鏈大量指向,就會挤占正文頁的抓取机會。常见做法是限制可抓取的參數组合、對没有检索價值的组合做收敛,而不是一刀切屏蔽。
几個容易被忽略的信号
- 响應時間:同一批 URL 里,慢的那部分會被排到後面,長期慢可能被明顯降频。
- 内鏈位置:正文里的連結通常比頁脚、侧栏的連結更早被處理。
- 重复内容:同一份内容對應多個 URL,會让蜘蛛反复確認,消耗的是同一個预算池。
- Sitemap 的准确性:把 404、重定向、已屏蔽的 URL 放進去,蜘蛛每次都要白跑一趟。
- 狀態碼稳定性:間歇性的 503 會让蜘蛛降低整体来訪频率。
服務器表現决定了抓取节奏
服務器的表現直接影响蜘蛛愿意来多少次。响應時間長期在高位、偶發超时、批量 5xx,都會让蜘蛛在之後一段時間里收紧抓取。相比之下,稳定的响應配合合理的缓存策略,能让同样的抓取次數覆盖更多 URL。
如果站点刚做過改版或迁移,建议先保證新结构的响應稳定,再观察日誌里的狀態碼分布,而不是同时改内鏈、改 Sitemap、換服務器。
可以落地的調整顺序
- 先從日誌里找出被抓最多但價值最低的那批 URL,確認它們由什么内鏈或參數组合产生。
- 收敛這些入口,同时给重点新頁面补上從高频栏目頁出發的内鏈。
- 清理 Sitemap 中的無效 URL,让 lastmod 與真實更新時間保持一致。
- 观察服務器的响應時間分布,把明顯偏慢的頁面單獨排查。
- 過一到两周再對比日誌,看抓取分布是否向正文頁倾斜。
抓取预算的調整通常不會立竿见影,它更像是在改變蜘蛛對整個站点的印象。把入口管好、把無效 URL 收掉、把响應做稳,剩下的交给時間。