網站改版、更換 CMS、調整栏目结构,都會牵動 URL。老連結一旦失效,或者跳到不相干的頁面,先前积累的訪問路径就可能断掉。與其上线後再到處救火,不如在動手之前,把迁移映射当成一份必须交付的清單来對待。
一、先把老 URL 盘清楚
迁移的起点不是新站点,而是老站点的 URL 全量清單。至少從三個来源合並:
- 可被搜尋發現的頁面:歷史 sitemap、抓取日誌里出現過的地址;
- 站内實际被連結的頁面:導航、正文内鏈、聚合頁、相關推荐;
- 有外部入口的頁面:被其他站点引用、被用戶收藏、出現在投放物料里的地址。
三類清單合並去重後,才是真正的迁移底表。只看 sitemap,很容易漏掉带參數的列表頁、附件頁和老版栏目路径。
二、映射關系要寫得能被別人讀懂
一對一與批量規則
能一一對應的頁面,就寫明舊地址到新地址;栏目整体調整,可以用前缀規則批量處理。两種方式混用时,具体規則要優先于通配規則,否則可能被通配符先吃掉,跳到错誤的栏目首頁。
没有對應頁怎么办
确實不打算保留的内容,宁可指向最相關的上級栏目,也不要全部扔到首頁。實在没有合适的落点,就返回 404 或 410,让搜尋引擎和訪客都能得到明确信号。大量無關頁面统一跳首頁,往往既影响体驗,也难以達到预期效果。
三、跳轉本身也要检查
重定向不是设完就算,跳轉鏈、跳轉類型和跳轉後的可用性都要過一遍。
- 用 301 表達永久迁移,避免長期使用 302;
- 检查是否存在 A 到 B 到 C 的多級跳轉,能合並成一步就合並;
- 大小寫、末尾斜杠、http 與 https、带 www 與不带 www,尽量统一到一種形式;
- 静態资源、图片、附件、RSS、分頁參數也要纳入映射范围。
四、上线後的观察與收尾
迁移發布只是開始。接下来几周,建议每周做一次简單核對:
- 抽查新舊 sitemap 的差异,確認重要頁面都能在新结构中訪問到;
- 看服務器日誌里的 404 和 5xx,找出遗漏的映射;
- 確認内鏈和 canonical 已指向新地址,避免站内還停留在舊路径;
- 保留舊地址的重定向,不要急着删規則,至少保留几個内容周期。
如果站点有灰度或回滚方案,迁移映射表也應当可以一起回滚,避免新舊两套结构並存造成重复内容。
五、一份可复用的检查表
- 老 URL 清單是否包含參數頁、附件頁與歷史栏目路径;
- 每條映射是否寫明目标地址與生效范围;
- 是否存在跳轉鏈、循环跳轉或指向 404 的跳轉;
- 内鏈、sitemap、canonical 是否同步更新;
- 上线後是否有日誌层面的复查計划與责任人。
URL 迁移没法保證每一次都零损耗,但可以把可控的部分做扎實:底表全、映射准、跳轉健康、观察持續。這些動作不花哨,却直接决定改版之後,訪客能不能顺利找到原来的内容。