内容下线、活動頁過期、商品下架,都是站点运营里再普通不過的事。但過一阵子去搜尋,舊連結還挂在结果里,点進去要么 404,要么跳到首頁。這本身不算異常現象,索引更新有它自己的节奏。真正需要判断的是:這條舊連結属于哪種情形,以及目前该動哪一环。
先分清三種情形
- 頁面确實已经刪除,不再需要對外提供任何内容。
- 頁面内容還在,只是換了 URL,比如栏目改版或层級調整。
- 頁面還在原地址,但业務上不希望它繼續出現在搜尋结果里,例如活動結束、库存清零。
這三種情形的處理方式完全不同。第一種适合让地址明确地不可用;第二種應该用跳轉把用戶带到新地址;第三種要保留可訪問性,同时排除索引。顺序搞反了,往往就是舊連結長期不消失的原因。
狀態碼是最直接的信号
核查时先看訪問结果,而不是先看搜尋表現。
- 404:地址不存在,但语义上偏临时;410 明确表示永久移除,對清理舊連結更清晰。
- 301:指向新地址,适用于頁面迁移,不是刪除。
- 200 加空内容:頁面能正常打開,正文却是空的或寫着“内容不存在”,這属于软 404,會被当成正常頁面處理,舊連結自然不容易登出。
- 302:临时跳轉,不适合用来處理永久性的下线。
站内入口要一起清
即使某條地址已经從索引里消失,只要站内連結還指着它,蜘蛛重新抓到时又會把這條地址带回视野。核對时按顺序過一遍:
- 導航、面包屑、侧栏推荐位里是否還有指向舊地址的連結。
- 正文里的歷史連結是否需要改成新地址,或者直接去掉。
- 站点地图里是否還列着這些地址,及时更新。
- 站内搜尋结果、标簽頁、归档頁是否還在生成這些連結。
- 分頁序列里是否残留。
- 如果是一整批下线,检查後台是否還在自動生成對應的列表入口。
移除入口與 robots 的取舍
有些人第一反應是在 robots.txt 里屏蔽舊目錄。這能阻止抓取,但不會让已经進入索引的地址消失,反而可能因為抓不到而看不到狀態碼或 noindex。想让頁面登出索引,通常需要它保持可被抓取,並返回明确的狀態碼,或者带 noindex。
對于紧急场景,搜尋平台一般提供移除工具,但它處理的是“目前不應出現在结果里”的地址,前提是頁面确實已经 404、410 或带有 noindex。提交只是請求,不是承诺,最终還是要靠頁面本身的狀態稳定下来。
robots.txt 屏蔽的是抓取,不是索引;處理已收錄地址时,這两件事不要混用。
一個可执行的核對顺序
- 列出仍出現在结果里的舊地址,按模板分组,不要一個個看。
- 逐個確認訪問狀態和正文情况,记錄它属于刪除、改址還是不该收錄。
- 刪除類:确保返回 404 或 410,並清掉站内入口。
- 改址類:配置 301 到最相關的新頁面,同时更新内鏈和站点地图。
- 不该收錄類:保留可訪問,加 noindex,並從站点地图中移除。
- 提交站点地图,观察一段時間的抓取日誌與索引狀態變化。
- 未清掉的地址單獨记錄,過一段時間再复核一次。
容易踩的几個坑
- 用 404 頁做跳轉,用戶看到的是首頁,返回碼却是 404,信号更乱。
- 整批頁面直接刪除,没有保留替代入口,用戶和外鏈都断了。
- 只改前端路由,服務器仍對所有地址返回 200。
- 處理完当天就去查,索引更新本身需要時間,短期没變化不代表方向错了。
舊連結在索引里停留一段時間是常態。核查的重点不是“今天有没有消失”,而是每一步的信号是否明确:地址是否真的不可用、新地址是否可被识別、站内是否還在生成舊連結。把這些理顺,剩下的交给時間。