改版、換域名、合並頁面时,URL 往往不是直接消失,而是通過重定向指到新地址。對用戶来说,跳轉是透明的;對搜尋引擎来说,每一次跳轉都是一次額外的抓取請求和一次信号传递。理解重定向對抓取與收錄的影响,能帮你在迁移後少踩坑。
重定向在收錄流程里的位置
搜尋引擎處理一個 URL 大致经歷:發現、抓取、解析、索引。重定向發生在抓取阶段。蜘蛛請求舊 URL,收到 3xx 狀態碼和 Location 头,再請求目标 URL。最终被解析和收錄的是目标 URL,而不是舊 URL。但這個前提是:跳轉鏈路要短、要稳定。
如果鏈路太長,蜘蛛可能在中途放弃,或者把中間 URL 当成獨立頁面處理,導致抓取配額被消耗在無意义的請求上。
301 與 302 對收錄的不同含义
301 表示永久移動,搜尋引擎會把舊 URL 的信号尽量传递到新 URL,並在後續抓取中逐步用新 URL 替換索引里的舊地址。302、307 表示临时跳轉,搜尋引擎通常保留舊 URL 的索引,繼續抓取舊地址。如果你希望收錄落到新 URL,临时跳轉不是合适的選擇。
真正的永久迁移,應该用 301,並且尽量保持長期有效。短期内改回 302 或取消跳轉,會让搜尋引擎重新判断,延長收錄過渡期。
鏈式跳轉與循环
A 跳到 B,B 跳到 C,C 再跳到 D,這種鏈式跳轉每多一跳就多一次請求。蜘蛛一般能跟随若干跳,但鏈路越長,丢失信号和被中断的概率越高。更糟的是循环跳轉,蜘蛛會陷入無解,最终放弃抓取该 URL。
自查时,可以用 curl 或浏览器開發者工具查看完整跳轉鏈,確認没有多余中間层。理想情况是舊 URL 一步跳到最终地址。
重定向與 canonical 同时出現
如果舊 URL 既做了 301,頁面里又寫了指向另一個地址的 canonical,信号會互相矛盾。搜尋引擎可能一时难以判断,收錄可能落在你不希望的位置。迁移时,让重定向目标和 canonical 保持一致,不要两套逻辑打架。
常见處理顺序
- 先確認目标 URL 可正常訪問,返回 200,並且没有被 robots.txt 挡住。
- 检查跳轉鏈是否只有一跳,目的地是否稳定。
- 確認用的是 301,而不是 302、JS 跳轉或 meta refresh。
- 把新 URL 放進 sitemap,並更新站内連結指向新地址,减少對舊 URL 的依赖。
- 观察日誌里舊 URL 的抓取频次是否逐步下降,新 URL 是否開始被频繁抓取。
几類容易忽略的情况
- 跳轉到 404 頁面:舊 URL 會更快從索引里消失,但新地址也不會被收錄,因為目标本身無效。
- 跳轉到首頁:大量不相關的舊 URL 都跳首頁,搜尋引擎可能视為软 404 處理,收錄價值很低。
- HTTP 到 HTTPS、带 www 到不带 www:這類站点級迁移應全站统一跳轉,避免部分頁面走一套、部分走另一套。
- JS 跳轉和 meta refresh:不如 HTTP 301 明确,收錄過渡更慢,也更容易被誤判。
观察與調整
重定向不是设完就結束。迁移後一段時間内,可以结合日誌和搜尋表現观察:舊 URL 是否還在被频繁抓取、新 URL 是否開始進入索引、是否有頁面長期停留在已發現未抓取的狀態。如果舊 URL 在几個月後仍大量被抓取,检查站内是否還有連結指向它,或者 sitemap 里是否混入了舊地址。
收錄過渡需要時間,具体周期因站点規模、抓取频次和内容更新情况而异。與其反复改動跳轉規則,不如保持鏈路干净、目标稳定,让搜尋引擎有足够時間完成替換。