網站收錄

重定向鏈、302 與 JS 跳轉:收錄會跟到哪一版,怎么自查

頁面迁移或下架时,重定向寫法直接影响收錄归属:临时跳轉用太久、多跳鏈路、跳到無關頁面、canonical 與跳轉互相打架,都可能让舊地址留在索引里,或者把信号拆成两份。本文說明這些寫法的問题,並给出一份可执行的自查顺序。

網站收錄

重定向鏈、302 與 JS 跳轉:收錄會跟到哪一版,怎么自查

做站点迁移、目錄調整或頁面下架时,重定向是绕不開的一步。它做得對,舊地址的收錄信号能比較顺地過渡到新地址;做得随意,结果往往是搜出来点進去被跳走,或者新舊两個地址長期同时挂在索引里,把本该集中的信号拆成两份。這篇按“重定向怎么影响收錄”和“發現問题後從哪查起”两部分讲。

重定向是在传递地址,而不是删掉地址

搜尋引擎拿到一個 URL 时,第一件事是抓取並讀取 HTTP 响應。看到 3xx,它就知道這個地址不再代表這份内容,應该去看目标地址。但這個過程不是瞬間完成的:它需要重新抓取目标頁、確認内容是否對應,再把原地址從索引里摘掉。所以在重定向生效後的一段時間内,搜尋结果的呈現可能仍指向舊地址,這属于正常過程,不用急着反复改動。

  • 301 / 308:表示永久迁移。一般用于換域名、改目錄、合並頁面,是传递收錄信号最明确的寫法。
  • 302 / 307:表示临时跳轉。适合 A/B 測試、临时维護頁。如果長期挂着一個临时重定向,搜尋引擎可能始终把原地址当作真實地址,新地址迟迟不接管收錄。
  • meta refresh 與 JS 跳轉:属于頁面内的跳轉,要先渲染或解析 HTML 才能發現,不如 HTTP 狀態碼直接,也不利于判断跳轉目标是否稳定。

几種容易让收錄跟丢或跟错的寫法

長期使用临时重定向

把 302 当成 301 用,是最常见的問题。判断方法很简單:如果這個跳轉已经存在几個月,並且不打算再改回去,那它本质上是永久的,應该換成 301 或 308。

鏈式跳轉

A → B → C 這種多跳寫法,每多一跳就多一次抓取和確認。搜尋引擎通常能跟到底,但過程更慢,而且中間任意一环出問题,比如 B 返回 404,整條鏈就断了。整理原則是一步到位,A 直接指向 C。同时定期检查是否存在 A→B→A 這類閉环,閉环會让抓取原地打轉。

跳到無關頁面

把下架的商品詳情頁统一跳到首頁,或者把失效文章跳到某個栏目頁,搜尋引擎一般不會把首頁当成那個舊頁面的新版本,而是倾向于按软 404 處理。结果是舊地址被移除、新地址也没有額外收益,白白浪費一次传递机會。跳到内容相近的頁面,這個動作才成立。

重定向與 canonical 互相打架

如果 A 頁面 301 到 B,而 A 上的 canonical 又寫着指向自己,或者 B 的 canonical 指向 A,信号就自相矛盾。處理办法是保持單一方向:被跳轉的舊地址不保留 canonical,跳轉目标指向自己,让声明和响應一致。

跳轉目标被 robots.txt 挡住

如果目标 URL 被 robots.txt 禁止抓取,搜尋引擎無法確認這個地址上到底是什么,收錄归属就會變得模糊。重定向的目标頁必须是可抓取、可訪問的正常頁面。

發現異常後的自查顺序

  1. 用抓取工具或浏览器開發者工具查看舊地址的响應:狀態碼是什么,Location 指向哪里。
  2. 顺着跳轉逐跳记錄,確認一共几跳、每一跳的狀態碼是否统一。
  3. 检查目标頁:能否正常打開、内容是否與舊頁面對應、是否返回 200。
  4. 检查 canonical 與 hreflang:新舊地址之間的声明是否互相矛盾。
  5. 检查站内連結和 sitemap:是否還有内鏈指向舊地址,sitemap 是否已经換成新地址。
  6. 检查 robots.txt:跳轉目标是否被規則挡住。
  7. 改完之後不要频繁變動,给抓取和索引更新留出時間,再观察索引中的地址是否逐步切換。

几個容易忽略的细节

  • 整站 HTTPS 或域名切換时,重定向規則要保留完整路径和參數,避免全部跳到首頁。
  • 移動端與桌面端之間互跳要慎重,两套地址的跳轉方向應保持一致,不要互相指来指去。
  • 下架頁面如果确定不再提供内容,404 或 410 比“跳到首頁”更清晰,不必為每個失效頁面都做重定向。
  • 重定向規則上线前,用少量 URL 抽样驗證,比全量上线後再回滚成本低得多。
重定向更像一張搬家告示,而不是删帖通知。它把“原地址已经不在這里”说清楚,同时告诉搜尋引擎新地址是哪一個。規則越简單直接,收錄越容易跟對。