抓取预算不是配額,而是蜘蛛的取舍
很多站長把抓取预算理解成“每天固定给多少條”,其實更接近一種取舍逻辑:蜘蛛在有限時間内,會優先爬它認為值得更新的頁面。入口頁的作用是提供發現路径,但如果入口頁本身质量低、連結重复,蜘蛛可能在同一個站群里反复绕圈。
換句话说,抓取预算不是被“用完”的,而是被“分散”的。入口頁越多,單個 URL 被重新訪問的概率就越低。目标頁能不能被及时發現,取决于入口頁有没有把蜘蛛引到正确的路径上。
入口頁上容易被浪費的几類 URL
- 無限翻頁與日歷归档:列表頁的下一頁、按日期归档、按标簽分頁,如果没有邊界,蜘蛛會顺着一直爬。這些頁面通常没有獨立價值,却會持續产生新 URL。
- 參數组合頁:排序、篩選、會话 ID、跟踪參數,同一個内容可以生成几十個地址。蜘蛛會把這些当成不同頁面,反复請求。
- 空列表與無结果頁:篩選後没有内容的頁面,如果仍然返回 200,蜘蛛可能把它当作有效頁抓取,但頁面上没有可用的跳轉。
- 重定向鏈:入口頁到目标頁之間如果经過多次跳轉,每次跳轉都會消耗一次請求,還可能让蜘蛛在中途放弃。
抓取预算的浪費往往不是一次性的,而是入口頁模板批量複製後产生的。一個模板里多一條無意义連結,乘以入口頁數量,就是成百上千次無效抓取。
把蜘蛛引向目标頁的几個做法
减少浪費不等于把入口頁删光,而是让入口頁上的每個連結都有明确去向。可以從下面几個方面調整。
- 入口頁只保留少量有效連結:一個入口頁放三到五條目标頁連結通常够用,連結太多反而稀释權重和抓取意愿。
- 連結寫在初始 HTML 里:蜘蛛不一定會执行 JavaScript,依赖脚本渲染出来的連結,發現效率會打折扣。
- 控制入口頁數量,宁少勿滥:如果一百個入口頁都在指向同一批目标頁,蜘蛛没有理由反复訪問。先小規模測試,观察日誌里目标頁是否被触達,再决定是否扩展。
- 用 sitemap 辅助,但不要依赖它:sitemap 能帮助發現 URL,但蜘蛛是否抓取仍取决于入口頁和站点整体质量。它不能替代合理的連結结构。
- 定期看日誌里的首次發現與重复抓取:哪些 URL 第一次被蜘蛛看到、哪些被反复請求却没有變化,這些信息比單纯統計蜘蛛次數更有用。
几個常见誤区
- 蜘蛛抓得多就是效果好:抓取量高只說明入口頁被訪問了,不代表目标頁被發現或收錄。要区分抓取、發現和收錄三個概念。
- 入口頁越多,目标頁越容易被發現:入口頁之間如果内容重复、連結相同,蜘蛛會降低重新抓取的频率,數量優势反而變成负担。
- 用 nofollow 就能控制一切:nofollow 只是建议,蜘蛛仍可能抓取。更重要的是從源头减少無效 URL 的生成。
一個简單的自查顺序
如果發現蜘蛛来得不少、目标頁却没動静,可以按這個顺序查:先看入口頁是否返回正常狀態碼,再看入口頁上的連結是否寫在 HTML 里,接着看連結指向的頁面是否有内容、是否返回 200,最後看日誌里目标頁有没有被請求過。很多时候問题不在蜘蛛池本身,而在入口頁到目标頁之間的路径太長或太乱。
抓取预算的管理是長期動作。入口頁上线後,過一段時間回看日誌,把没人抓、反复抓但没變化的 URL 清理掉,比不断新增入口頁更有效。