谈收錄时,很多人先問「為什么這個頁面没被收錄」,很少先問「蜘蛛来的时候在做什么」。蜘蛛在你站点上的抓取能力是有限的:單次来訪能抓多少 URL、多久来一次,都會受服務器响應速度、站点規模和自身調度影响。如果大量抓取被消耗在没什么價值、甚至不该進索引的地址上,重要頁面被發現和重新抓取的机會就會變少。這里说的「抓取预算」不是官方指标,但用它来观察問题很實用。
哪些 URL 最容易吃掉抓取
參數、篩選與排序的组合
列表頁上的排序、篩選、價格区間、视图切換,很容易组合出成千上萬個 URL。這些地址通常指向同一批内容,蜘蛛一個個抓過去,拿到的有效信息却是重复的。抓得越多,真正需要更新的詳情頁反而被挤到後面。
站内搜尋结果頁
带關鍵詞參數的搜尋頁數量近似無限,而且内容會随查询變化。它們對用戶有價值,但作為收錄對象意义不大,却往往消耗了不少抓取次數。
已经失效、站内還有入口的地址
改版後残留的舊連結、下线活動的地址,如果頁面上還有連結指向,蜘蛛每次顺着走一趟都是消耗。比這更麻烦的是這類頁面還返回 200 並展示一段空内容,會被反复重抓。失效地址建议明确返回 404 或 410,让它尽快登出抓取循环。
体积大或响應慢的资源
一次抓取里下载几十 MB 的 PDF,或者某個頁面响應要十几秒,都會拖慢整体节奏。蜘蛛在等待期間,本来可以抓的其他頁面就被耽誤了。
從日誌里看抓取分配
判断预算是否被浪費,最直接的办法是看服務器日誌,按下面几個维度切一遍:
- 按响應碼統計:返回 200 的抓取里,有多少落在參數頁、搜尋頁和重复内容頁上;
- 按目錄統計抓取次數:哪些目錄被反复抓,哪些目錄几乎没有被抓過;
- 看時間變化:上新栏目或改版之後,老 URL 是否還占着大头;
- 看响應時間分布:慢 URL 的比例有多高,是否集中在某几類頁面上。
這几項交叉看,通常就能判断是「抓得不够」還是「抓得不對」。如果是前者,問题更多在頁面质量和收錄策略;如果是後者,先把入口收敛掉更划算。
處理顺序:先改連結,再谈屏蔽
- 先用日誌確認低價值 URL 确實占用了可观的抓取量,而不是凭感觉下手;
- 能從站内連結、sitemap 里拿掉的先拿掉,這比屏蔽更彻底;
- 确實不该被抓的地址,可以寫進 robots.txt,但要清楚:被屏蔽不等于不會出現在索引里,它只是减少了抓取;
- 失效頁面明确返回 404 或 410,不要用 200 空頁或長時間跳轉糊過去;
- 保留必要的參數頁时,用 canonical 把重复版本指到規范地址,减少蜘蛛在相似内容間的来回。
抓取和收錄是两件事。把抓取机會腾给重要頁面,只是让它們有更多被重新抓取、重新评估的可能,並不等于一定收錄,更不等于有排名。
還有一個常被忽略的變量:入口深度
蜘蛛的時間也花在「找路」上。如果重要頁面只能通過多級分頁或很深的栏目层級到達,抓取過程中會顺路消耗掉大量中間頁面。站内連結尽量扁平、導航和聚合入口保持稳定,能让蜘蛛更快走到真正需要更新的地址。反過来,如果一個頁面在站内没有任何入口,只靠 sitemap 提示,它的重抓频率通常也不會高。
把這件事做成定期動作
抓取分配會随站点變化:改版、上新栏目、調整參數規則,都會让分布重新洗牌。與其一次性優化完就不管,不如每隔一段時間回看一次日誌分布,重点確認三件事:重要頁面的重抓频率有没有下降,低價值 URL 的占比有没有回升,以及新上线的頁面有没有在合理時間内被爬到。這三点稳定了,收錄的底子通常就比較扎實。