換域名、調整目錄层級,或者把 http 改成 https,本质上都是同一批内容換了一组地址。對搜尋引擎来说,這既不是“更新頁面”,也不是“修改标题”,而是新出現了一批 URL,同时舊地址還留在索引里。最终哪個地址出現在索引中,取决于你给出的信号是否一致、稳定,以及新舊地址之間的交接是否清楚。
先把三件事分開看
- 抓取:蜘蛛是否請求了這個 URL。請求成功,只說明地址可達。
- 收錄:這個 URL 是否被允许進入索引。它受 robots、noindex、重复内容判断等因素影响。
- 索引归属:同一份内容存在多個地址时,索引里保留哪一個。由 canonical、跳轉、内鏈等信号共同决定。
迁移中最常见的誤判,是看到新 URL 能被抓取,就認為“已经迁完了”。實际上此时索引里可能還是舊地址,新地址處于“已發現、尚未被選為代表性 URL”的狀態。
切換顺序:先铺新入口,再改跳轉
顺序反過来做,很容易出現一段空白期:舊地址已经不能訪問,新地址又没有任何站内入口,只能靠 sitemap 慢慢被發現。
- 新 URL 先上线並可正常訪問,内鏈、導航、面包屑、sitemap 都指向新地址。
- 確認新地址返回 200,頁面内容完整,canonical 指向自身。
- 再對舊地址做 301,跳轉到语义最接近的新地址,一對一,不要统一跳到首頁。
- 最後更新外部連結、站点地图和站内所有引用舊地址的位置。
301 要一對一,別做成“全部跳首頁”
把一批舊 URL 全部 301 到首頁,等于告诉搜尋引擎這些地址對應的内容已经消失。比較自然的结果是舊地址被移除,而新地址並不會因此自動繼承原来的位置。正确做法是每個舊地址跳到主题最接近的新地址;确實没有對應頁面的,返回 410 或保留一個說明頁,比硬跳首頁更清楚。
跳轉鏈也要控制長度:A→B→C 這種多級跳轉會让信号變弱,尽量改成 A→C 的直接跳轉。
让新地址被發現的几個入口
- 站内連結:正文、導航、相關推荐、分類列表頁,能覆盖到的尽量覆盖。
- sitemap:只放新地址,不要新舊混放,避免给出互相矛盾的信号。
- 锚文本:用能說明頁面主题的描述性文字,比“点击這里”更有參考價值。
- 外部入口:合作方、社交平台、歷史文章里的舊連結,能更新的尽量更新。
舊地址的收尾
301 通常要保留較長時間,至少覆盖一個完整的抓取周期。在確認新地址已经被正常抓取、索引里的地址完成切換之前,不建议撤掉跳轉。如果舊地址曾经被大量外鏈引用,保留跳轉的價值更高。等新地址稳定出現在索引里,再考虑是否需要用工具提交移除舊地址。
迁移後的自查清單
- 新 URL 是否返回 200,canonical 是否自指。
- 舊 URL 是否 301 到语义最接近的新 URL,是否存在多級跳轉。
- 站内是否還有残留的舊地址連結。
- sitemap 是否只包含新地址,且這些地址均可訪問。
- 是否存在重复内容:同一份内容的新舊两個地址同时返回 200。
- 日誌里新地址的抓取频次是否在上升,舊地址是否在减少。
迁移没有一步到位的做法,能控制的是信号是否一致:入口指向新地址、舊地址明确跳轉、sitemap 不打架、canonical 不摇摆。把這些做稳,剩下的交给抓取周期去消化。