页面从网站上撤下来之后,索引里往往还会留一阵子。这通常不是搜索引擎反应慢,而是下线动作本身没把该发的信号发全:内链入口还挂着、sitemap 里还列着、访问时返回的状态码依然是 200,蜘蛛下次爬过来照样把它当成正常页面处理。想让索引状态尽快跟上站点现状,先把“为什么下线”和“用什么方式下线”这两件事对上号。
先分清下线的三种意图
同样是撤页面,背后的意图差别很大,处理方式也完全不同。先归类,再动手。
- 临时下架:内容还在,只是暂时不想让人看到,比如季节活动页、临时维护的栏目页。
- 永久删除:内容不再需要,也没有替代页面,比如过期公告、作废的产品型号页。
- 内容搬家:内容还在,只是换了 URL,或者合并进了另一个页面。
把这三类混在一起处理,是最常见的返工来源。临时下架却直接 404,等重新上线时收录要重走一遍;永久删除却留着 200 的页面慢慢劝退,索引会长期挂着一条无效记录。
状态码是最直接的一层信号
永久删除:用 404 或 410
页面确实不要了,就让它返回 404 或 410。410 语义上更明确,表示“永久不存在”,在部分场景下收敛速度会比 404 略快一些;但 404 同样有效,不必为了一个状态码去改动整套系统。真正要避免的是删除内容后仍然返回 200——那等于告诉搜索引擎“这个页面还在,只是变空了”。
内容搬家:301 指向新地址
页面换 URL 或被合并到另一个页面时,用 301 把旧地址指向新地址,并且尽量做到一对一:旧 A 指向新 A,旧 B 指向新 B。把一批旧页面全部跳到首页或栏目首页,属于典型的多对一,搜索引擎大概率会把它们当成软 404 处理,跳转也就白做了。
临时下架:noindex 比 robots.txt 合适
只是暂时不想出现,页面本身还要留着,用 noindex 更合适。这里有个容易踩的点:如果同时用 robots.txt 屏蔽了抓取,蜘蛛拿不到页面上的 noindex 指令,反倒无法确认你想要移除,结果就是页面既抓不到、也退不出索引。
抓取屏蔽和索引屏蔽是两件事。robots.txt 管的是“别来抓”,noindex 管的是“别收录”。要移除索引,页面必须允许被抓取。
如果下架只是短期维护、几天内就恢复,503 配合 Retry-After 也是一种选择,但不要长期挂 503,否则会被当作长期不可用处理。
只改状态码不够,入口要一起收拾
状态码是给已经爬到的蜘蛛看的,入口清理决定的是“还会不会有新的爬取不断找来”。两边都做,收敛才快。
- 站内导航、面包屑、相关推荐里的链接,该删的删,该换成 301 的换。
- sitemap 里把已下线 URL 移除;保留旧 URL 只会持续引导抓取。
- 站内搜索、标签页、归档页这类自动生成的列表,检查是否还在输出死链。
- 外链无法控制,不必强求,但可以确认旧地址确实返回 301 或 404,而不是 200。
一个常被忽略的情况:200 的空壳页
有些页面下线后并不是返回 404,而是内容被清空了、模板还在,访问起来仍是 200,页面上只剩导航和一句“暂无内容”。这类页面在索引里会以“已抓取、内容质量低”的形式长期停留。识别方法很简单:拿几个已下线的 URL 直接访问一次,看看状态码和页面实际内容是否还匹配。不匹配就先修状态码,再谈清理。
收尾检查清单
- 确认下线意图属于临时、永久还是搬家。
- 按意图选择 noindex、404/410 或 301,并验证实际返回。
- 清理站内链接与 sitemap 中的对应条目。
- 检查是否误用 robots.txt 挡住了需要被移除索引的页面。
- 抽查已下线 URL,排除 200 空壳页。
- 过一段时间回看索引覆盖情况,确认旧 URL 数量在下降。
别指望一次就干净
索引更新需要时间,尤其是外链较多、曾经有过流量的页面,残留时间会更长一些。与其反复提交,不如先把信号统一:状态码正确、入口清理干净、sitemap 不再引用,剩下的交给正常的抓取周期。真正拖时间的,通常不是搜索引擎,而是站点自己发出的信号还在互相矛盾。