搜尋抓取

站点改版換 URL:让蜘蛛從舊地址顺利走到新地址

改版、換目錄、合並栏目都會产生一批失效 URL。本文從重定向映射、站内内鏈替換、Sitemap 更新和服務器稳定性四個角度,說明怎么让蜘蛛在改版期間顺利從舊地址走到新地址,减少抓取浪費,也让新頁面更快回到正常的抓取节奏里。

搜尋抓取

站点改版換 URL:让蜘蛛從舊地址顺利走到新地址

改版、換域名、調整目錄结构,都會让一批 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 比例,別让它持續出現在日誌里。
  • 大站可以先用小范围目錄驗證跳轉是否正确,再全量切換。

上线後的自查清單

  1. 随机抽 20 個舊地址,看是否一步到位跳到新地址。
  2. 检查是否存在舊地址和新地址同时返回 200 的情况。
  3. 確認 Sitemap 里没有混入失效地址。
  4. 看服務器日誌里,新地址的抓取比例是否在上升。
  5. 確認站内導航和正文内鏈没有残留舊路径。

改版不是一次性動作,而是让蜘蛛重新認识一批地址的過程。把跳轉、内鏈、Sitemap 這三件事對齐,蜘蛛走完這段路的成本會低很多,新頁面進入正常抓取节奏的時間也更可控。