網站迁移真正麻烦的地方,往往不在技術動作本身,而在于迁移前後那些零碎细节是否都被照顾到。換域名、改目錄结构、從 HTTP 迁到 HTTPS、把站点搬到新服務器,這些操作都會让原本已经建立起来的抓取路径發生變化。蜘蛛之前记住的是一套地址,迁移之後它面對的可能是另一套,中間如果没有做好衔接,之前积累的連結關系、抓取频率和收錄结果都會出現一段明顯的回落。
下面這份清單按迁移前、迁移中、迁移後三個阶段整理,适合在動手之前逐條過一遍。
迁移前:先把現状盘清楚
迁移前最重要的工作是留档。不少人迁移完成後才發現,舊站的 URL 结构没有完整记錄,日誌也被覆盖,想比對都無從下手。
- 導出完整 URL 清單:從站点地图、抓取日誌、後台内容列表三個来源各導一份,取並集,避免遗漏只有外鏈没有内鏈的頁面。
- 记錄目前狀態碼分布:哪些頁面返回 200,哪些本来就该是 301,哪些本来就该是 404。迁移後要能對照检查。
- 儲存近期抓取日誌:迁移前两周的日誌能反映蜘蛛真實的抓取节奏和高频頁面,是迁移後判断是否恢复正常的基准。
- 标出高價值頁面:把流量集中、外鏈較多的頁面單獨列出来,迁移後優先复核這些地址。
新舊 URL 映射:尽量做到一對一
映射表是迁移的核心。最省事但也最伤站的做法,是把舊站所有地址统一 301 到新站首頁。這種做法等于把大批頁面合並成一個,原本分散在各頁的連結關系會一起堆到首頁,其余頁面要重新被重新發現一轮,恢复周期會被明顯拉長。
映射表要满足的几個基本要求
- 尽量一對一,舊頁面 A 指向新頁面 A,而不是全部指向首頁或栏目頁。
- 目标地址直接寫最终地址,不要 A 到 B 再到 C 這样串联,减少连鎖跳轉。
- 頁面确實下线的,指向最相關的上級分類或有替代關系的内容;完全没有替代的,老老實實返回 404,不要用狀態碼 200 的空頁面糊弄過去。
- 映射表做完後批量抽查,用工具驗證狀態碼,而不是靠肉眼核對几行。
迁移過程中容易漏掉的几處
- robots.txt:新站上线时常常沿用了測試环境的配置,里面寫着全站禁止抓取。上线後第一件事就是確認這份文件是给正式环境用的。
- 站点地图:sitemap 里的地址必须換成新域名,並且能正常返回 200。舊域名的 sitemap 可以保留一段時間,但内容要指向新地址。
- canonical 标簽:模板里的 canonical 如果是寫死的舊域名,迁移後會指向一個已经跳轉的地址,等于自我否定。
- 内鏈與相對路径:检查站内連結用的是绝對地址還是相對地址,绝對地址需要整体替換。
- HTTPS 與證书:如果迁移同时涉及协议變更,确保證书覆盖新舊域名,頁面里没有混合内容,否則蜘蛛在握手阶段就會止步。
- CDN 與缓存:迁移後缓存里可能還存着舊版本頁面,必要时主動刷新,避免蜘蛛抓到過期内容。
迁移後:驗證與观察期
迁移完成不等于結束,接下来两到四周是观察期,重点看三件事。
- 狀態碼抽查:随机抽几批新舊地址,確認 301 落点正确,没有出現 302 混用、循环跳轉或跳到 404 的情况。
- 抓取日誌:观察蜘蛛訪問的地址是否逐渐轉向新域名,舊地址的訪問量是否在下降,新地址是否開始出現稳定的抓取频率。
- 站内搜尋與外鏈:站内搜尋入口要更新為新地址;外部連結無法直接控制,但可以主動联系几個重要的合作站点更新連結。
迁移期間出現波動是正常現象,關键是波動之後能不能回到原来的水平。如果四周後抓取量仍明顯低于迁移前,就要回头检查映射表和 robots 是否還有遗留問题。
一份简化的動手顺序
- 導出舊站 URL 清單並留档近期日誌。
- 制作一對一映射表並批量驗證落点。
- 在新环境完成服務器、證书、缓存、CDN 的准备。
- 選一個低流量时段切換,同时更新 robots 與 sitemap。
- 切換後立刻抽查狀態碼,逐項复核 canonical、内鏈和入口配置。
- 進入观察期,按周比對日誌與抓取資料。
迁移這件事没有太多技巧,靠的是把每一步都做完整。清單越長,事後临时想起来补的可能就越少。