網站收錄

重定向鏈與临时跳轉:收錄归属被拖慢时先检查哪几层

重定向常被当成简單的跳轉,但它同时影响爬虫對 URL 的抓取路径和索引归属。本文從 301 與 302/307 的差异、重定向鏈長度、常见错誤配置和自查顺序入手,說明如何减少無效跳轉、合並重复入口,並核對最终被索引的 URL。

網站收錄

重定向鏈與临时跳轉:收錄归属被拖慢时先检查哪几层

重定向几乎每個站点都會用到:換域名、改版、合並栏目、统一 https 和 www,都會产生跳轉。多數人只關心“跳過去能不能打開”,却忽略了一個更關键的問题:爬虫跟着跳轉走到最终 URL 时,會把哪一层当作索引候選,以及中間消耗了多少抓取资源。

重定向的本质是信号传递,不是刪除

当服務器對一個 URL 返回 301 或 302,爬虫通常不會把原 URL 当作最终頁面,而是繼續請求 Location 指向的新地址。原 URL 過去积累的外鏈、点击和權重信号,會按跳轉類型不同程度地传递到目标 URL。這里的差异不在于“能不能跳”,而在于“传多少、传多久”。

  • 301 永久重定向:表示原地址不再使用,信号传递相對明确,适合域名迁移、URL 永久改名。
  • 302 / 307 临时重定向:表示只是暂时跳轉,原 URL 仍可能被保留在索引里,信号传递不如 301 稳定。307 與 302 的主要区別在于是否允许改變請求方法,對搜尋引擎索引判断的影响與 302 類似。
  • meta refresh 或 JavaScript 跳轉:對爬虫来说不如服務器端 3xx 直接,容易造成抓取和索引判断上的延迟,不應作為主要迁移手段。

重定向鏈過長:抓取预算和信号都會被消耗

比“用错 301”更常见的是鏈路過長。例如一個舊頁面依次经過:http 版本 → https 版本 → 带 www → 去掉 index.php → 加尾斜杠 → 最终頁面。每多一跳,爬虫就要多發起一次請求,抓取预算被分散,信号也可能在传递中衰减。

實践里可以這样判断:如果一個 URL 需要超過两次跳轉才能到達最终内容,就值得记錄並缩短。常见来源包括:

  • 协议、域名、路径規范没有一次性跳到位,而是逐层跳轉。
  • 舊栏目结构迁移後,保留了大量中間层跳轉頁面。
  • 參數 URL、大小寫變体、尾斜杠變体各自指向不同中間地址。
  • 登入、地区或語言判断用 302 临时跳轉,導致爬虫看到的是跳轉而非内容。

常见错誤配置與對應現象

1. 永久迁移用了 302

換域名时如果只用 302,原 URL 可能長期留在索引里,和新 URL 同时出現。用戶搜尋时進入舊地址,再被跳轉,体驗和信号都會打折扣。域名級迁移應優先使用 301,並在服務器端一次性完成。

2. 重定向到無關頁面

把已刪除頁面统一 301 到首頁,是常见但效果有限的做法。少量無關頁面可以接受,大批量這样做會让首頁承担過多不相關信号,也可能被判断為软 404 的變体。更合适的做法是跳到最接近的上級栏目或替代内容頁。

3. 跳轉鏈里夹着 noindex 或 robots 屏蔽

如果中間某一跳被 robots.txt 屏蔽,爬虫可能無法繼續跟随,最终 URL 就难以被發現。noindex 放在重定向鏈中間,也會让信号传递變得混乱。迁移期間應确保整條鏈路可抓取,最终頁面再决定索引策略。

自查與處理顺序

遇到收錄归属混乱、舊 URL 反复出現或新 URL 迟迟不替換时,可以按下面顺序核對:

  1. 用服務器日誌或抓取工具,確認爬虫訪問的入口 URL 和最终落地 URL。
  2. 检查從入口到最终頁面的每一跳狀態碼,记錄 301、302、307 以及是否有多余中間頁。
  3. 把超過两跳的鏈路列為優先處理項,先在服務器或 CDN 层合並為一次跳轉。
  4. 核對最终 URL 的 canonical、robots meta 和站点地图,确保三者指向一致。
  5. 观察一段時間内的抓取记錄,確認舊 URL 請求减少、最终 URL 被抓取和索引。

把重定向当作長期维護項

重定向不是配置一次就結束的工作。栏目調整、活動頁下线、參數規則變化,都會新增跳轉。建议在改版或迁移时保留一份跳轉映射表,定期抽查鏈路長度和狀態碼。比起反复提交 URL,先把跳轉鏈路理顺,往往更能帮助爬虫找到並理解正确的頁面。

重定向的目标不是“能打開”,而是让爬虫用最少請求到達最终頁面,並清楚知道哪一個 URL 應该被索引。