蜘蛛池的入口頁不是上线之後就一劳永逸的。做站群或资源池的人经常會遇到同一批入口頁里某几個不再需要:域名要轉手、目标頁換了主题、或者這批入口的抓取表現一直不理想。入口頁停用看起来只是删文件或改跳轉,但處理顺序不對,容易把已经形成的抓取节奏、外部連結和日誌資料一起弄乱。
先分清三種“下线”
临时停用
服務器维護、迁移、故障排查属于临时停用。這種场景下 URL 本身還要繼續用,所以不适合返回 404,也不适合 301 到一個临时頁面。比較稳妥的做法是返回 503 並带上 Retry-After 头,告诉蜘蛛過一段時間再来。注意 503 不宜長期挂着,超過几周的 503 通常會被当成永久不可用處理。
永久废弃
確認這批入口頁以後都不會再用,才算永久废弃。此时要做的是让蜘蛛尽快把 URL 從待抓取队列里清出去,同时把原来指向它的内鏈、外鏈處理干净。永久废弃不等于马上删服務器上的文件,中間要有過渡期。
迁移換址
入口頁換到新域名或新 URL 结构,属于迁移。迁移和废弃最大的区別是:迁移有明确的對應關系,废弃没有。有對應關系的用 301,並且尽量一對一映射,不要把所有舊 URL 都 301 到同一個新首頁,那样蜘蛛很难判断對應關系。
狀態碼怎么選
- 404:内容确實不存在,但你没有做額外處理。语义偏中性,蜘蛛可能需要多抓几次才會放弃。
- 410:明确表示永久移除。對已经確認要废弃的入口頁,反馈通常比 404 更直接,重复抓取的次數往往會少一些。
- 503:临时不可用,只适合维護窗口,不适合拿来当長期挡箭牌。
- 301:有明确替換目标时使用。跳轉鏈不要超過一跳,A 到 B 到 C 這種鏈式跳轉會浪費抓取预算。
無论選哪種,都要保證整批入口頁的處理方式一致。同一批里有的返回 404、有的返回 200 空白頁,蜘蛛會認為站点狀態不稳定。
收尾動作清單
- 先摘連結,再改狀態碼。把其他入口頁、目标頁、站内導航里指向待下线 URL 的連結去掉或替換,避免蜘蛛顺着連結反复撞到死鏈。
- 分批處理,不要一次全停。一次下线几十上百個入口,服務器狀態碼分布會剧烈變化,日誌里也看不出是正常調整還是出了問题。建议按批次間隔几天。
- 保留一段观察期。狀態碼改完之後繼續看訪問日誌,確認抓取量逐步回落、没有出現異常的 5xx 堆积。
- 處理附属资源。域名解析、SSL 證书、CDN 配置、獨立 IP,如果确定不再复用,到期前就该規划,別让證书悄悄過期又留着解析记錄。
- 归档日誌和配置。下线前把该入口頁的抓取记錄、狀態碼分布、跳轉配置存一份。以後复盘资源池效果时,這些是最直接的依據。
容易踩的几個坑
- 把 301 当成萬能回收站。没有對應目标却硬指到一個新頁面,等于给蜘蛛传递错誤信号,還會把原本分散的連結權重堆到一個不相關的頁面上。
- 只删文件不改配置。Web 服務器預設返回 404 和主動配置 410 是两回事,反向代理、伪静態規則没清干净时,可能出現 200 空白頁這種最糟糕的结果。
- 顺手把 robots.txt 全站屏蔽。為了清掉几個入口頁而屏蔽整站,會影响還在正常使用的入口頁。
- 下线後立刻停服務器。蜘蛛可能還會来訪几次,直接连不上會變成连接超时,這類记錄在日誌里很难和真正的故障区分。
什么时候算真正下线完成
比較實际的判断标准有三條:日誌里该 URL 的抓取频次降到接近零;同批入口頁的狀態碼分布保持稳定,没有新的 5xx;站内已经没有指向它的連結。三條都满足,就可以把解析和文件彻底清掉了。
入口頁退役和上线一样,是资源池日常维護的一部分。把它当成一次小規模的站点變更来處理,比临时起意删文件要省事得多。