站点改版、栏目調整或者 URL 结构重做之後,常见的現象是:舊地址還在被蜘蛛反复訪問,新地址却迟迟没有動静。這通常不是蜘蛛没發現新頁面,而是它手里的那張路径图還没更新完——舊的入口還通着,新的入口又没接上。
舊 URL 不要直接消失
批量換 URL 时,如果舊地址直接返回 404,蜘蛛原来记住的路径就断了,需要從头重新摸索一遍。更稳妥的做法是让舊 URL 301 到對應的新 URL,而且要一對一映射。
- 一對一:舊頁面跳轉到它自己的新地址,不要全部堆到首頁
- 不要鏈式跳轉:A 跳 B、B 再跳 C,跳數越多损耗越大
- 不要長期用 302:临时跳轉不传递路径關系,蜘蛛會一直当成临时狀態
- 保留時間:舊地址的 301 建议保留几個月以上,等新路径稳定再考虑處理
把全站舊 URL 统一 301 到首頁,等于告诉蜘蛛所有舊頁面都是同一個頁面,原来分散在各處的入口會一起失效。
Sitemap 也要跟着換
Sitemap 里放新 URL,舊 URL 逐步從 Sitemap 中移除,但對應的 301 保留。索引文件的地址、分片數量如果發生變化,需要重新提交一次,让蜘蛛知道地图換了。
分片文件名尽量別复用
如果分片文件名不變、内容整体替換,蜘蛛需要重新下载整份文件才能意识到變化。给新分片換一個名稱,或者在過渡期新舊並行,抓取會更顺一些。
内鏈是蜘蛛主要走的路
Sitemap 只是告诉蜘蛛有哪些 URL,真正让它一层层走下去的還是站内連結。改版时如果只改了路由和 301,模板层還指向舊地址,蜘蛛每次都要多跳一次才能到新頁面。
- 導航、面包屑:改版後最容易漏的地方
- 分類列表、分頁:列表頁連結數量多,影响面大
- 相關推荐、上一篇下一篇:正文区域的連結權重不低
- 頁脚、侧栏:虽然位置偏,但全站模板一改就是全站生效
改的顺序建议是先動模板,再處理内容里手寫的硬编碼連結。模板改完,新产生的頁面自動指向新路径;存量内容可以分批替換。
给新舊路径留一段並行期
不建议一次性把所有東西同时換掉。比較稳的节奏是:先让舊 URL 301 到新 URL,同时新 URL 可以正常訪問;观察一段時間後,再把内鏈和 Sitemap 全部切到新地址;最後才考虑舊地址的收尾處理。
並行期内,新舊路径都能走通,蜘蛛不會因為某一环没改完就走進死胡同。
用日誌確認新路径被走到
改版是否生效,看日誌比看後台提交记錄更直接。重点观察三類信息:
- 新 URL 的抓取次數是否在增長,狀態碼是否稳定在 200
- 舊 URL 的 301 命中量是否在下降,說明蜘蛛正在把注意力轉到新地址
- 有没有出現新路径的 404 或 5xx,改版後最容易漏掉的就是邊缘頁面的映射
如果日誌里只有舊 URL 的 301 被訪問,新 URL 几乎没有记錄,說明新路径還没有真正進入抓取流程,需要回头检查内鏈和 Sitemap。
几個容易踩的坑
- 用 robots.txt 屏蔽舊目錄:屏蔽之後蜘蛛讀不到 301,反而不知道新地址在哪
- 把新頁面放進全新的子目錄,却没有任何内鏈入口,只能靠 Sitemap 單点發現
- Sitemap 里新舊 URL 同时存在,狀態碼還都是 200,蜘蛛無法判断哪個是正式地址
- 用 JS 跳轉代替 301,蜘蛛對脚本跳轉的處理並不總是及时
- 改版当天就把舊頁面全部下线,没有留出過渡時間
改版本质上是给蜘蛛換一張地图。地图換完之後,還需要给它一点時間按新路线重新走一遍,急不来,但每一步都可以在日誌里看到進展。