站点运营

站点运营:抓取预算自查,把蜘蛛從低價值頁面上引開

蜘蛛的抓取能力有限,請求怎么分配取决于它認為哪些地址值得抓。這篇讲怎么用日誌看清抓取都落在哪些目錄、哪些頁面在白白消耗額度,以及用 robots、noindex、入口控制等手段把蜘蛛引向真正需要被發現的内容。

站点运营

站点运营:抓取预算自查,把蜘蛛從低價值頁面上引開

很多站長把蜘蛛来訪看成一件越多越好的事,每天盯着日誌里的抓取次數,數字一下降就着急。但蜘蛛的抓取能力是有限的:對同一個站点,它在一段時間内愿意發起的請求數量大致有個上限,這些請求怎么分配,取决于它判断哪些地址更值得爬。這就是常说的抓取预算(crawl budget)。

抓取预算不是發配額,更像做取舍

搜尋引擎不會给每個站点發一張固定額度的票。它更像是在權衡:一邊是站点体量、更新频率、服務器响應速度,另一邊是歷史抓取的效果——抓回去的頁面有多少新内容、有多少是重复的、有多少根本打不開。当它發現某個目錄翻来覆去都是相似的地址,或者经常返回 5xx,自然會把請求挪到別處去。

所以抓取量下滑往往不是惩罚,而是它在重新判断哪些地址有價值。想改善,重点不在于催它多来,而是把它從低價值路径上引開。

哪些頁面最容易吃掉抓取

  • 參數组合頁:颜色、尺寸、排序、分頁叠加出来的地址,數量可能是内容頁的几十倍。
  • 站内搜尋结果頁:几乎每個關鍵詞都能生成一個頁面,内容還高度重复。
  • 空壳列表頁:分頁翻到後面只剩两三條内容,或者归档、日歷翻到没有内容的月份。
  • 重复内容頁:同一篇文章因為不同入口生成了多個地址,蜘蛛逐個爬完,拿到的却是同样的信息。
  • 埋得很深的頁面:需要点十几次才能到達,未必爬不到,但排队位置會很靠後。

用日誌做一次抓取分配自查

按目錄統計抓取占比

把日誌里蜘蛛的請求按路径前缀分组,看看請求量集中在哪些目錄。如果绝大部分落在參數頁、搜尋頁或歷史归档上,就說明抓取方向偏了,真正需要更新的栏目反而没被覆盖到。

看狀態碼分布

統計 200、301、404、5xx 各自的比例。5xx 比例偏高时,先解决服務器稳定性和响應時間,再谈抓取分配——服務器抖動时,任何结构調整的效果都會被抵消。

看有没有反复爬同一批地址

如果一批地址在短時間内被多次抓取,而頁面内容並没有變化,這些請求基本属于無效消耗。把它們列出来,通常就是下一步要處理的名單。

常见的几種處理方式

  1. 用 robots.txt 屏蔽整類地址:适合站内搜尋頁、内部接口、纯參數组合這類确定不需要被抓取的目錄。
  2. 给留存頁面加 noindex:頁面還需要用戶訪問、但不希望它參與索引时使用,注意它挡的是索引而不是抓取。
  3. 合並或收敛重复地址:能统一的入口统一,能合並的頁面合並,別让同一份内容散成十几個 URL。
  4. 减少入口連結:少在導航、侧栏、頁脚里堆全量連結,尤其是标簽、归档、排行榜這類大列表。
  5. Sitemap 只放需要發現的高價值地址:把地图当清單塞满低质頁面,等于自己给蜘蛛指了错路。
  6. 控制分頁深度:前几頁给正常入口,後面的頁碼不要整片铺在頁面上。
robots.txt 管的是抓取,noindex 管的是索引,两者不能互相替代。想减少抓取就用 robots.txt,但要確認這些地址以後确實不需要被爬;想保留頁面但不让它參與索引,才用 noindex。用错方向,既省不下抓取,還可能把该保留的頁面挡在门外。

抓取量突然下滑,先排查這几處

  • 服務器近期是否频繁超时或返回 5xx。
  • robots.txt 是否被誤改,屏蔽了整站或大批目錄。
  • 是否上线了大量新地址,把抓取分散到了低质頁面上。
  • 是否新增了复杂參數或多层篩選,導致地址數量暴涨。
  • 内鏈结构是否變動,主要栏目是否被移出了導航。

抓取预算這件事没有一次性解决方案,它更像定期体检:每隔一段時間翻翻日誌,看蜘蛛把時間花在哪,然後做小幅調整。站点结构清晰、更新稳定、服務器可靠,抓取自然會往有價值的方向倾斜。