頁面永久下架後,很多人的第一反應是删掉文件、加個 noindex,或者干脆 301 跳到首頁。但收錄狀態的更新不會因為頁面打不開就自動發生——搜尋引擎需要再次抓取這個 URL,讀到明确的狀態信号,才會去改索引里的记錄。狀態碼選错了,往往比不處理還麻烦。
三種狀態碼代表三種不同信号
服務器返回的狀態碼,是搜尋引擎判断頁面去留的第一依據。同样是下架,返回什么碼,處理路径並不一样。
- 410 Gone:明确表示资源已永久移除且没有替代。语义最清晰,通常被视為最直接的移除信号。
- 404 Not Found:表示资源不存在。多數情况下同样會被当作移除處理,只是信号强度弱于 410。
- 301 永久重定向:這不是移除,而是把归属交给另一個 URL。如果目标是首頁或無關頁面,容易變成错配。
- 302 / 307 临时重定向:信号更弱,長期挂着會让搜尋引擎难以判断真實狀態。
無论選哪一種,前提都是這個 URL 還能被正常抓取,狀態碼才有可能被讀到。
為什么下架後收錄迟迟不動
URL 被 robots.txt 或 noindex 挡住
如果整個目錄被 robots.txt 屏蔽,爬虫压根看不到狀態碼,索引里的舊记錄就可能長期留着。通過响應头下發的 noindex 也一样,需要頁面可抓取才會生效。
URL 還有入口在
只要站内還有連結指向它、sitemap 里還列着、外鏈還在,爬虫就會繼續来。下架一個頁面,通常要连同這些入口一起處理,而不是只删頁面本身。
站内信号互相打架
其他頁面仍然 canonical 到已下架的 URL,或者跳轉鏈绕了好几层、最终落点與内容無關,爬虫收到的信号就會冲突,處理也更慢。
可以照着走的核對顺序
- 先確認下架意图:是永久刪除、临时下线,還是已有替代頁面。
- 再選狀態碼:永久刪除優先用 410;有明确替代頁面則 301 指向最相關的那一個,而不是统一丢到首頁。
- 检查可抓性:robots.txt 是否放行该 URL,是否需要用 noindex 作為补充信号。
- 清理入口:從 sitemap 移除,删掉或改掉站内指向它的連結。
- 检查跳轉鏈:避免多級跳轉,避免跳到不相干頁面。
- 留出再抓取時間:移除是渐進的,批量下架會更慢,不要指望当天见效。
批量下架时的推進节奏
一次性把几千個 URL 全部返回 410,對站点来说是一個集中的大變動,日誌里也會出現密集抓取。更稳的做法是分批處理,優先下架内鏈少、没有外鏈的頁面,观察抓取與索引變化後再往下推進。
- 用服務器日誌確認爬虫是否真的抓過這些 URL,而不是只看索引數量的變化。
- 用 site 查询或索引工具看粗略残留量,注意不要把統計口径不同的數字直接相减。
- 保留一份下架清單,方便過几周回来比對哪些還没被處理。
几個常见誤区
頁面打不開不等于被移出索引;反過来,一個返回 200 的空壳頁,反而可能被判為软 404,處理逻辑更绕。
- 直接返回 503:會被当作临时不可用,長期使用還可能被理解為持續故障。
- 410 之後又在同一個 URL 上线新内容:狀態碼與内容自相矛盾。
- 用 JavaScript 做跳轉:可能不被识別為重定向。
- 只删頁面,不删 sitemap 條目和内鏈。
狀態碼只是信号,不是開關。把意图(永久刪除還是替換)、信号(狀態碼與可抓性)、入口(内鏈、sitemap、外鏈)這三件事對齐,收錄狀態的更新才會按预期推進。