网站收录

不想让页面进索引:robots.txt、noindex、nofollow 各管什么

robots.txt、noindex、nofollow 看起来都像“别收录”,管的却是不同环节。本文拆开讲:谁阻止抓取、谁负责把页面从索引里拿掉、谁只管链接关系,以及想让一个页面干净地离开索引,操作顺序该怎么排。

网站收录

不想让页面进索引:robots.txt、noindex、nofollow 各管什么

站点里总有一些页面不该出现在搜索结果里:后台入口、尚未定稿的测试页、重复的参数页、只在一段时间内开放的临时页。能处理它们的工具不止一个,用错了,常常会出现“屏蔽了却还在索引里”,或者“该抓的没抓、该走的没走”。

先分清“不让抓”和“不让收”

抓取和收录是两段动作:蜘蛛来取页面内容是一段,把这些内容放进索引、未来可能被展示是另一段。robots.txt 管的是前一段,noindex 管的是后一段。把两者混为一谈,是大多数误操作的来源。

三个工具各自能做什么

  • robots.txt 里的 Disallow:告诉蜘蛛不要来抓这个路径。但 URL 本身仍可能进入索引——如果别处有链接指向它,结果列表里也许会出现一个没有摘要的条目。它并不保证页面消失。
  • noindex(meta 标签或 X-Robots-Tag 响应头):允许抓取,蜘蛛取到内容后看到标记,再把页面排除在索引之外。这是“让页面离开索引”最常用的手段。
  • nofollow:写在链接上,表示“这个链接不必跟着走”。它影响的是链接关系,跟页面本身是否被索引无关,别拿它当屏蔽工具。

最典型的坑:两个一起用

如果 robots.txt 先挡住了抓取,蜘蛛就读不到页面里的 noindex 标记,于是想屏蔽的页面反而可能以“无摘要”的形式留在索引里。

合理的顺序是:想让页面离开索引,先放开抓取,让 noindex 能被读到;等索引里的记录清理得差不多了,再考虑要不要在 robots.txt 里彻底禁止抓取。

想干净地处理一个页面,按这个顺序走

  1. 确认页面能正常返回 200,蜘蛛可以访问到。
  2. 加上 noindex 标记。如果页面主要靠 JavaScript 渲染,用响应头形式的 X-Robots-Tag 更稳,可以避免标记迟迟不被识别。
  3. 把该 URL 从站点地图里移除,同时清理指向它的站内链接,减少再次被发现的入口。
  4. 如果页面已经下架、不再存在,让它返回 404;确认永久删除的可以用 410,信号更明确一些。
  5. 站长平台的移除工具可以应急,但它偏临时,源头不改,过段时间还可能回来。

几个容易忽略的细节

  • canonical 是“合并”信号,不是“排除”信号。它说的是哪个版本更能代表内容,不负责让页面消失。
  • 登录墙、密码保护的页面,只要 URL 被链接引用,仍可能出现在索引里。
  • robots.txt 里的路径区分大小写,写错一个字母基本等于没写。
  • noindex 的页面不要放进站点地图,两边信号互相矛盾,蜘蛛只会反复来确认。
  • 改完之后用抓取测试工具确认一次,看到标记确实被读到再收工。

把这些工具按“抓取”和“收录”分开理解,再按顺序执行,能省掉大部分来回折腾。真正值得检查的不是用了哪个标签,而是页面上给出的信号有没有互相打架。