改版、換域名、調整目錄结构,都會让一批 URL 失效。蜘蛛手里存着舊地址,如果它訪問舊地址时得不到明确指向,就會把舊頁面标记成失效,而新頁面要等下一次發現。這個過程里,你能控制的部分其實不少。
蜘蛛在改版中最容易卡住的三個地方
第一個是舊地址返回的内容含糊。比如直接返回首頁内容,或者用 200 狀態碼返回一段提示文字,蜘蛛很难判断這到底是迁移,還是頁面換了内容。
第二個是重定向鏈條太長。A 跳 B,B 跳 C,C 才是最终頁面。每多一跳,就多一次請求和一次等待,鏈條過長时蜘蛛可能在中間就放弃了。
第三個是新舊两套地址同时可訪問。内容一样、地址不同,蜘蛛會当成獨立頁面分別處理,抓取量和頁面信号都被分散。
第一步:把映射關系寫清楚
最省事的做法是让舊地址直接 301 到最终的新地址,跳過中間环节。
- 一對一:舊文章頁 301 到對應的新文章頁。
- 多對一:舊分類下多個子頁合並成新分類頁时,全部 301 到新分類頁。
- 确實没有對應内容:返回 410 或 404,別硬跳到首頁。
302 表示临时跳轉,蜘蛛會保留舊地址繼續观察;确定不再回退时用 301 更合适。另外,尽量別用 JavaScript 或 meta refresh 做跳轉,蜘蛛對這两者的處理不如 HTTP 狀態碼直接。
第二步:站内連結要一起換,不能只靠重定向
重定向解决的是“已经知道舊地址”的蜘蛛。站内導航、面包屑、正文里指向舊地址的連結,如果不改,蜘蛛每次爬到這里都要多走一次重定向,抓取效率被白白消耗。
改版上线前,可以把站内所有内鏈做一次全量替換;改版後再抽查几類高频頁面:首頁導航、频道頁列表、文章正文里的相關推荐。
重定向是兜底手段,不是長期方案。一條連結長期靠 301 才能到達目标,說明站内還有没清理干净的舊地址。
第三步:让 Sitemap 反映真實情况
Sitemap 里應该只保留能正常訪問、且希望被收錄的新地址。舊地址如果已经 301,就没必要繼續留在 Sitemap 里反复提交,两者给出的信号會互相干扰。
如果改版是分批上线的,可以按批次更新 Sitemap 並提交,让蜘蛛按节奏發現,而不是一次性把所有新 URL 全推過去,造成短時間内的抓取高峰。
服務器稳定性决定蜘蛛愿不愿意多待
改版期間訪問量和抓取频次往往同时上升。如果服務器响應時間明顯變長,或者開始出現 503、连接超时,蜘蛛會降低抓取频率,新頁面的發現速度反而更慢。
- 改版窗口尽量選在站点訪問低谷期。
- 關注 5xx 比例,別让它持續出現在日誌里。
- 大站可以先用小范围目錄驗證跳轉是否正确,再全量切換。
上线後的自查清單
- 随机抽 20 個舊地址,看是否一步到位跳到新地址。
- 检查是否存在舊地址和新地址同时返回 200 的情况。
- 確認 Sitemap 里没有混入失效地址。
- 看服務器日誌里,新地址的抓取比例是否在上升。
- 確認站内導航和正文内鏈没有残留舊路径。
改版不是一次性動作,而是让蜘蛛重新認识一批地址的過程。把跳轉、内鏈、Sitemap 這三件事對齐,蜘蛛走完這段路的成本會低很多,新頁面進入正常抓取节奏的時間也更可控。