页面永久下架后,很多人的第一反应是删掉文件、加个 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、外链)这三件事对齐,收录状态的更新才会按预期推进。