網站改版、換域名、栏目重组,几乎是每個站点都會遇到的事。對用戶来说可能只是換了個界面,對搜尋蜘蛛来说却意味着一批舊地址突然失效。如果迁移處理得粗糙,蜘蛛會沿着跳轉鏈一层层试,抓取预算消耗在無效路径上,新頁面反而迟迟拿不到應有的關注。下面這些自查項,建议在動手之前就過一遍。
一、先把會變的地址列清楚
很多迁移翻车,不是因為技術难,而是因為没人完整地知道到底改了多少東西。動手前先列一張清單,逐項確認:
- 域名與协议:是否換主域、是否同时從 http 切到 https;
- 目錄结构:栏目层級是否調整,文章路径是否從 /a/123 變成 /news/123;
- URL 命名規則:是否去掉了 .html 後缀、是否统一成小寫、尾斜杠是否收口;
- 參數與分頁:列表頁的翻頁形式是否變化;
- 歷史遗留:带 index.php、带大小寫混排、带多余參數的舊地址有多少。
清單越细,後面寫跳轉規則时越不容易漏。漏掉的那一批,往往就是迁移後日誌里持續报 404 的那一批。
二、跳轉自查:一條鏈最多一跳
舊地址到新地址,理想狀態是一次 301 直達。現實中常见的却是一條鏈子:舊域名跳到新域名,新域名又跳到带 www 的版本,最後才落到真正的頁面。每多一跳,蜘蛛就多一次請求,用戶也多一次等待。
几個高频問题
- 鏈式跳轉:A→B→C,應尽量合並成 A→C;
- 跳轉類型混乱:临时搬家用了 302,導致信号传递被拖延;
- 全站跳到首頁:任何失效地址都回首頁,等于给蜘蛛一個空壳,容易被当成软 404;
- 跳轉與 robots 冲突:舊地址被 robots.txt 挡住,蜘蛛根本看不到跳轉指令,信号自然传不過去;
- 大小寫與尾斜杠:/News/1 和 /news/1 各跳一次,白白多出一倍請求。
自查方法很简單:抽二三十個有代表性的舊地址,用工具或命令行看完整跳轉鏈,確認终点是目标頁面、狀態碼是 301、且只有一跳。
三、给蜘蛛一份新舊對照
跳轉是被動告知,主動告知能省下更多時間。
- 站点地图換成新地址,並保持更新;
- 站内所有導航、面包屑、正文内鏈、頁脚連結,全部替換成新地址,不要留舊連結靠跳轉兜底;
- 頁面上的規范化标记统一指向新地址,別出現新舊混指;
- 如果两個结构會長期並存,明确哪一版是正本,另一版做收敛處理。
這里有個容易忽略的细节:只要站内還留着舊地址的内鏈,蜘蛛就會顺着它們反复走跳轉,等于自己给自己制造抓取负担。
四、切換节奏:分批切,留观察期
- 先在測試环境把跳轉規則跑通,用真實舊地址驗證终点;
- 正式切換时,優先處理流量大、更新频繁的栏目,观察几天再推到全站;
- 保留舊域名和服務至少數月,別急着到期不續;
- 把新站点地图提交上去,同时留意服務器是否因抓取集中而压力上升;
- 舊地址的跳轉規則長期保留,不要一两個月後就清理掉。
五、迁移後看哪些信号
迁移不是上线那一刻就結束的事。接下来一段時間,建议定期查看几類信息:
- 抓取日誌里新地址的比例是否逐步上升,舊地址是否在减少;
- 是否還有成規模的 404 或跳轉鏈,找出是否遗漏了某類頁面;
- 蜘蛛在新頁面上的抓取频次與停留表現,判断结构是否被理解;
- 服務器响應時間,確認没有因為跳轉規則變复杂而拖慢。
如果發現某類舊地址持續被反复請求却始终跳不到有效頁面,先別急着加規則掩盖,回去查是不是清單阶段就漏了這批地址。
小结
迁移的核心不是“把用戶送過去”,而是让蜘蛛用最少的請求、最短的路径,找到並理解新的内容结构。把地址清單列全、跳轉压到一跳、站内連結全部更新、切換分批推進、上线後持續观察,這几步做扎實,改版带来的波動通常會平缓很多。