站点改版、栏目調整、URL 規則重构之後,最容易出問题的不是新頁面長什么样,而是新舊两套地址同时活着。搜尋引擎手上既有舊 URL 的歷史记錄,又會不断抓到新 URL,两邊都能返回 200,索引里就容易出現两份内容。下面按“先確認、再退场、後接上”的顺序梳理一遍。
一、先確認變化范围,不要一刀切
不是所有改版都需要處理 URL。先分三類:
- 只改模板和样式,地址没變:不用管跳轉,關注渲染效果和内容是否變化即可。
- 只改了參數、大小寫、末尾斜杠:這類属于同一頁面的變体,優先用 canonical 和站内連結统一,不必大動干戈。
- 目錄结构或文件名真的變了:這才是需要 301 和退场流程的部分。
把變化清單拉出来(舊地址 → 新地址),改版過程中最容易漏的是那些没有内鏈、只靠外鏈進来的頁面。
二、301 跳轉:一條直线,不要绕路
三個原則值得记住:
- 直接跳到最终地址。A→B→C 這種鏈式跳轉會让抓取多绕一圈,中間任何一环出問题,最终地址都拿不到信号。
- 不要统一跳到首頁。相關頁面之間跳轉才有意义,全站 301 到首頁,等于告诉搜尋引擎這些内容都不存在了。
- 舊地址保持可訪問。301 不是临时手段,至少要保留到搜尋引擎基本完成替換,重要頁面建议長期保留。
如果舊地址既做了 301,又在 robots.txt 里屏蔽抓取,搜尋引擎可能讀不到跳轉目标,迁移效果會打折扣。這两件事不要同时做。
三、舊地址退场的大致顺序
顺序错了,容易出現新舊同时被索引,或者舊地址先消失、新地址迟迟不被發現的情况。
- 先改站内:導航、面包屑、正文内鏈、相關推荐,全部指向新地址。
- 更新 sitemap,只保留新地址,重新提交。
- 確認新頁面自身正常:可抓取、返回 200、canonical 指向自己、没有被 noindex 誤伤。
- 舊地址做 301,指向對應的新地址,而不是列表頁或首頁。
- 观察一段時間,看舊地址在索引里逐步减少、新地址逐步出現。
- 確認替換基本完成後,再對确實没有對應内容的舊地址用 404 / 410 收口。
四、让新地址更快被接上
- 内鏈是主要入口。新頁面至少有来自栏目頁或相關文章的連結,不要只靠 sitemap。
- 站内搜尋、标簽頁、聚合入口可以顺带把新 URL 暴露出来,但注意別制造大量带參數的重复地址。
- 看抓取日誌里新 URL 的出現频次,如果長時間為零,先查是不是被 robots 拦了,或者連結层級太深。
- 老頁面本身有流量的,可以在原文位置保留指向新地址的連結,帮助用戶和外鏈自然過渡。
五、几個常见的踩坑点
- 用 JS 跳轉、meta refresh 代替 301。搜尋引擎對它們的處理不如 301 明确,能不用就不用。
- 新舊地址同时返回 200,内容也一样。典型的重复内容场景,索引里會挑一個,未必是你想要的那個。
- 只改了一部分内鏈。剩下的舊連結會持續把抓取引向舊地址,拖慢替換。
- 迁移期間顺带大改内容。地址變了、内容也變了,後續排查問题时很难分清是哪個原因。
六、怎么判断迁移做得差不多了
可以關注几個信号:抓取日誌里 301 的命中次數是否在下降;新地址在索引中的數量是否稳定增長;舊地址是否逐步减少;搜尋结果里的落地頁是否已经換成新地址。這几項都在往好的方向走,說明迁移基本走通。如果舊地址長期還在索引里,先检查跳轉是否可達、新頁面是否可索引,而不是急着删頁面。
改版迁移很难一步到位,本质是把“舊地址退场、新地址接管”這件事按顺序做完整。顺序對,剩下的就是等待和观察。