改版通常被当成前端和产品的事,但對搜尋抓取来说,它意味着蜘蛛手里那份熟悉的地图大部分失效了:目錄结构、連結位置、頁面模板都換了样,它得重新走一遍才能把新结构認下来。這段時間抓取量、抓取到的頁面數出現波動很正常,關键在于別让這個波動拖成長期狀態。
改版打断抓取路径的常见情况
- URL 規則整体更換,舊地址與新地址之間没有對應關系;
- 目錄层級調整,原本两三层就能点到的頁面被埋得更深;
- 導航和列表模板重寫,入口連結被塞進需要交互才展開的组件;
- 分頁、篩選參數規則變化,蜘蛛此前记住的抓取入口作废;
- 頁面從服務端輸出改為前端渲染,源碼里不再有可跟随的連結。
這些情况往往同时出現。改動越集中,蜘蛛需要重新学习的量越大,路径重建的周期也越長。
舊地址先定去向,再谈新结构
能一一對應的,用 301 指到最终地址
改版前先把舊 URL 清單和訪問日誌拉出来,按訪問量排序,優先處理有外鏈、有内鏈、有實际訪問的那一批。301 的目标要寫成新结构里的最终地址,不要先跳到中間頁再跳一次,鏈式跳轉會让蜘蛛多花一次請求,也容易在半路放弃。
确實不存在的,给一個明确狀態
内容已经合並或下线的舊地址,返回 404 或 410 都可以,但要避免两種做法:一是把舊地址全部 301 到首頁,二是放着不管,让舊地址繼續返回 200 的空頁面。前者會让蜘蛛把一堆不相關的 URL 当成同一個目标,後者會持續消耗抓取量。
改版不是把地址換掉就結束了,而是要让蜘蛛能用尽量少的請求,從舊结构走到新结构。
Sitemap 與内鏈要跟着換一遍
不少站点改版後模板換了、連結換了,Sitemap 却還是舊的,里面一半地址已经 404,等于把蜘蛛引到一片废墟里。改版上线时,Sitemap 應同步替換為新结构的地址,並清理掉已经失效的條目。
内鏈比 Sitemap 更影响實际抓取。新模板上线後,检查几件事:導航里是否還有指向舊目錄的連結;列表頁、面包屑、相關推荐是否都指向了新地址;原本靠侧栏或頁脚获得入口的頁面,改版後是否還有別的路径能到達。改版时最容易丢的,就是這類只靠某一處内鏈被發現的頁面。
別一次改太多
如果條件允许,把 URL 结构、模板、渲染方式分開改,中間留出几周。一次全改,蜘蛛面對的是一套全新站点,此前积累的抓取习惯基本清零;分批改,它每次只需要調整一小部分判断。
用抓取日誌驗證路径是否走通
- 改版後一段時間内,新地址的抓取請求是否在增長;
- 舊地址是否還在被大量請求,說明重定向或外鏈没有處理干净;
- 抓取是否集中在新首頁和栏目頁,深层頁面迟迟没有請求;
- 服務器返回的狀態碼里,5xx 和超时是否明顯增多。
如果蜘蛛長期只抓新首頁和几個栏目,通常是新结构里的入口太浅,或者入口太依赖交互,需要回头补内鏈和 Sitemap。
改版带来的抓取波動不會一夜恢复。把舊地址的去向、Sitemap 的更新、内鏈的补位這几件事做扎實,剩下的就是给蜘蛛一点重走的時間。