不少站長看服務器日誌时會發現,蜘蛛每天只来几十次,抓两下就走了。這很容易让人怀疑是不是被限流或者被降權。實际情况通常更平淡:搜尋引擎没有公開的每日配額表,它更像是在分配资源——根據站点規模、更新频率、頁面质量、服務器响應情况,决定愿意在一個站点上花多少時間。額度少,往往不是惩罚,而是這個站点目前可抓取的價值密度不高。
先看清抓取次數落在哪些 URL 上
在動手優化之前,先做一件事:把一段時間的日誌按 URL 類型归類,看清楚蜘蛛到底在抓什么。常见的几類分別是:
- 内容頁、詳情頁
- 栏目頁、列表頁、分頁
- 站内搜尋结果頁、篩選參數组合頁
- 图片、CSS、JS 等静態资源
- 404、410 以及各種跳轉
- 接口、後台、临时測試路径
如果前三類里的内容頁占比很低,而參數頁、静態资源、错誤頁占了大多數,那就說明抓取精力被消耗在了價值不高的地方,這是最该先處理的部分。
常见的几種浪費
參數组合與無限篩選
篩選頁每多一個條件,就可能多出一批 URL,组合數量轻易上萬。蜘蛛會不断尝试,但這些组合頁几乎没有獨立内容,抓了也很难带来有效收錄。
多跳重定向
A 跳到 B、B 又跳到 C 的鏈式跳轉,每一次都要多消耗一次請求。跳轉鏈越長,浪費越明顯,最好把鏈路压到一跳直達最终地址。
長期存在的大量错誤返回碼
如果站点里長期挂着大批 404、410,蜘蛛仍會反复確認這些地址是否恢复,這部分抓取基本没有产出。
体积過大與响應偏慢的頁面
一個几 MB 的頁面和一個两百 KB 的頁面,占用的抓取時間差很多。服務器响應時間偏高时,同样的時間能抓的頁面數量會明顯减少。
让重要頁面更容易被抓到
缩短点击深度
從首頁到内容頁的层級越浅,蜘蛛在有限次數内越容易触達。如果詳情頁只能從很深的列表或站内搜尋進入,被抓到的概率自然低。
给出稳定、明确的内鏈入口
- 栏目頁指向最新或最值得看的几篇内容
- 正文内的相關推荐保持真實相關性
- 列表連結尽量直接輸出在 HTML 里,不要全依赖异步加载
Sitemap 只放希望被收錄的 URL
把參數頁、搜尋结果頁也塞進 Sitemap,等于主動扩大抓取面,让蜘蛛把時間花在你並不需要的地方。Sitemap 是提示優先級的工具,不是收錄保證。
與其提交一萬個 URL,不如让几百個真正重要的地址被稳定抓到。
更新时给出可感知的信号
新内容上线後,從已经有抓取频率的頁面加一條内鏈進去,通常比孤立發布更容易被發現。老頁面有實质更新时,也可以從相關頁面重新建立入口。
收敛低價值 URL
- 先判断這類頁面是否真有獨立價值,別急着全删
- 纯组合型參數頁若不需被索引,優先用 robots.txt 屏蔽抓取
- 需要保留但不想進索引的,用 noindex,注意它仍需要被抓取一次才能讀到指令
- 内容重复的多個地址,用 canonical 收敛到主版本
- 分頁按實际需要决定保留几层,越靠後的頁碼價值越低
服務器层面也別忽略
响應時間是否稳定、有没有频繁的 5xx、是否存在對蜘蛛返回不同内容的情况,都會影响搜尋引擎愿不愿意多来。這些可以先從服務器监控里的响應時間趋势看出来。
用資料驗證,而不是凭感觉
調整完隔几周再對比一次日誌:内容頁的抓取占比有没有上升,新 URL 從發布到首次被抓的間隔有没有缩短,收錄數量有没有随之變化。抓取額度不是一天就能提上去的,它更像是站点整体质量的副产品。短期内能做好的,是別把有限的請求浪費在没有價值的地址上。