常见问题

入口页响应头里的 X-Robots-Tag:noindex 和 nofollow 对搜索蜘蛛的作用一样吗?

入口页用 X-Robots-Tag 控制收录与链接跟随时,noindex 和 nofollow 的效果完全不同。本文说明响应头指令与 meta robots 的区别、两者对目标 URL 发现路径的实际影响,以及如何用 curl 和服务器日志核对搜索蜘蛛真正收到的响应头,避免入口页白建。

常见问题

入口页响应头里的 X-Robots-Tag:noindex 和 nofollow 对搜索蜘蛛的作用一样吗?

蜘蛛池入口页常见的一种做法是:页面本身可以正常访问,但不希望入口页自己被收录,于是在 Nginx、Apache 或 CDN 上加了一行 X-Robots-Tag。问题随之而来——加了之后,搜索蜘蛛还会不会继续跟进页面里的目标链接?答案取决于你写的是 noindex 还是 nofollow,这两者对链接跟进的影响完全不同。

X-Robots-Tag 和 meta robots 的区别在哪

meta robots 写在 HTML 的 head 里,只有搜索蜘蛛成功下载并解析 HTML 之后才可能生效;X-Robots-Tag 写在 HTTP 响应头里,爬虫在读响应头阶段就能拿到指令。

  • 作用范围更广:图片、PDF、视频等非 HTML 资源用不了 meta 标签,只能靠响应头传递指令。
  • 不依赖页面解析:即使 HTML 下载到一半中断,响应头里的指令依然会被读到。
  • 容易和 meta 冲突:同一份指令写在两处时,以搜索引擎实际实现的规则为准,建议只保留一处,避免自己都记不清写过什么。

noindex 和 nofollow 对目标链接的影响

这是入口页运营里最容易混淆的一点:

  • X-Robots-Tag: noindex —— 只是告诉搜索引擎不要把入口页本身放进索引。页面通常仍可被抓取,页面里的链接一般也仍会被发现和跟进。对蜘蛛池入口页来说,这往往是想要的效果:藏住入口页,放过目标 URL。
  • X-Robots-Tag: nofollow —— 表示不要跟随页面上的链接。这会直接掐断从入口页到目标 URL 的发现路径,等于白建一个入口页。
  • 两者叠加在同一个响应头里时,入口页既不收录、链接也不被跟,基本只剩“存在过”的意义。
nofollow 在主流搜索引擎里多为提示性质而非硬性禁止,但把它当成可靠开关来用并不划算——你无法确定对方是否采纳。想让链接被跟,就别在入口页上加 nofollow。

入口页设置时的几个实操点

  1. 想隐藏入口页本身,优先考虑 noindex,而不是用 robots.txt 整段屏蔽。被 robots.txt 挡住的 URL,搜索蜘蛛不会去读取内容,自然也看不到里面的链接。
  2. 不要顺手加上 noarchive、nosnippet 之后又忘了,指令越堆越容易互相打架,排查成本也越高。
  3. 语法上指令名不区分大小写,但值要写对,多个指令之间用英文逗号分隔,例如 noindex, nofollow。
  4. 如果站点同时存在 meta 和响应头两套指令,先清理到只剩一处,再做测试,别在叠加状态下判断效果。

怎么确认搜索蜘蛛实际收到的响应头

不能只看服务器配置文件,因为 CDN、反向代理、缓存层都可能改写或补充响应头。

  • 用 curl -I 直接请求入口页 URL,看返回头里有没有 X-Robots-Tag,值具体是什么。
  • 换一个常见的搜索蜘蛛 UA 再请求一次,部分站点会按 UA 返回不同内容,两者需要对比。
  • 清一次 CDN 缓存再测,避免测到的其实是旧响应头。
  • 结合服务器日志核对蜘蛛 UA 与真实抓取记录,判断指令是否真的被读到。

常见误区

有人以为加了 noindex 就等于入口页对搜索蜘蛛隐身,其实入口页仍可能被抓取,只是不进索引;也有人以为响应头里的指令一定比 meta 优先,实际以搜索引擎文档和实测结果为准。对蜘蛛池运营来说,判断标准只有一个:目标 URL 有没有被稳定发现和抓取,而不是入口页有没有被收录。指令配置完成后,观察几天日志里的抓取记录,通常比反复纠结标签写法更有意义。