頁面被删掉、下架,或者搬到新地址之後,很多人的第一反應是“這條已经不存在了”。但對搜尋来说,索引里儲存的是過去某次抓取到的那條 URL 记錄,它和服務器現在的狀態是两回事。搞清楚 404、410、301 這几個响應分別传递什么信号,才知道该催哪一步。
索引记錄不會因為頁面刪除就自動消失
索引里的一條记錄,代表搜尋引擎曾经抓取並處理過這個 URL。当頁面内容不再返回,爬虫需要再次来訪、看到新的响應狀態,才會考虑更新這條记錄。
所以下线的第一步不是盯着索引看,而是让這個 URL 能被正常抓取,並返回明确的狀態碼。
如果 URL 被 robots.txt 屏蔽,或者服務器持續返回 5xx,爬虫拿不到明确信号,舊记錄反而可能留存更久。
404:預設的“這里没有東西了”
404 表示资源不存在。對已经刪除、也不打算恢复的頁面,返回 404 是可行的做法。
不過 404 本身是個中性信号:它既可能是“暂时找不到”,也可能是“永久没了”,搜尋引擎需要结合時間和其他线索来判断,處理周期可能偏長。
- 适合:頁面确實已删、没有替代内容、也不需要把權重传给別處
- 注意:要返回真正的 404 狀態,而不是返回 200 再顯示“頁面不存在”
- 注意:不要用全站统一的頁面去兜所有缺失 URL,容易让人和爬虫都分不清
410:更明确的“不會再有了”
410 表示资源已被永久移除。信号比 404 更确定,理论上被移出索引的速度會快一些。
實际快多少,取决于爬虫再次抓取的频率。這個 URL 本身的外鏈多不多、訪問是否频繁,都會影响時間。不要指望換了狀態碼第二天就消失。
如果頁面只是暂时下线、以後還可能恢复,不建议用 410。
301:不是删掉,而是搬家
301 表示永久重定向到新地址。用它的场合是内容還在,只是換了 URL。
- 适合:改版、合並栏目、把重复頁面指向主版本
- 注意:目标 URL 要和原頁面内容對應,不要全部跳到首頁
- 注意:尽量保持一跳,避免 A 跳 B、B 又跳 C 的鏈條
301 的目的不是让舊 URL 消失得越快越好,而是让新 URL 承接原来的信号。所以只要舊地址還有訪問,對應的 301 就應当長期保留,而不是過渡几周就撤掉。
三種响應怎么選
- 内容彻底刪除、没有替代、也不迁移——404 或 410
- 内容還在,只是換了地址——301 到新地址
- 暂时下线、之後可能恢复——考虑 503 或保留原頁面,不要急着删
- 多個相似頁面合並——其余頁面 301 到保留的那一個
這里没有统一答案,關键是先想清楚:這個 URL 以後還會不會有内容。
几個常见的處理誤区
- 把刪除的 URL 全部 301 到首頁:用戶和爬虫都得不到對應信息,容易被当成软 404 處理
- 返回 404 狀態碼,但頁面内容看起来像正常頁:信号自相矛盾
- 刪除後立刻用 robots.txt 屏蔽:爬虫進不来,反而可能让舊记錄留得更久
- 只删了内容頁,留下大量空目錄和空列表頁:這些頁面本身也需要一並處理
下线之後该看什么
處理完之後,观察点主要有两個。一是這些 URL 是否還能被抓取到,服務器日誌里能看到爬虫来訪和返回的狀態碼;二是索引中這類 URL 的數量趋势。
索引更新本身有延迟,几天到几周都算正常。與其频繁查询,不如固定一個周期看趋势,避免因為單次波動就反复改動。
如果長期没有任何變化,再回头检查:狀態碼是否正确、是否被 robots 規則拦住、服務器是否間歇性返回 5xx。
小结
頁面下线的處理,本质上是给爬虫一個明确的答复。404、410、301 分別對應“没有了”“永久没有了”“搬到別處了”。選對响應、保證 URL 能被抓取、再给它足够的時間,剩下的交给索引自行更新即可。