網站改版、栏目調整、系統更換,都會带来一批 URL 的變化。迁移做得好,老地址平滑過渡到新地址;做得糙,老地址直接 404,之前积累的外鏈和用戶书簽全都落空。301 映射表是這件事的核心,但真正麻烦的不是寫跳轉規則,而是把所有需要跳的地址找全、對應關系定對、跳轉本身不出岔子。
一、先把老地址清單拉全
只凭印象列几個主要栏目遠遠不够。老站点執行几年,往往沉淀了大量入口頁、标簽頁、分頁、參數頁和歷史上改過名的目錄。建议從下面几個来源交叉整理:
- 服務器訪問日誌:改版前几周的日誌里,被真實訪問過、被抓取過的地址,優先級最高。
- 舊版 XML 站点地图:能反映当时對外提交過的地址范围。
- 站内連結與導航:頁面里互相指向的舊地址,改版後如果没替換,會變成站内 404。
- 外部連結:能查到的主要外鏈来源頁面,它們指向的老地址不能断。
- 搜尋表現資料:有展現和点击的落地頁,說明這些地址仍在被使用。
把這几份清單合並去重,形成一個待處理的老 URL 列表。數量可能比预想的多,但這正是後面映射表的基础。
二、定好新舊對應關系
不是每個老地址都能找到一一對應的新頁面。常见情况有三類,處理方式不同:
一對一
内容基本對應,直接跳到新地址即可。注意跳轉目标必须是最终可訪問的頁面,不要跳到另一個會再跳一次的地址。
多對一
多個老地址(比如带不同參數的同一篇文章)合並到同一個新地址。這種情况要確認跳轉目标本身是規范地址,避免把權重分散到几個相似頁面上。
一對多或已刪除
原頁面拆成了几個新頁面,或者内容彻底下线。拆分的情况可以跳到最相關的新頁面;确實没有替代内容的,返回 404 或 410 比硬跳到一個不相關的頁面更合适。
三、301 落地时的几個细节
- 用 301 而不是 302:永久迁移用 301,临时調整才用 302,別混着用。
- 避免跳轉鏈:A 跳 B、B 再跳 C,鏈條越長,用戶和蜘蛛的等待越久,也更容易在中間环节丢掉。
- 保留必要參數:如果老地址的參數對内容有實际意义,跳轉时應当带上;纯統計類參數可以丢掉。
- 统一尾斜杠和大小寫:同一路径的 /a 與 /a/、大寫與小寫,最好在跳轉規則里一並归一。
- 协议與域名统一:http 到 https、带 www 到不带 www,這些基础跳轉要先確認没有冲突或循环。
四、迁移後要盯一段時間
規則上线不代表事情結束。改版後的几周里,建议持續做几件事:
- 查看服務器日誌,確認老地址的請求返回的是 301 而不是 404 或 500。
- 检查站内連結,把還指向舊地址的導航、正文連結、按钮逐個換成新地址。
- 更新 XML 站点地图,只提交新地址,不要繼續提交已经跳轉的老地址。
- 观察搜尋表現資料里落地頁的變化,看新地址是否開始承接原来的訪問。
- 把映射表存档,後續再有調整时可以直接對照,避免重复劳動。
迁移不會立刻反映到搜尋结果上,也可能出現短期波動。重点是別让老地址断掉、別让跳轉打成死结,剩下的交给時間和正常的运营节奏。
常见誤区
- 只處理首頁和几個栏目頁,忽略分頁、篩選頁和歷史文章。
- 一律跳轉到新首頁了事,用戶找不到原来的内容。
- 跳轉規則寫错路径,導致整批地址互相跳或跳向 404。
- 改版後舊站点地图没下线,繼續把過期地址提交出去。
改版迁移的本质是一次地址的重新分配。清單拉全、對應關系定准、跳轉本身干净,這三步做到位,老地址就能平稳過渡到新结构上,用戶的收藏和外部連結也不至于白費。