抓取预算本质上是资源分配問题
搜尋引擎爬一個站,能投入的资源是有限的。站点頁面越多,這個限制越明顯。它不會因為你交了站点地图就把每個 URL 都抓一遍,而是结合歷史抓取情况、内容更新频率、服務器响應速度等因素,决定下次来花多少時間、抓多少頁。所以常见的情况不是“蜘蛛不来”,而是“来的時間花在了別處”。
哪些頁面在悄悄消耗抓取资源
- 带參數的篩選、排序、價格区間頁,同一批内容能生成几十上百個地址
- 站内搜尋结果頁、用戶中心、需要登入才能看的頁面
- 标簽頁、作者頁、归档頁,内容單薄但連結數量很多
- 分頁列表中翻到很深的位置
- 打印頁、移動版或其他重复版本
- 測試頁、临时活動頁,上线後既没下线也没做限制
- 地址里带 session id、推廣參數产生的重复 URL
這些頁面的共同点是:數量大、價值低、和主推内容關系不大,却因為它們互相連結、參數组合多,被反复發現和抓取。
先看日誌,再動手改
在服務器日誌或日誌分析工具里按蜘蛛 UA 筛一遍,重点看被抓取 URL 的分布:抓取量靠前的地址都是什么類型,抓取最频繁的目錄是不是你希望優先抓的目錄,里面混了多少 3xx、404、5xx。這一步不做,後面的調整基本靠猜。
抓取次數多不等于頁面重要,也可能只是因為它入口多、參數多,被反复撞见。
几個可落地的處理方式
收窄入口
導航、面包屑、相關推荐、站点地图這些位置,尽量只指向真正希望被收錄的頁面。低價值列表頁如果站内没有入口,蜘蛛發現它的机會自然會下降。
分清“不抓”和“不收錄”
robots.txt 的 Disallow 是让蜘蛛別抓,但如果站外有連結指向這個地址,它仍可能只凭連結信息收錄一個没有内容的條目。想明确不收錄,需要頁面本身可被抓取並返回 noindex。两者目的不同,別混用。
處理參數和重复地址
篩選、排序這類參數如果對内容没有實质改變,可以用 canonical 指向規范版本,同时把站内連結统一成不带參數的形式。能做成静態路径的,尽量静態化。
站点地图只放该放的
把分頁、标簽、參數頁统统塞進 sitemap,等于告诉蜘蛛“這些都值得抓”。留主要栏目、文章詳情、必要的分類頁就够了。
服務器別拖後腿
蜘蛛等待响應的時間也算成本。响應慢、频繁超时、間歇性 5xx,會让人家降低来訪频率。這属于服務器维護的基础功课,和内容层面的優化一样重要。
给重要内容多一点存在感
把主推頁面放進首頁、栏目首頁和正文内鏈,缩短点击深度,蜘蛛每次来都會先碰到它們。新增内容分批上线,比一次性放出几萬頁更稳妥,抓取节奏也更均匀。
調整之後看什么
改完別急着下结论,留几周观察期,對比日誌里高價值目錄的抓取占比、404 與 5xx 的數量、被反复抓取的參數頁數量是否下降。抓取预算不是能一键優化的指标,更接近一項長期工作:把入口、结构、响應速度控制在合理范围内,剩下的交给時間。