IndexLaunch
← 全部指南

Robots.txt vs Noindex:二者有何区别(以及各自应在何时使用)

在 robots.txt 中屏蔽页面与添加 noindex 标签的作用截然不同——用错方法是页面意外滞留在搜索结果中,或彻底消失不见的常见原因。

它们解决的是两种不同的问题

robots.txt 控制的是爬取——即是否允许搜索引擎的爬虫抓取某个网址。noindex 标签控制的是收录——即一个已经被爬取的页面是否可以出现在搜索结果中。混淆这两者,是导致页面在您希望它消失时却依然滞留在搜索结果中,或在您希望它被发现时却始终不可见的最常见原因之一。

robots.txt 实际的作用

robots.txt 中的 Disallow 规则会要求遵守规范的爬虫不要抓取某个网址。它不会移除已经被收录的页面。如果 Google 在该网址被屏蔽之前就已收录,或是通过其他地方的链接发现了它,并仅凭网址与锚文本就将其收录、从未实际抓取过该页面,那么它可能会无限期地继续在结果中展示该网址——通常没有标题或描述,因为 Google 遵守屏蔽规则,从不重新爬取以进行核实。

noindex 实际的作用

<meta name="robots" content="noindex">(或等效的 X-Robots-Tag HTTP 响应头)会明确告诉已经抓取过该页面的爬虫:你可以读取这个内容,只是不要将其纳入索引。这是从搜索结果中移除页面的可靠方式——但前提是爬虫首先真正被允许抓取该页面,并看到这个标签。

经典误区:既屏蔽又设置 noindex

如果某个网址在 robots.txt 中被禁止访问,同时又设置了 noindex 标签,那么这个 noindex 标签永远不会被读取——因为爬虫已被告知根本不要抓取该页面,因此它永远看不到存在于该页面上的这条指令。如果该页面此前已被收录,或从别处被链接到,它就可能一直保持已收录状态,Google 也无从得知实情,因为要移除它,就必须读取那个它被禁止读取的标签。这是网站意外让低价值页面在搜索结果中滞留数月的一个真实常见原因。

何时使用 robots.txt

  • 管理大型网站的爬取预算——让爬虫远离低价值、高数量的路径(站内搜索结果、分面筛选组合),从而将更多时间花在真正重要的页面上。
  • 彻底屏蔽测试环境、后台管理路由和 API 端点。
  • 完全不希望被爬取的页面——甚至不希望其内容被查看——因为爬取行为本身就会消耗双方的资源。

何时使用 noindex

  • 希望存在且可被爬取——用于内部链接、供用户访问、维持站点结构——但绝不出现在搜索结果中的页面:标签/分类归档页、首页之外的分页页面、感谢页面。
  • 尚不打算彻底删除的单薄或重复内容,但仍希望访客和内部工具能够访问。
  • 移除一个已经被收录的页面——这只有在页面保持可被爬取的情况下才有效,因为 Google 需要实际看到这个标签。

快速判断规则

问自己:爬虫是否需要读取这个页面的内容才能知道该如何处理它?如果该指令依赖于爬虫实际看到页面本身的内容(比如 noindex 标签),那么 robots.txt 就必须允许爬取。如果您想阻止的是爬取本身——无论页面上有什么内容——那么 robots.txt 才是正确的工具,此时 noindex 是多余的,因为它永远不会被读取到。对于可被爬取但内容重复而非彻底不需要的内容,canonical 标签往往比这两者都更合适。

希望您的下一个页面比单纯依靠自然爬取更快被发现?

IndexLaunch 会在您提交网址的那一刻,通过 IndexNow 将其直接推送给 Bing、Yandex、Seznam 和 Naver。

查看价格