网站收录

robots.txt 屏蔽后页面还在索引里:noindex 与抓取的先后顺序

robots.txt 只控制抓取,并不负责移除已经存在的索引条目。想让页面退出索引,通常需要先允许抓取、让页面带上 noindex,等索引更新之后再考虑限制抓取。本文梳理 noindex、robots.txt、404/410 各自的分工,并给出可照做的自查顺序。

网站收录

robots.txt 屏蔽后页面还在索引里:noindex 与抓取的先后顺序

屏蔽抓取不等于从索引里移除

处理不想被搜索展示的页面时,很多人的第一反应是在 robots.txt 里加一条 Disallow。过一段时间再去搜,页面标题和摘要依然在结果里,只是描述变成了“由于该网站的 robots.txt 文件,我们无法提供该页面的具体描述”。这容易让人误以为规则没生效,于是反复修改。

实际上,robots.txt 管的是“能不能抓”,索引里的条目管的是“已经抓过的内容”。两者不是一回事。已经进入索引的 URL,不会因为你禁止抓取而自动消失,反而因为爬虫再也读不到页面,无法确认它是否已经变化或失效。

noindex 必须被抓到才会生效

noindex 是页面级指令,写在 HTML 的 meta 标签或 HTTP 响应头里。它不像 robots.txt 那样在抓取前就被读取,而是爬虫先把页面抓下来、再解析,才可能知道“这个页面不要收录”。

如果 robots.txt 禁止抓取某个 URL,爬虫就不会去取这个页面,也就永远读不到它里面的 noindex。两个指令叠加,通常得到的是最糟的结果:页面留在索引里,而你既看不到它的最新内容,也无法用 noindex 让它退出。

所以想让已收录页面退出索引,比较稳妥的顺序是先允许抓取、让页面带上 noindex,等它在索引中消失之后,再考虑是否用 robots.txt 限制抓取,比如为了减轻服务器压力。

先明确目标,再选手段

  • 页面彻底不要了:返回 404 或 410,这是最直接的失效信号。
  • 页面还在,但暂时不想被搜索展示:保留可抓取状态并加 noindex,适用于活动结束页、临时说明页。
  • 只是不想被频繁抓取:用 robots.txt,但要清楚它不负责移除已有的索引条目。
  • 整站或整个目录需要处理:逐页加 noindex,或在服务器层面对应返回 410。直接用 robots.txt 全站屏蔽,只会让清理更慢。

几个容易踩的细节

被屏蔽的 URL 不要放进 sitemap

sitemap 的作用是告诉爬虫“这些地址值得抓”。如果其中一批 URL 同时又被 robots.txt 禁止抓取,提交后往往只会得到一堆“已提交但被屏蔽”的提示。要么放开抓取,要么把这些 URL 从 sitemap 里撤掉。

noindex 之后不用急着删内容

noindex 页面仍有正常内容和链接,不影响用户访问,只是不进入索引。等确认索引里已经查不到,再决定是删除、改版还是继续保留。

非 HTML 文件看响应头

PDF、图片、音视频等文件里塞不进 meta 标签,需要用 X-Robots-Tag 响应头表达 noindex。只改 HTML 模板对这些文件不起作用。

一个可以照做的自查顺序

  1. 在搜索引擎里用 site: 或直接搜 URL,确认页面当前是否还在索引中。
  2. 检查 robots.txt 是否屏蔽了该路径。如果屏蔽了,先放开。
  3. 确认页面返回的状态码是 200 且能正常渲染;如果本来就是 404 或 410,走删除流程即可。
  4. 加上 noindex(HTML 用 meta,文件用 X-Robots-Tag),并保持可抓取。
  5. 在搜索后台用 URL 检查工具请求重新抓取,确认抓取到的版本里带有 noindex。
  6. 定期复查索引状态。移除不是即时的,可能需要数天甚至更久。

把“抓取控制”和“索引控制”分开看,操作顺序就不会乱:想让页面退出索引,先让它能被抓到,再让爬虫读到你的意图。