内容是有生命周期的。栏目調整、产品下架、文章合並、站点改版,都會产生一批"不再需要"的 URL。很多人改完前端模板就以為結束了,其實搜尋引擎索引里那條记錄還在,甚至繼續带来零散訪問。老 URL 怎么收尾,取决于這個地址之後還會不會存在。
先分清四種去向
處理之前,先把這批 URL 分個類,因為不同去向對應的做法完全不同:
- 繼續保留,只是不再更新;
- 内容並入另一個頁面,源頁面不再單獨存在;
- 換個地址繼續存在,比如改版、換目錄、換域名;
- 彻底不要了,没有承接對象。
分類清楚了,後面的動作才不容易做反。
保留但不再更新:地址就別動
如果頁面還有長尾搜尋價值,最省事的做法是保持 URL 不變。内容過时,可以在頁面顶部加一句說明,或者补充最新信息、标注更新日期,而不是為了"看起来新"去改地址或調结构。已经积累了一段時間的頁面,換地址带来的损失通常大于那点新鲜感。
内容並入他頁:先合並,再處理地址
合並最容易做错的地方,是只把源頁面改成一句"本文已合並至某頁"。對用戶和對搜尋引擎来说,這都接近空頁面。更稳妥的顺序是:
- 把源頁面里仍然有效的信息,真正搬進目标頁,而不是複製粘贴两份;
- 確認目标頁能回答源頁面原本覆盖的查询;
- 源地址做一次性的 301 指向目标頁;
- 把導航、正文内鏈、站点地图里指向源地址的連結改成目标頁。
301 的意思不是"這個内容不重要",而是"這個地址以後請看那個"。如果内容本身没有真的合並過去,跳轉只是把一個空壳指到另一個頁面。
内容換地址:一對一 301
換目錄、換域名的时候,尽量做一對一的 301。把所有舊 URL 统一跳到首頁,會让搜尋引擎难以判断每個頁面原来的主题,也很容易把之前积累的信号稀释掉。另外,跨地址迁移優先用 301,而不是用 canonical 代替跳轉——canonical 是建议,301 是明确的地址變更。
彻底不要了:404、410 和 noindex 怎么選
- 404:最标准的做法,表示頁面不存在,适合没有承接對象的 URL;
- 410:明确告知已永久刪除,部分引擎處理上會更直接,但不必强求;
- noindex:适合内容還想让人看到、只是不希望進索引的頁面,比如活動結束頁、临时說明頁;
- 保留一個 200 狀態的"已下架"空頁面:一般不建议,容易被当成薄内容,也占着索引位置。
這里有個常见誤解:用 robots.txt 屏蔽抓取,並不等于從索引里移除。已经收錄的地址,可能仍然會出現在结果里,只是缺少摘要。想让它從索引里出去,noindex 通常更直接。
處理完之後,還要检查這几處
- 更新站点地图,把已處理的 URL 删掉或替換;
- 站内搜尋一下舊地址,看還有没有残留連結;
- 给搜尋引擎留出處理時間,索引狀態不是實时同步的;
- 別反复改主意,今天 301、明天 404,只會拖慢整個處理過程。
几個反复出現的坑
- 把成百上千個不相關的舊頁面批量 301 到首頁;
- 做了 301,但站内連結没改,用戶還是從舊地址点進去;
- 用前端 JS 跳轉代替服務器端 301,抓取时看到的狀態碼仍是 200;
- 已经返回 410 的頁面,又在別處被大量連結指向。
老 URL 的收尾,本质上就是把"這個地址以後代表什么"讲清楚:代表自己、代表另一個頁面,還是不再代表任何東西。讲清楚了,剩下的交给時間,不需要額外動作。