网站收录

让页面退出索引:noindex、robots.txt 与状态码的处理顺序

页面下线、迁移或暂时隐藏时,robots.txt、noindex 和状态码经常被混用,导致页面长期留在索引里。本文按抓取与收录两个环节拆开讲三者的作用,给出不同下线诉求对应的做法、推荐处理顺序,以及验证时要观察的几个信号。

网站收录

让页面退出索引:noindex、robots.txt 与状态码的处理顺序

页面要下线、要合并、要暂时隐藏时,最容易出问题的不是该不该做,而是顺序做错了。robots.txt、noindex、状态码这三个工具各自管的是不同的事,混着用往往会让页面在索引里挂很久,或者让回滚变得麻烦。

先分清两件事:能不能抓,能不能进索引

抓取和收录是两个环节。搜索引擎要先能抓到页面,才能读到页面上的指令。如果第一步就被拦住,后面的指令基本等于没写。

  • robots.txt 的 Disallow:拦的是抓取。被拦的 URL 通常不会被抓取,也就读不到页面里的 meta robots。
  • meta robots 的 noindex:管的是索引。它要求搜索引擎抓到这个页面、读到这行标签,然后把页面从索引中移除。
  • HTTP 状态码:表达资源本身的存在状态。404 或 410 表示已经不存在,301 表示永久搬到别处,503 表示暂时不可用。
把 Disallow 和 noindex 同时加上,是下线页面里最常见的组合错误。抓取被拦,noindex 永远读不到,页面可能长期留在索引里。

几种常见的下线诉求,对应不同做法

页面永久不要了

如果内容确定不再提供,也没有合适的替代页,让它返回 404 或 410 是直接的表达。搜索引擎抓到状态码后会逐步处理。410 比 404 更明确,但两者差别没有传说中那么大,不必为此大动干戈。

页面换地址了

用 301 指向新 URL,并在新页面上保持内容可访问。不要在旧 URL 上放 noindex 再跳转,这样容易让信号在传递中被削弱。跳转链条尽量短,一跳到位最好。

页面暂时不想被搜到,但以后还要用

这种情况适合 noindex。前提是页面可被抓取、robots.txt 不拦它。等要恢复时,把 noindex 去掉,再让它重新被抓一次。

整站或整目录暂时下线

维护期间用 503 比用 404 合适,同时说明预计恢复时间。用 404 会让搜索引擎认为页面消失,恢复后重新进入索引需要时间。

推荐的处理顺序

  1. 确认这个 URL 之后还要不要用。要,就 noindex 或 301;不要,就 404 或 410。
  2. 检查 robots.txt 是否屏蔽了该路径。如果屏蔽了,先放开,让搜索引擎能抓到页面。
  3. 在页面上输出正确的 meta robots 或状态码。
  4. 用 URL 检查类工具看一下实际抓取结果,确认返回的是预期状态。
  5. 观察一段时间,在索引报告里看该 URL 是否退出。

容易忽略的几点

  • 参数页、分页、筛选页批量下线时,先分类型,不要一条规则全站套。误伤正常页面的回滚成本很高。
  • noindex 是页面级指令,放在由 JS 渲染出来的内容里有读不到的风险,放在服务端返回的 HTML head 里更稳。
  • 下线之后旧 URL 仍可能被外链指向。留着 301 或 404 都是有效回应,不必强行让所有外链消失。
  • 索引移除需要时间,几天到几周都可能。频繁改动指令反而会让处理变慢。

验证时看什么

不要只看一次抓取结果就下结论。看三个信号:抓取时返回的状态码是否符合预期、页面 HTML 里是否还有 noindex、索引状态是否在往预期方向走。如果抓取正常、标签正确,但索引迟迟不动,通常只是时间问题,不需要反复调整。

把这些工具按各自负责的环节分开使用,下线、迁移、隐藏这三类需求就不容易互相打架。真正需要小心的,是那种既想屏蔽抓取又想让它别收录的直觉做法,它往往把简单的事拖长。