站点运营

站点运营:搜尋蜘蛛的URL發現,從站点改版後的舊URL映射说起

站点改版後,舊地址如果直接失效,搜尋蜘蛛仍會沿着歷史记錄反复訪問空頁面。本文從整理舊URL清單、建立新舊映射表、正确使用301、同步站内連結與站点地图,以及迁移後的日誌观察几個环节,說明怎样把改版的入口损失降到較低水平。

站点运营

站点运营:搜尋蜘蛛的URL發現,從站点改版後的舊URL映射说起

站点改版之後,最常见的情况是:新頁面陆續上线,舊地址開始返回 404,而搜尋蜘蛛還在一批一批地訪問老連結。抓取請求落在空頁面上,既消耗了抓取配額,也让原本已经建立起来的入口断掉。很多人把注意力放在新版頁面的设計上,却把舊 URL 的處理留到了最後,结果就是迁移期的抓取資料出現一段明顯的空档。

先整理一份完整的舊 URL 清單

映射表的前提是清單。改版前如果没有把現有 URL 導出,後面就只能靠日誌反推,容易遗漏。可以按下面的顺序收集:

  • 從站点地图文件里導出全部 URL,包括分片文件中的條目。
  • 從服務器訪問日誌中筛出近 90 天被訪問過的路径,尤其是被搜尋蜘蛛訪問過的部分。
  • 在後台或資料库里導出文章、栏目、标簽頁、作者頁等動態生成的地址。
  • 把已经被外部引用的頁面單獨标注,這些連結一旦失效,影响會更明顯。

把几份来源合並去重,得到一個带路径和參數的列表。參數部分要判断哪些是真正影响内容的,哪些只是統計用,後者在迁移时可以直接丢掉。

建立新舊 URL 映射表

映射表可以就是一個两列的表格,左邊舊地址,右邊新地址。看起来简單,难点在于逐一確認對應關系,而不是批量做字符串替換。

三類常见對應關系

  1. 一對一:舊文章迁移到新文章,内容基本一致,直接指向新的固定連結。
  2. 多對一:多個舊标簽頁或归档頁合並到新的栏目頁,保留一個最相關的目标地址。
  3. 無對應:内容已经刪除或不再提供。這類頁面不要全部指向首頁,指向最接近的上級栏目或返回 410,都比强行導向首頁更清楚。

映射表建立過程中,最容易被忽略的是带參數的舊地址。比如列表頁的分頁參數、排序參數,如果舊版和新版的參數名不同,就需要在服務器或中間层补規則,否則蜘蛛會拿到一個 404。

301 的正确用法

確認映射關系之後,跳轉規則建议由服務器层统一處理,而不是靠頁面里的脚本或 meta 标簽。後者對搜尋蜘蛛来说並不是同一種信号,處理速度和可靠性都差一些。

跳轉目标應当是最终可訪問的地址,避免 A 跳 B、B 再跳 C 的鏈式结构。鏈路越長,蜘蛛越容易在中途停下。
  • 永久迁移用 301,临时维護或短期切換用 302,不要長期用 302 承载改版。
  • 跳轉目标的协议和域名保持一致,避免又产生一次跨协议跳轉。
  • 規則測試时用不带 Cookie 的狀態訪問,排除個性化跳轉的干扰。
  • 對舊版遗留的混合大小寫、末尾斜杠等寫法,一並纳入規則范围。

規則上线後,最好抽几十條舊地址逐條訪問一遍,看最终落地頁是否與映射表一致。批量生成的正則很容易在一两個特殊字符上出错。

站内連結與站点地图同步更新

跳轉解决的是外部到達的問题,站内如果還留着舊連結,蜘蛛每爬一次就等于多绕一次。改版时通常要检查這几處:導航與面包屑、文章正文里的歷史内鏈、侧邊栏的推荐位、以及站点地图文件本身。

站点地图建议在迁移完成後重新生成一次,把舊地址從文件里去掉,避免出現“站点地图里是舊地址、實际已经跳轉”的矛盾情况。同时對已经失效的頁面,给出明确的 404 或 410 狀態,不要返回一個空白的 200 頁面。

迁移後的观察與收尾

改版不是上线那一刻結束,而是之後几周持續观察的過程。可以從服務器日誌里筛出搜尋蜘蛛的訪問记錄,重点看三件事:舊地址是否仍被大量請求、跳轉後是否成功到達新地址、新地址是否被正常抓取。如果舊地址請求量一直不下降,通常說明某個入口没有被替換,需要回到站内連結或外部引用上去找。

另外准备一個 404 监控清單,把近期新增的失效路径定期過一遍。有些地址是在改版後才被外部轉载或用戶收藏激活的,几天不看就可能积累一批。把映射表当成一份會持續维護的文档,而不是一次性文件,改版带来的入口损失就能控制在一個可接受的范围内。