先把“抓取预算”说清楚
蜘蛛在一段時間内對某個站点的訪問次數,是有上限的。這個上限受服務器响應速度、頁面總量、站点整体表現、歷史抓取记錄等因素影响。我們没办法直接设一個數字,但可以通過站内结构和連結安排,間接影响蜘蛛把時間花在哪里。
換句话说,抓取预算就是“站点在一段時間里能被抓取多少次”。如果站内堆了大量低價值地址,它們會分走一部分訪問,让真正想被看到的頁面排在後面。要做的不是把所有頁面都推给蜘蛛,而是把明顯不值得抓的地址收敛掉。
哪些頁面在悄悄消耗訪問次數
- 參數组合頁:篩選、排序、價格区間、颜色尺碼叠加,容易生成成千上萬個地址,内容高度重复。
- 分頁的深尾:列表頁翻到几十頁之後,多數已经没什么獨立價值。
- 标簽與聚合頁:自動生成、長期無人维護,數量增長很快。
- 站内搜尋结果頁:用戶輸入什么就生成什么,地址近乎無限。
- 日歷、時間轴類頁面:可以無限向後延伸,實际訪問者极少。
- 带 session 或追踪參數的地址:同一個頁面出現多種寫法。
- 孤岛頁面:没有任何内鏈指向,只能靠提交被發現,抓取優先級低。
這些類型不一定要全部清掉,但如果它們占了站内地址的多數,就值得處理。
自查:先看清現状再動手
- 讀取服務器訪問日誌,按路径類型統計蜘蛛訪問量:首頁、栏目、詳情、篩選、搜尋、分頁各占多少。
- 對比 sitemap 或提交列表里的 URL 總量,與真正有内容、值得被訪問的頁面數量。
- 找出被抓取次數最多、却几乎没有自然訪問的路径類型。
- 记錄一次基线,處理後在相近時間段再做一次對比。
判断标准不是“這個頁面有没有流量”,而是“它值不值得占用一次抓取”。
處理顺序:先收敛,再引導
收敛可抓取地址
- 篩選、排序等參數:能用 robots.txt 按參數模式屏蔽的就屏蔽,或用 canonical 指回預設列表頁。
- 不该出現在索引里的頁面,比如站内搜尋、測試頁、後台入口:用 noindex 處理。注意被 robots.txt 屏蔽的頁面,蜘蛛看不到上面的 noindex 指令,两者不要混用。
- 分頁深尾:限制可翻頁的數量,或让更深的頁只能通過“下一頁”進入,不寫進 sitemap。
- 追踪參數:在站内生成連結时就去掉,不要指望事後统一清理。
把重要頁面放到更浅的位置
- 在導航、面包屑、相關推荐里给核心栏目和詳情頁固定入口。
- sitemap 只保留希望被發現、也愿意對外展示的頁面。
- 压缩层級,让首頁到核心頁面不超過三四次点击。
別忽略响應速度
响應慢會直接压低單位時間内的抓取量。首字节時間、大图、阻塞脚本這類問题,處理收益往往比調整抓取引導更直接。
容易做错的地方
- 一次性大規模屏蔽,原本有訪問的頁面掉出索引,事後不好恢复。
- robots.txt 挡住整段目錄,把该抓的頁面一起挡了。
- 给已有訪問量的頁面直接加 noindex,却没有准备替代頁面。
- 只看總量不看结构,處理完没有資料可以對比。
把它變成固定動作
抓取预算不是調一次就結束的事。内容在增長,栏目在調整,篩選功能的參數也在變。建议在改版、新增篩選功能、批量導入内容之後,各查一次日誌,看看路径分布有没有變化。
抓取量增加不等于内容被索引,被索引也不等于有訪問。這一步的作用是减少無效消耗,让蜘蛛来訪时更容易碰到你真正想让它看到的頁面。