常见问题

入口页的 X-Robots-Tag 和 meta robots 写得不一致:搜索蜘蛛按哪个执行

入口页的 X-Robots-Tag 和 meta robots 写得不一致时,搜索蜘蛛并不会二选一,而是把能读到的指令叠加处理。本文说明两者的生效顺序、noindex 与 nofollow 的组合影响,以及排查响应头、缓存和页面源码的实操步骤。

常见问题

入口页的 X-Robots-Tag 和 meta robots 写得不一致:搜索蜘蛛按哪个执行

入口页同时写 X-Robots-Tag 和 meta robots,是蜘蛛池运营里很常见的情况:模板里带了一段,服务器或 CDN 又加了一段。两者写得不一样时,搜索蜘蛛并不会挑一个更友好的来执行,而是把能读到的指令叠在一起处理。

指令是叠加的,不是后者覆盖前者

以常见的 noindex 和 nofollow 为例,只要 HTTP 响应头或 HTML 里任意一处声明了 noindex,这个页面就会被当作 noindex 看待;只要任意一处声明了 nofollow,里面的链接就会被当作 nofollow 处理。它们不是二选一,而是取更严格的那一边。

  • 响应头 X-Robots-Tag: noindex,HTML 里写 index:最终仍是 noindex。
  • 响应头 X-Robots-Tag: nofollow,HTML 里写 follow:最终仍是 nofollow。
  • 响应头 noindex,HTML 里也写 noindex:结果一致,只是重复。
  • 响应头写 noindex,HTML 里写 nofollow:两个效果都会出现,入口页既不收录,链接也不跟进。
多个来源的 robots 指令是合并关系,不是覆盖关系。想放行,必须所有来源都不拦截。

X-Robots-Tag 只看当次响应

X-Robots-Tag 是 HTTP 响应头,只有在这次请求的响应里出现才生效。很多入口页会被 CDN 或反向代理缓存,缓存住的那份响应头可能和源站现在的不一样。如果源站已经去掉了 noindex,但边缘节点还返回旧头,搜索蜘蛛拿到的仍然是 noindex。

另外,响应头里可以出现多个 X-Robots-Tag,也可以在一个值里用逗号分隔多条指令。写法不规范时,不同解析器可能有差异,能用一条清楚的写法就不要堆叠多行。

meta robots 要能被解析到

meta robots 必须出现在 HTML 的 head 区域,页面被解析后才生效。如果 head 里有语法错误、标签被注释掉,或者这段 meta 是由 JavaScript 动态插入的,搜索蜘蛛不一定能读到,这时起作用的可能只有响应头里的设置。

还有一种容易忽略的情况:入口页返回的是非 HTML 内容,或者正文几乎为空,meta 就无从谈起,能生效的只剩 X-Robots-Tag 和链接本身的属性。

对入口页里的链接意味着什么

要分清两件事:入口页自身是否被索引,和入口页里的链接是否被跟进。noindex 管的是前者,nofollow 管的是后者。很多运营者以为页面写了 noindex,里面的链接就自动不跟进了,实际上并不一定。

  • 只有 noindex:入口页不进入索引,但链接仍可能被蜘蛛跟进。
  • 只有 nofollow:入口页可以被索引,但链接不传递、不跟进。
  • noindex 加 nofollow:入口页不索引,链接也不跟进,URL 发现只能靠 sitemap、外链或其他入口。

如果你的目的只是让入口页不参与排名、但仍然承担 URL 发现的作用,就不要顺手加 nofollow;反过来,如果入口页只是过渡用的页面,也不打算让蜘蛛继续往后走,那就明确写成 noindex, nofollow,并保证所有来源一致。

排查顺序

  1. 用抓取工具或命令行只看响应头,确认有没有 X-Robots-Tag,值是什么。
  2. 再看 HTML 的 head,找到 meta robots,确认有没有写错标签名、漏掉引号或被注释。
  3. 检查 CDN、WAF、反向代理是否改写或注入了响应头,缓存策略是否让旧头长期存在。
  4. 把 robots.txt 的 Disallow、链接上的 rel=nofollow 一起对照,确认到底卡在哪一步。
  5. 最后用服务器日志验证:目标页有没有出现搜索蜘蛛的访问记录,而不是只看入口页的抓取量。

实操上的建议

入口页的 robots 指令尽量只保留一个来源,要么放在响应头,要么放在 meta,避免两边各写一套。确实需要两处都写时,让它们表达同一个意思,并在上线后用实际响应验证一次,而不是只检查源码。

蜘蛛池的入口页经常批量生成、批量改模板,最容易出现的就是模板里一段、服务器配置里一段,最后互相打架。把这一项纳入上线检查,比事后从日志里猜原因要省事得多。