站点运营

站点运营:重定向鏈自查,別让地址一跳再跳

站点改版、換域名或調整目錄之後,不少地址要经過多次跳轉才能落到最终頁面。單次跳轉没問题,怕的是鏈條越接越長,蜘蛛和用戶都要多走几程。本文說明重定向鏈的常见成因、對抓取和体驗的影响,以及怎么查、怎么压到一跳,並给出日常维護的几條做法。

站点运营

站点运营:重定向鏈自查,別让地址一跳再跳

站点改版、換域名、調目錄之後,很多地址會经過一次甚至多次跳轉,才落到最终頁面。單次跳轉本身没有問题,怕的是鏈條越接越長,蜘蛛和用戶都要多走几程才能到位。

重定向鏈是怎么長出来的

多數鏈條不是一次决定的结果,而是每次調整只改了自己這一层,没人回头清理上一层的規則。

  • 域名更換後,舊域名跳新域名,新域名又重新做了主域统一;
  • HTTP 到 HTTPS 迁移时,中間又叠加了 CDN 的回源跳轉;
  • 栏目改名时,舊栏目先跳到過渡目錄,過渡目錄再跳到新栏目;
  • 批量工具生成的重定向規則没删,和新規則叠在一起;
  • 内容下架後统一指到首頁,後来首頁本身也換了地址。

這些操作單獨看都合理,叠加在一起就變成了一條几段式的鏈條。

鏈條變長不只是多等一會

  • 每跳一次都要重新發起請求,抓取预算會消耗在中間环节上;
  • 落地時間被拉長,遇到回源慢的时候超时風險上升;
  • 連結權重和頁面信号在每一跳里都會衰减,越往後越弱;
  • 日誌里同一批地址會出現多條记錄,排查时容易看错對象;
  • 用戶在舊連結上等待更久,中途跳出的人也會更多。

怎么查一條地址跳了几次

  1. 用命令行工具带跟随參數請求一個地址,看返回的跳轉序列,一眼能數出几段;
  2. 在浏览器開發者工具的 Network 面板里看文档請求,確認一條連結是否触發了多個 301 或 302;
  3. 從站内内鏈和 Sitemap 里各抽一批地址,直接請求,看最终落点是否就是想要的那個頁面;
  4. 在蜘蛛日誌里筛出 3xx 狀態碼,按地址分组,找出经常出現在中間环节的那些;
  5. 把現有重定向表導出,人工标出 A 到 B 到 C 這種多段结构,按優先級處理。

抽查的數量不用太多,几十條就能看出規則表整体的風格。如果抽查里多次出現三段以上,基本可以判断需要系統性清理。

處理时的几個判断

能压到一跳的尽量压

大部分鏈條可以压成一次直達。把舊地址直接指向最终地址,中間那一层不再接手。規則表里保留一行,比留着三行互相接力更好维護。

该保留的跳轉可以保留

有些舊路径承载過外部連結,确實值得保留一次跳轉。保留没問题,但让它直接落到最终頁,不要再经過中轉目錄。

別用前端跳轉代替服務端

meta refresh 和 JS 跳轉,對抓取和用戶来说都不如服務端 3xx 干净。能配服務端規則就別省這一步,尤其是批量地址。

顺手清理的几件事

  • Sitemap 和内鏈只寫最终地址,不要把中間地址提交上去;
  • canonical 指向最终地址,避免和跳轉结果打架;
  • 長期用 302 代替 301 的地方,確認是不是真的只是临时;
  • 重定向表定期复核,刪除已经不再使用的規則;
  • 換域名、改目錄之後留一條變更记錄,方便後来人看懂。
一次干净的跳轉到最终地址,比一串说不清来歷的中轉更容易维護,也更容易让蜘蛛和用戶一次到位。

重定向是站点运营里的常备工具,不是一次性動作。每次改動之後顺手看一眼鏈條,比攒到几十條再集中排查要轻松得多。