改版、換域名、調整栏目,几乎是每個站点都會经歷的事。改動本身没問题,麻烦的是留下的“尾巴”:一條連結 301 到另一條,再 301 一次才落到真正的頁面。訪客多等一會儿,蜘蛛多爬几趟,抓取预算就在這些中間环节被消耗掉了。下面這份清單适合在改版之後,或者例行巡检时過一遍。
重定向鏈通常從哪里長出来
- 換域名时同时叠加了 http 到 https、非 www 到 www、舊域名到新域名三段跳,一次請求走三趟;
- 栏目改名时先用 302 做临时過渡,後来忘了改成 301,内鏈也没同步替換;
- 文章地址去掉日期段,或者多包了一层目錄,舊地址保留跳轉,新地址又被二次調整;
- 结尾斜杠不统一,带斜杠的跳到不带斜杠,或者反過来,来回各留一條規則;
- 外部推廣物料里的舊連結没人回收,常年挂在那里当作入口。
動手自查的几步
先數單條連結跳了几次
用命令行工具請求一次,把整個過程完整打印出来,重点看狀態碼序列和 Location 头。如果中間出現两次以上跳轉,就值得收敛。也可以批量把站点地图里的 URL 跑一遍,統計每條連結的跳轉层數。
区分 301 和 302
永久迁移用 301,临时活動用 302。如果一條 302 已经挂了大半年,基本可以判断是被遗忘的临时代碼,需要评估是改成 301,還是直接把引用它的連結替換掉。
把站内連結指向终点地址
導航、面包屑、正文推荐位、侧栏热门文章,凡是寫死舊地址的地方,都是跳轉鏈的来源。更省事的做法是让站内連結直接指向最终 URL,把跳轉留给從外部進来的舊連結。別忘了同步更新站点地图和订阅源里的地址。
检查协议與主机名的一致性
同一個頁面出現多種寫法,往往是服務器配置和頁面内連結各说各话。先選定一種寫法作為标准,其余的用 301 收敛到它,避免出現 A 跳 B、B 又跳回 A 的循环。
留意參數和锚点
跳轉預設會丢掉锚点,如果舊連結是靠锚点定位到某個小节,訪客會直接落到頁面顶部。带查询參數的舊連結也要確認參數是否需要保留,否則原本精准的落地頁會退化成泛化頁面。
處理时的几條原則
- 優先改源头。模板和内鏈改一處,胜過事後加十條跳轉規則。
- 鏈路尽量压到一跳。多层跳轉统一改成中間层 301 直達最终地址。
- 不要一次性全量替換,分批改、分批看日誌,出問题容易回滚。
- 保留有外鏈和流量的舊地址,別直接让它變成 404。
- 改完做驗證,随机抽样加全量掃描各来一遍,確認没有循环和断点。
驗證與记錄
處理完一轮之後,隔几天再看服務器日誌里 301、302 的請求量,观察是否下降。跳轉量往下走,說明站内連結的替換生效了。同时把規則、改動時間、负责人记進改版文档,下次有人問“這條為什么還在跳”,能直接翻到答案。
重定向鏈不會自己消失,它只會安静地待在那里,每次請求都多花一点時間。定期清一遍,比事後追查省力得多。
如果站点正在做目錄或域名調整,建议把這份清單排進上线前的检查項,而不是等流量出現波動才回头找原因。