做站点运营时,重定向往往是最容易被放過去的一环。改域名、換目錄、調整 URL 结构,都會留下跳轉規則。單條規則本身没有問题,問题在于它們一层层叠起来,一個地址要连跳好几下才落到终点。對用戶来说只是多等一會儿,對蜘蛛来说則是實打實的抓取開销。
跳轉鏈為什么值得單獨查一遍
每一跳都要重新發起請求、重新解析响應头。鏈路越長,服務器压力越大,蜘蛛愿意等待的時間越短,中途放弃的可能越高。而中間地址本身不會出現在搜尋结果里,它們只是通道,却占着抓取配額。
- 抓取预算被消耗在不产生内容的地址上
- 响應時間逐跳叠加,慢一点的站点容易在某一跳超时
- 鏈路里只要一环配错,终点就變成 404 或错誤頁
- 内部連結如果還指向中間地址,用戶和蜘蛛每次都要多走一遍
常见的跳轉叠加场景
协议與域名變体
http 跳 https、裸域跳 www,這两條本来各管一段。如果服務器配置和 CDN 配置各寫了一套,就可能出現 http 裸域 → http www → https 裸域 → https www 這样的多跳鏈路。检查时不要只看最终能不能打開,要逐跳看响應头。
目錄迁移與舊連結
一次栏目調整通常會产生两层跳轉:舊 URL 跳到過渡地址,過渡地址再跳到新地址。如果後来又調了一次结构,第三跳就出現了。迁移越频繁,鏈路越長。
尾斜杠與大小寫
带不带尾部斜杠、路径里有没有大寫字母,如果服務器做了统一規范化,本身是好事。但如果同时存在多條正則規則互相触發,就可能出現 A 跳 B、B 又跳回 A 的循环。
怎么查
- 取一批有代表性的地址,覆盖首頁、栏目頁、内容頁、歷史舊連結,逐條看响應头,把每一跳记下来。
- 從抓取日誌里挑出 3xx 狀態的請求,按出現次數排序,高频的優先處理。
- 用爬虫工具跑全站,重点看跳轉层級這一列,超過两跳的單獨列成清單。
- 检查是否存在循环:A→B→A,或者 A→B→C→B。
處理原則
一次到位。能直接寫成 A→B,就不要保留 A→C→B。中間地址如果没有獨立流量、没有外鏈指向,让它直接指向最终地址即可。
内部連結指向终点。導航、面包屑、正文内鏈、地址清單里寫的 URL,全部用最终地址。這一步做完,跳轉鏈的日常增量就少了一大半。
跳轉目标要相關。頁面下线时,跳到同栏目或内容相近的頁面,比全站统一跳首頁更合理。
選對狀態碼。永久性迁移用 301;临时活動頁或维護期用 302,但要记下来,別让它一直挂着變成事實上的永久規則。
一個常见的誤区,是以為跳轉配得越多越保險。跳轉是過渡工具,不是長期方案。能用更新連結或内容替換解决的,尽量不要依赖它。
建立一份重定向清單
規則多了以後靠记忆不現實。建议维護一張简單的表,记錄源地址、目标地址、加入時間、加入原因。每隔一段時間回看一次,把已经没人訪問、也没有外鏈的規則清掉。清理前要確認站内已经没有頁面還連結那個地址,否則會直接變成 404。
改版或迁移後的前三到六個月,是复查最密集的阶段。之後可以放宽频率,但每次調整站内结构时,都顺手看一眼有没有新的跳轉鏈冒出来。