做蜘蛛池的人经常會遇到一個問题:入口頁明明铺了几千個,蜘蛛每天却只来几百次。原因往往不在入口頁的數量上,而在抓取预算的分配上。蜘蛛每天愿意在一個站点上花的時間是有限的,入口頁、列表頁、詳情頁在争抢同一份预算,分不好就會出現“入口頁天天被爬、真正想推的落地頁一個都没進”的情况。
抓取预算到底指什么
抓取预算可以粗略理解成两個數字的乘积:蜘蛛愿意並發多少连接,乘以它愿意在這個站点上待多久。它不是一個能查询到的固定值,而是搜尋引擎根據站点歷史表現動態给出的額度。影响它的因素大致有三類:
- 站点响應速度:TTFB 偏高、经常超时的站,額度會被压缩。
- 抓取價值判断:頁面是否重复、是否有實质内容、是否存在大量無意义參數。
- 歷史抓取效率:過去一段時間里,蜘蛛抓到的頁面中有多少是值得繼續處理的。
換句话说,预算不是求来的,是省出来、挣出来的。
三類頁面在预算里的不同角色
入口頁:负责把蜘蛛引進来
入口頁的核心任務是把蜘蛛带到站内,並向它提供一批可繼續爬的通路。它的特点是數量多、内容薄、结构高度相似。這類頁面如果占用了過多预算,就會出現典型的“蜘蛛一直在门口轉,不進屋”的現象。
比較合理的做法是让入口頁保持轻量:少 JS、少外鏈、不做复杂渲染,把响應時間压到很小的范围,让蜘蛛用很短的時間讀完並顺着連結离開。
列表頁與聚合頁:负责分流
列表頁是预算的中轉站。它本身不需要太多正文,但需要稳定地把蜘蛛分發给詳情頁。這一层最怕的是URL 無限扩張:篩選、排序、分頁參數叠加之後,同一條内容能生成几十個 URL,预算會被迅速稀释。對這類參數頁,通常的做法是限制可爬范围,而不是全部放開。
詳情頁:负责被收錄
詳情頁才是有可能带来流量的那一层。如果日誌里顯示詳情頁被抓的次數遠低于入口頁,說明分配出了問题:蜘蛛的精力被消耗在了没有产出的层級上。
一個可用的判断标准:如果连續一周的日誌里,詳情頁抓取占比低于 30%,就要回头检查入口頁和列表頁是不是太吃预算了。
一套可以照着走的分配顺序
- 先保响應:把入口頁和列表頁的服務器响應压稳,避免 5xx 和長時間等待。响應不稳的时候谈分配没有意义。
- 再控入口頁數量:入口頁不是越多越好。與其铺十個内容雷同的入口頁,不如留三個结构清晰、内鏈明确的。
- 收窄列表頁可爬面:用 robots.txt、canonical,或者干脆不輸出連結的方式,把參數组合控制在可管理范围内。
- 给詳情頁留通道:确保每個詳情頁至少有一條来自列表頁或入口頁的稳定連結,不要让蜘蛛只能靠站内搜尋才能找到。
- 按周看日誌再調:對比各层級的抓取次數和返回狀態,把明顯低效的层級砍掉。
几個常见的踩坑方式
- 靠堆入口頁數量換抓取:短期日誌會好看,長期會把预算鎖死在低價值頁面上。
- 詳情頁全靠 sitemap 提交:sitemap 能帮助發現,但如果站内没有連結通路,蜘蛛抓到之後不會繼續往外扩展。
- 忽略 404 與软 404:大量失效頁面會持續消耗预算,该给 410 的就给 410。
- 所有頁面共用一套模板且没有内容差异:這類頁面即使被抓,也很难拿到後續的抓取額度。
结语
抓取预算這件事,本质上不是“怎么让蜘蛛多来”,而是“怎么让蜘蛛把時間花在值得的頁面上”。入口頁、列表頁、詳情頁各司其职,把薄的頁面做轻,把有價值的頁面做通,预算才會更合理地流向产出层。它不能保證收錄,也不能保證排名,但能让有限的抓取次數不被浪費。