常见问题

入口页用 X-Robots-Tag 响应头做限制,搜索蜘蛛还能发现目标链接吗?

X-Robots-Tag 写在 HTTP 响应头里,不像 meta 标签那样容易看见,很多蜘蛛池入口页在不经意间被 CDN 或服务器加上了 noindex、nofollow。本文说明它和 robots.txt、meta robots 的区别,不同取值对链接跟踪的影响,以及如何用 curl 和日志排查配置问题。

常见问题

入口页用 X-Robots-Tag 响应头做限制,搜索蜘蛛还能发现目标链接吗?

做蜘蛛池入口页的人,通常会把注意力放在链接放在哪、robots.txt 怎么写、meta 标签有没有加 nofollow 上,却容易忽略一个更隐蔽的位置:HTTP 响应头里的 X-Robots-Tag。它不写在 HTML 源码里,用浏览器查看源代码根本看不到,一旦被服务器或 CDN 默认加上,搜索蜘蛛可能连页面上的目标链接都不会去跟踪。

X-Robots-Tag 和另外两种指令的区别

控制搜索蜘蛛的常见手段有三种,作用位置和生效时机都不一样:

  • robots.txt:放在站点根目录,告诉蜘蛛哪些路径可以抓、哪些不可以。它在抓取之前生效,被禁止的页面蜘蛛通常不会请求。
  • meta robots:写在 HTML 的 head 区域,页面被抓取之后才被读到,用来控制是否索引、是否跟踪页面上的链接。
  • X-Robots-Tag:写在 HTTP 响应头里,由 Web 服务器、CDN、反向代理下发。它的作用范围比 meta 更广,能作用于图片、PDF 等非 HTML 文件,也能按目录批量下发。

正因为 X-Robots-Tag 在头部而不在页面里,很多入口页配置出问题时,站长在页面上翻半天也找不到原因。

不同取值对目标链接发现的影响

X-Robots-Tag 可以带多个值,用逗号分隔。对蜘蛛池入口页来说,下面几个值要特别注意。

noindex 和 none

noindex 的含义是不要把这个页面放进索引。它主要影响页面本身的收录状态,并不等于禁止跟踪页面上的链接。搜索引擎需要先抓到页面、读到指令,才知道它不该被索引,所以页面上的链接通常仍有被跟踪的可能。不过这属于各家的实现细节,长期把入口页放在 noindex 状态下,链接被发现和被赋予的重视程度可能下降,不适合当成一种稳定做法。

none 相当于同时包含 noindex 和 nofollow,影响面更大。

nofollow

nofollow 是直接和链接跟踪相关的值。放在响应头里时,等于告诉蜘蛛「不要跟踪这个页面上出现的链接」。对入口页来说,这一条几乎是致命的:页面能被抓取,但里面的目标 URL 不会顺着链接被走到。需要注意的是,主流搜索引擎对 nofollow 的处理属于提示性信号,不保证百分百不跟踪,实际表现要看蜘蛛日志,不要凭猜测下结论。

noarchive、nosnippet 等

noarchive 影响是否提供网页快照,nosnippet 影响摘要展示,notranslate 影响翻译功能。这几个对链接发现基本没有直接作用,但配置含义容易和 noindex 混淆,改配置时不要一起批量加上。

入口页常见的误配置场景

  • 整套站点为了「保护内容」,在 Nginx 或 Apache 全局加了一行 X-Robots-Tag: noindex,结果所有入口页都被覆盖。
  • CDN 或 WAF 的默认安全策略里带了 nofollow,站长只看了 HTML,没查响应头。
  • 反向代理把测试环境的头部原样带到线上。
  • 程序框架在输出非 HTML 文件时统一加了一段头部规则,而入口页正好走了同一条规则。
只检查页面源码,不检查响应头,等于漏掉了一半的抓取指令。

怎么确认入口页有没有被响应头限制

  1. 用命令行请求一次入口页,例如把请求头打印出来,只看响应头部分,重点找有没有 X-Robots-Tag 这一行。
  2. 用浏览器开发者工具的网络面板刷新入口页,在响应头列表里核对同样的一行。
  3. 把返回结果和目标 URL 的蜘蛛日志对照:如果入口页访问日志里有蜘蛛、目标 URL 的日志里长期没有来自该入口的抓取,就要怀疑链接是否被指令挡住。
  4. 检查同目录下的其他页面,确认是单页问题还是整个目录或整站的问题。

一些实际处理建议

  • 如果本意是让蜘蛛发现链接,就不要给入口页加 nofollow,也不建议长期挂 noindex 再指望链接被顺走。
  • 确实需要屏蔽抓取时,优先在 robots.txt 里写清楚路径,职责更明确,也更方便以后排查。
  • 修改服务器或 CDN 配置后,务必重新请求一次页面确认头部已经变化,再去看日志。
  • 把响应头检查纳入入口页上线的固定流程,和检查链接位置、状态码同级对待。

搜索蜘蛛会不会跟踪入口页上的目标链接,取决于抓取、索引、链接跟踪等多个环节的共同作用,X-Robots-Tag 只是其中一环。它不能保证链接一定被发现,但配置错误时确实会让前面的工作白做,值得花几分钟确认一下。