站点改版、換域名或調整目錄结构之後,很多站点會遇到同一個現象:新 URL 已经開始被抓取,舊 URL 却還挂在搜尋结果里,短則几周,長則几個月都没退干净。這通常不是搜尋引擎反應慢,而是站点同时發出了互相矛盾的信号。下面按由内到外的顺序,整理一份可以照着做的核對流程。
先明确:這是两個獨立的問题
舊 URL 登出索引和新 URL 進入索引是两件事,节奏並不一样。新 URL 能不能被收錄,取决于它是否被抓取、内容是否達标;舊 URL 什么时候消失,取决于重定向是否稳定、外部引用是否還在、以及索引自身的更新周期。把两件事混在一起看,很容易誤判成改版失敗。
第一层:重定向本身是否干净
狀態碼用對,不要中途反复切
永久迁移用 301,方案還没定下来之前用 302。麻烦的是先用 302、過一阵再換 301,或者反過来来回切——搜尋引擎會反复重新判断,舊 URL 在索引里的停留時間會被拉長。确定最终结构之後,尽量一次定下来,不要频繁改動。
避免鏈式跳轉和目标不统一
A 跳到 B、B 再跳到 C 的鏈式重定向會增加抓取成本,也让信号传递變得模糊。理想狀態是一跳到位:舊 URL 直接 301 到最终的新 URL。同时要注意同一批舊地址不要一部分跳新域名、一部分跳 www 版本,目标不统一會让新舊版本在索引里同时出現。
第二层:站内信号是否已经切換
内鏈、導航與面包屑
如果站内還有大量連結指向舊 URL,搜尋引擎每次抓取都在重新確認舊地址是活着的。改版时建议同步更新主導航、面包屑、相關推荐以及正文里的站内連結,让站内绝大多數入口都指向新 URL。
站点地图與抓取入口
提交新的站点地图,只包含新 URL;舊 URL 不必再長期放在里面。如果舊地址數量很大,可以短時間保留一部分便于發現重定向,但不要長期混放,否則等于同时告诉搜尋引擎两套地址都重要。
canonical 不要與重定向打架
舊頁面如果還能訪問,且頁面上寫着指向自己的 canonical,就會和 301 形成冲突。改版後更稳妥的做法是让舊地址直接做重定向,而不是保留舊頁面再靠 canonical 兜底。
第三层:舊地址怎么收尾
重定向不是越快删掉越好。只要舊 URL 還有外鏈、還有用戶点击、還有自然流量,保留 301 通常比直接返回 404 或 410 更稳。反過来,如果確認某個舊地址從未被引用、内容也已彻底废弃,用 404 或 410 让它明确消失是合理的。判断依據是資料,不是感觉。
几個常见踩坑
- 一次性把几萬個 URL 全部切換,短時間内产生大量新地址,抓取预算被摊薄,新頁面進入索引的速度反而更慢。
- 舊路径直接返回 404 而没有重定向,外部連結带来的流量一起断掉。
- 重定向目标返回 200,但内容是空頁或错誤提示,形成软 404。
- 新 URL 上线後内容還是占位模板,抓取到了也难以進入索引。
- 只改了服務器配置,忘了同步更新站内連結和站点地图。
可执行的核對顺序
- 確認最终 URL 規則:协议、域名、目錄、尾斜杠全部统一。
- 抽查舊 URL 的响應:是否 301、是否一跳到位、目标地址是否正确。
- 检查站内入口:導航、面包屑、正文内鏈是否都指向新 URL。
- 提交新站点地图,核對其中不混入舊地址。
- 排查 canonical 與重定向之間是否冲突。
- 观察一段時間後,再决定舊地址是繼續保留 301 還是收回 404。
改版後的收錄接替,本质是让站内所有信号指向同一個答案。信号越一致,判断過程越短。
最後提醒一句:舊 URL 從索引里登出需要時間,這一点站点無法直接控制。能控制的是重定向是否稳定、入口是否统一、新頁面是否值得被索引。把這三点做扎實,剩下的交给正常的抓取周期即可。