改版、換域名,或者把 /p/123.html 換成 /article/slug,几乎都會带来一段時間的收錄波動。多數波動不是所谓的“被惩罚”,而是舊地址、新地址、跳轉規則與站内連結之間没對齐。想让過渡平稳,核心只有一件事:让爬虫能明确判断哪個 URL 是舊的、哪個是新的,以及两者是不是同一個頁面。
先分清三種情况
三種情况處理方式不同,別用一套動作套所有场景。
- 同域名改版:域名不變,只是模板、栏目结构或頁面路径變了。重点是路径映射。
- 換域名:整站搬到新域名。重点是整站跳轉與新舊站並存期的處理。
- URL 结构重寫:路径規則變化,比如去掉日期目錄、改成短路径。重点是一對一映射表。
無论哪種情况,都建议先整理一份“舊 URL → 新 URL”的對照表。表里要覆盖栏目頁、列表分頁、文章頁、标簽頁,而不是只列首頁和几篇热门文章。
跳轉:301 要一對一
- 能用 301 就別用 302。302 表示临时跳轉,長期使用容易让爬虫繼續把舊地址当作主地址。
- 不要把所有舊 URL 都跳到首頁。這等于告诉爬虫這些頁面已经不存在,原有頁面积累的東西很难轉移到新頁面。
- 避免跳轉鏈:舊地址 → 中間頁 → 新地址。鏈條越長,中途出错的概率越高。
- 避免用 JavaScript 或 meta refresh 做跳轉,HTTP 狀態碼比它們更直接。
- 确實没有對應新頁面的舊内容,直接返回 404 或 410,比乱跳更清楚。
给爬虫几個一致的信号
跳轉只是入口,頁面自身和外部线索也要保持一致。
- sitemap:尽早換成新 URL,舊 URL 從清單里移除。
- canonical:新頁面指向自己;如果新舊頁面短暂並存,舊頁面的 canonical 指向新地址。
- 内鏈:導航、正文連結、面包屑全部換成新地址。這一步往往比提交 sitemap 更關键。
- 互指關系:分頁、多語言等頁面之間的指向關系,也要同步更新。
舊的跳轉規則不要急着删。保留几個月是常见做法,具体多久取决于舊 URL 還有多少外部連結和訪問量。
過渡期的节奏
改版最容易出問题的地方是“一次改太多”。換域名、換模板、加 noindex 測試、調服務器,全挤在同一周,出了状况很难定位是哪一步引起的。
- 先小范围上线,確認跳轉、狀態碼、canonical 都正确,再全量切換。
- 關注服務器响應:過渡期爬虫訪問量會變化,5xx 和超时會直接影响抓取與後續處理。
- 別在新站上留着測試用的 robots.txt 規則或 noindex 标簽。
怎么判断過渡是否正常
不要只看 site: 命令。更實用的做法是對着日誌和索引狀態看几件事:
- 爬虫是否開始抓取新 URL,返回碼是否以 200 為主。
- 新 URL 是否逐步進入索引,舊 URL 是否逐步登出。
- 搜尋结果里的落地頁是否換成了新地址。
- 是否有明顯的流量断层,以及断层集中在哪些栏目。
過渡期收錄數字下降很常见。先確認跳轉和各類信号是否一致,再去找其他原因,不要一發現波動就反复改配置。
几個常见的坑
- 只處理首頁和热门頁,栏目頁、标簽頁、分頁全部遗漏。
- 新舊頁面内容都保留且都能訪問,形成两個版本互相竞争。
- 跳轉規則寫错,出現循环跳轉或跳到 404。
- 換域名後忘了更新 sitemap、站内绝對連結和統計代碼。
- 過渡還没結束就删掉舊跳轉,導致外部連結全部落空。
把“舊地址到新地址的映射”当成改版清單里的一項正经任務,比事後补救省力得多。改版的目标不是看起来新,而是让搜尋引擎和用戶都能顺着連結走到正确的頁面。