搜尋抓取

站点改版期的抓取過渡:新舊 URL 並行时该怎么安排

改版、換目錄或調整栏目结构时,最容易出問题的不是舊頁面失效,而是新舊 URL 同时可訪問、抓取路径被拉長。本文從映射表、重定向、内鏈與 Sitemap、日誌對帳几個环节,讲清改版期如何让搜尋蜘蛛顺利從舊地址過渡到新地址。

搜尋抓取

站点改版期的抓取過渡:新舊 URL 並行时该怎么安排

換域名、調目錄、把栏目從一层拆成两层,這些改版動作都會让站点出現一批新 URL。對搜尋蜘蛛来说,改版期最麻烦的往往不是舊頁面消失,而是同一份内容同时挂着两個地址:舊的還能打開,新的也已经上线。抓取路径被拉長,URL 發現變慢,抓取频次和收錄資料會在几周内来回摆動。

這篇说的是纯执行层面的過渡安排:在改版前後有限的時間里,怎么让蜘蛛更快地把抓取重心從舊地址挪到新地址。

改版期抓取容易出的三類問题

  • 新舊並存:舊地址返回 200,新地址也返回 200,两份内容几乎一样。蜘蛛不知道哪個是正主,抓取量被摊薄,两個地址的權重都被拖住。
  • 路径断裂:舊栏目頁整批下线,但站内導航、面包屑、文章底部的相關推荐還指向舊地址,蜘蛛顺着内鏈走進去只能拿到 404 或跳轉鏈。
  • 發現變慢:新 URL 只靠在 Sitemap 里列一遍,站内没有任何入口指向它。蜘蛛能看到清單,却缺少内鏈信号,抓取優先級自然排不上去。

動手前先固定一張 URL 映射表

映射表是整件事的地基。它不需要多复杂,一張两列的表格就够:左邊舊 URL,右邊新 URL;不一一對應的,右邊寫清規則,例如某個栏目整体迁到了哪個前缀下。做表时注意几点:

  1. 以實际可訪問的 URL 為准,不要凭记忆寫。用抓取工具或日誌把舊站地址拉全,包括带參數的分頁、篩選頁。
  2. 確認舊站與新站的 URL 归一化規則一致,避免大小寫、结尾斜杠、參數顺序在迁移後产生新的重复。
  3. 把没有對應新地址的舊 URL 單獨标出来,這類頁面是後續要做 410 還是保留跳轉到上一层栏目,需要提前定,而不是等上线後再补。
  4. 映射表要留版本号。改版過程中需求會變,回头翻舊版能省很多解释成本。

並行期的重心:让權重落到新地址

並行期通常在几周到几個月之間。這段時間的目标不是把舊地址立刻抹掉,而是让蜘蛛每次来訪都能更明确地走到新地址。

重定向

舊 URL 到新 URL 尽量用單跳的永久重定向,一跳到底,不要让蜘蛛连續穿過多层跳轉。跳轉鏈越長,抓取时被中断的概率越高。分頁、篩選類參數頁可以按規則映射,實在没有對應頁面时,退到上一級栏目比跳回首頁更贴近语义。上线後要抽查,別只看首頁,抽查几個深层頁面更有效。

内鏈與導航

新站的導航、面包屑、列表頁、相關推荐,全部指向新地址,這一点必须在上线时同步做完。舊地址如果還留在内鏈里,蜘蛛會不断顺着舊鏈走,等于自己把抓取路径往回拽。站内搜尋、标簽頁這類動態生成的入口容易被漏掉,需要一起检查。

Sitemap

改版後的 Sitemap 只放新地址,這與映射表並不冲突:映射表是给团队看的,Sitemap 是给蜘蛛看的。舊地址的清單可以逐步缩减,但不必立刻清空,等日誌顯示新地址的抓取已经稳定再说。Sitemap 里的地址數量較大时,按栏目分片比堆在一個文件里更容易观察哪一块還没被抓。

用日誌做抓取過渡的對帳

做完上面几步,判断标准不在後台的 URL 總數,而在日誌里蜘蛛到底在抓什么。挑一張表,把三類資料放進去:新 URL 是否被請求、每次請求的狀態碼、抓取来源(是從内鏈進来的,還是從 Sitemap 進来的)。

看两條曲线就够了:新 URL 的請求量是否在稳步上升,舊 URL 的請求量是否在同步下降。如果新地址的請求主要来自 Sitemap,几乎没有内鏈来源,說明站内入口還没接好。如果舊地址的狀態碼大量是 200 而不是重定向,說明還有入口在把蜘蛛往舊路径上引。

几個容易被忽略的地方

  • 只改主站,忘了移動站或子域名下的镜像版本,两套地址各自被蜘蛛發現。
  • 外鏈和合作方連結更新滞後,属于不可控因素,只能靠重定向兜住,不必等它們改完再上线。
  • 改版同时叠加了内容調整、模板重构、服務器切換,出問题时排查會變得很困难。能分開的步骤尽量分開。
過渡期的判断标准不是“舊地址删干净了没有”,而是蜘蛛的抓取记錄里,新地址的請求是否已经占住主要份額,並且能稳定拿到 200。

整個過程里最值得投入時間的,其實是改版前那張映射表和上线後的日誌對帳。前一步决定路径通不通,後一步决定你有没有判断依據。两邊都做實了,剩下的就是给蜘蛛一点時間。