很多站長把“蜘蛛不来”当成唯一的問题,但實际运营中更常见的情况是:蜘蛛来了,只是把時間花在了没有價值的 URL 上。抓取资源是有限的,站点被浪費的抓取越多,真正需要更新的頁面被重訪的机會就越少。
先分清:哪些抓取算“浪費”
不是所有抓取都要当成浪費。判断标准可以简單一些:這次抓取有没有可能带来一個可索引、有價值的頁面。
- 抓到的 URL 全部返回重定向、404 或 5xx;
- 抓到的頁面内容與已有頁面高度重复,只是參數不同;
- 抓的是篩選、排序、日歷、會话類參數生成的组合頁;
- 抓的是站内搜尋结果頁、會員中心、购物车等本就不该被索引的区域;
- 反复抓取内容几個月没變化的頁面。
浪費通常從哪里来
1. 參數组合
排序(?sort=)、篩選(?color=)、追踪(?from=)、會话(?sid=)這類參數,只要能被連結到,就會被顺着抓。两個參數能组合出四種,三個參數就能组合出八種,數量增長很快。
2. 分頁與日歷
分頁本身没問题,問题出在分頁與篩選叠加,或者日歷可以無限往後翻。這類路径往往没有终点,蜘蛛會在里面绕很久。
3. 重复入口
同一個頁面有 http 與 https、带 www 與不带 www、带斜杠與不带斜杠等多個版本,又没有做規范统一,會被当成多個 URL 分別抓取。
4. 不该被抓的頁面
測試頁、歷史遗留頁面、软 404 頁面,會持續消耗抓取。软 404 尤其麻烦:狀態碼是 200,内容却是“暂無資料”,蜘蛛很难判断该不该留。
從日誌里看抓取去向
把最近的訪問日誌按蜘蛛 UA 筛出来,按 URL 归類統計,重点看三件事:
- 抓取量排名靠前的 URL:如果大多是參數頁、分頁或静態资源,說明路径需要收敛;
- 狀態碼分布:3xx、4xx、5xx 的占比如果明顯偏高,先修错誤,再谈引導;
- 重訪間隔:重要頁面多久被回訪一次,是否比無關頁面還慢。
收敛路径的几個動作
- 统一 URL 形態:确定唯一版本,其他版本 301 到它,站内連結和 Sitemap 只用這一版。
- 參數頁不進入連結体系:篩選结果靠交互或表單触發,不在 HTML 里直接輸出成可抓連結;必须保留的用 canonical 指向主頁面。
- Sitemap 只放想被索引的 URL:不要把分頁、标簽、參數頁一股脑塞進去,清單越長,無效抓取越多。
- 内鏈集中權重:让重要頁面從首頁、栏目頁、相關内容處获得稳定入口,减少只能靠深层分頁到達的頁面。
- 确實無用又不想被抓的路径,用 robots.txt 拦截。注意被拦截的 URL 仍可能留在索引里,需要配合 noindex 一起處理。
- 监控服務器:响應時間過長或频繁 5xx 时,蜘蛛通常會降低抓取频率,恢复需要時間。
服務器稳定性是被忽略的變量
抓取节奏不只由連結结构决定,也受站点响應影响。同一時間大量慢响應、连接超时,會让蜘蛛把抓取速度降下来;等站点恢复,抓取量也不會立刻回到原来水平。扩容、缓存、限制蜘蛛對高消耗接口的訪問,都属于抓取優化的组成部分。
抓取優化不是让蜘蛛抓得更多,而是让它把有限的抓取用在值得的頁面上。
建议的检查节奏
每两到四周做一次日誌复盘,记錄無效抓取占比的變化;發布新功能、改版、上线篩選模块之後,額外看一次日誌,往往能第一時間發現新出現的抓取路径。把观察结果和調整動作對應起来,比一次性做一堆設定更有效。