迁移期,蜘蛛手里同时握着两套地址
站点改版或換域名时,抓取並不會在切換那一刻重置。蜘蛛仍會按舊地址来訪問一段時間,這些訪問不是噪音,而是把新地址介绍给它的机會。過渡期處理得好,抓取路径能比較平滑地迁移;處理得粗,舊地址會持續消耗抓取频次,新地址却迟迟走不顺。
舊地址要给明确去向,別让蜘蛛猜
最常见的問题不是跳轉没做,而是做得不清楚。以下几種做法需要避開:
- 用 302 長期代替 301,临时跳轉通常不會被当作地址變更信号;
- 用 JS 跳轉或 meta refresh 代替服務端跳轉,部分抓取场景不执行,等于舊地址是死路;
- 跳轉鏈過長,A 跳到 B 再跳到 C,每次都是一次額外訪問,路径被拉長;
- 在 robots.txt 里屏蔽舊路径,蜘蛛连 301 都看不到,自然也拿不到新地址。
另外,不要用一條通配規則把所有舊路径都指到首頁。路径與頁面一一對應的 301,才能把訪問带到正确的新地址上。
内鏈是切換信号,不是迁移後的收尾
舊地址在蜘蛛那里還存在,很大程度是因為站内還在指它。導航、面包屑、相關推荐、列表頁、RSS,只要有一處還輸出舊連結,蜘蛛就會繼續沿舊路径走,301 的訪問量也就降不下来。
- 检查模板里硬编碼的連結;
- 確認 XML Sitemap 的生成逻辑讀的是新地址;
- 结构化資料、分享連結、站内搜尋结果里的 URL 也顺手更新。
Sitemap、canonical 與 hreflang 的配合
新 Sitemap 只放新地址,舊 Sitemap 建议保留一到三個月,用来帮助蜘蛛發現舊地址上的 301。canonical 指向自身的新地址,不要新舊互相指向,那會把信号弄乱。多語言或多地区站点,hreflang 里的地址同样要跟着換。
迁移节奏與观察指标
不必一口气全站切換,但也不宜拖得太久。可以按頁面價值分批:先切換主要入口和内容頁,再處理低價值頁面。切換後從日誌里看几件事:
- 舊地址的抓取量是否逐步下降;
- 新地址的抓取量是否同步上升;
- 301 的命中次數與来源路径,判断還有哪些入口没改;
- 新地址被抓取後的狀態碼與响應時間是否稳定。
几個容易被忽略的坑
- 舊地址直接返回 404,蜘蛛拿不到去向,迁移信号中断;
- 新舊頁面内容同时在线,又没有 canonical,形成重复地址;
- 内鏈只改了一半,蜘蛛在两套结构之間来回走;
- 新舊路径同时响應,服務器压力上升,抓取频次被動下調。
迁移的本质是把一條清晰的路径交给蜘蛛:舊地址有明确去向,新地址有稳定入口。做到這两点,剩下的就是按日誌里的反馈逐步收口。