網站收錄

舊地址跳到新地址中間隔了几跳:301 鏈路與收錄交接的核對顺序

改版或調整目錄後,舊地址用 301 指向新地址,收錄却迟迟不交接。問题常出在跳轉鏈本身:跳了几次、每一跳返回什么狀態碼、落点頁面是否干净、站内入口有没有同步更新。本文按鏈路長度、狀態碼、落点声明、内鏈入口四個环节给出核對顺序,帮助定位跳轉做了但收錄没跟上的具体环节。

網站收錄

舊地址跳到新地址中間隔了几跳:301 鏈路與收錄交接的核對顺序

為什么跳轉做了,收錄却没跟着更新

改版、換目錄、合並栏目之後,最常见的處理是把舊地址用 301 指向新地址。但不少人會發現:舊地址在搜尋结果里還在,新地址迟迟不出現。原因往往不在有没有做跳轉,而在跳轉鏈有多長、中間每一跳返回什么。

抓取端訪問一個地址时,遇到重定向需要再發起一次請求。跳一次可以接受,跳三次以上就要多花两三次抓取動作,中間任何一环出問题,鏈路就断了。所以核對顺序應该從鏈路本身開始,而不是先怀疑内容质量。

第一步:把跳轉鏈完整走一遍

用命令行或跳轉检查工具,從舊地址開始逐跳记錄:

  • 一共跳了几次,每一跳的狀態碼是 301、302、307 還是 308;
  • 最终落点返回的是不是 200,還是 404、410 或软 404;
  • 落点是否是規范域、規范目錄,有没有被自動加上參數或跳回舊地址;
  • 鏈路中是否出現循环,A 跳 B 再跳回 A 的情况要優先修。

如果鏈路超過两跳,建议把中間环节改成直接指向终点,能一步到位就不要串起来。鏈式跳轉不會因為歷史原因就更容易被接受。

第二步:区分 301、302 和前端跳轉

長期的地址交接,應该用 301(永久)或 308。302、307 表達的是临时跳轉,長期挂在那里,抓取端可能一直把舊地址当作有效地址保留。更要注意的是:

  • 用 meta refresh 或 JavaScript 跳轉,抓取端不一定执行,容易只看到一個空頁面;
  • 用 302 指向一個随时會變的目标,會让收錄归属變得不稳定;
  • 把舊地址跳到登入頁、驗證頁或需要前端渲染的頁面,落点無法被正常解析。
判断标准很简單:關掉脚本、只看服務端返回,鏈路是否仍然完整可走通。

第三步:把站内入口一起改掉

跳轉只是给老連結兜底,不是让站内繼續指向舊地址的理由。如果導航、面包屑、正文内鏈、列表頁仍然大量指向舊地址,抓取端會持續發現舊 URL,收錄归属就會一直在两個地址之間摇摆。

核對时按入口優先級排一遍:導航和首頁入口、栏目頁與列表頁、正文互鏈、sitemap。這些位置都應该直接寫成最终地址,跳轉只留给外部連結和收藏夹里的老連結。

第四步:確認落点頁面的自我声明

跳轉的终点頁面本身也要干净:

  1. 頁面的 canonical 指向自己,而不是指向舊地址或另一個變体;
  2. 落点不要带上来源地址残留的參數,避免同内容生成多個 URL;
  3. 落点頁能被正常抓取,没有 robots 屏蔽、没有被 noindex 覆盖;
  4. 落点頁的内容與原頁主题一致,否則容易被判為無關跳轉。

观察节奏與常见坑

改完之後不需要天天看结果。更實际的观察方式是看服務器日誌里舊地址的請求狀態碼分布,以及這些請求是否已经逐步轉向新地址。短時間内舊地址仍有訪問是正常的,因為外鏈、缓存和用戶收藏不會同步更新。

几個反复出現的坑:

  • 把整站舊目錄 301 到一個總入口,用戶和抓取都被送到不相關的頁面;
  • 跳轉鏈中間夹着一次 302,導致後續 301 的信号不完整;
  • 新舊地址同时可訪問 200,只是舊地址額外挂了一段跳轉脚本;
  • 只改了跳轉,没改 sitemap,舊地址還在文件里被持續提交。

把鏈路長度、狀態碼、落点质量、站内入口這四項按顺序核對一遍,多數跳了但没交接的情况都能定位到具体环节。跳轉本身只是入口管理的一部分,它决定的是抓取端能不能顺利走到新地址;至于新地址能否進入索引,仍然取决于頁面本身的质量和站点整体的抓取状况。