搜索抓取

X-Robots-Tag 写在响应头里,蜘蛛会在抓取时先看到它

X-Robots-Tag 是放在 HTTP 响应头里的抓取与索引指令,蜘蛛在下载 HTML 之前就能读到它。本文说明它与 meta robots 的先后差异、常见指令含义,以及对链接发现、Sitemap 提交和内链路径的实际影响,并给出检查方法。

搜索抓取

X-Robots-Tag 写在响应头里,蜘蛛会在抓取时先看到它

谈到控制蜘蛛抓取,很多人先想到 robots.txt 和页面里的 meta robots。但还有一条指令藏在 HTTP 响应头里,蜘蛛在拿到 HTML 之前就能读到,它就是 X-Robots-Tag。它不负责吸引蜘蛛,也不保证收录,只是把“这个响应该怎么处理”提前告诉抓取端。

X-Robots-Tag 和 meta robots 的先后差别

meta robots 写在 HTML 的 head 里,蜘蛛需要先下载并解析页面,才能看到它。X-Robots-Tag 放在 HTTP 响应头中,蜘蛛请求 URL 时随响应一起收到,时机更早。对于 PDF、图片、视频等非 HTML 文件,meta 标签通常没有地方可放,X-Robots-Tag 就成了少数可用的指令入口。

两者不是互相替代的关系。如果同时存在,蜘蛛会综合处理;但配置不一致时,排查成本会变高。建议同一批 URL 只保留一种主要写法,避免一个说 noindex、另一个说 index。

常见指令分别表达什么

  • noindex:不要把该 URL 作为搜索结果展示。注意,它不阻止蜘蛛抓取,只是影响索引。
  • nofollow:不跟随该响应中的链接。蜘蛛仍可能抓取当前 URL,但页面内链接的发现效率会受影响。
  • none:相当于 noindex 与 nofollow 同时生效。
  • noarchive:不提供缓存版本入口。
  • nosnippet:不在搜索结果中展示摘要片段。
  • max-snippet、max-image-preview:限制摘要长度或图片预览尺寸。
  • unavailable_after:指定某个时间后不再展示该页面。

这些值可以组合,也可以针对特定蜘蛛写。写法通常是在响应头里加一条 X-Robots-Tag,后面跟指令和值。不同服务器的配置方式不同,改完后要用实际响应验证。

对抓取路径和链接发现的影响

如果只在响应头里写 noindex,蜘蛛仍然会请求这个 URL。它会消耗一次抓取,只是最终不把页面放进索引。若这个 URL 还被大量内链指向,蜘蛛会沿着内链反复走到这里,抓取路径的效率就会下降。

如果写 nofollow,当前页面里的链接可能不再被跟随。对依赖内链发现新 URL 的站点来说,重要栏目和详情页之间尽量不要用 nofollow 切断路径。真正需要阻止抓取的目录,更合适的方式是用 robots.txt 或访问控制,而不是只靠 noindex。

按目录和按蜘蛛定向

X-Robots-Tag 的优势之一是可以按目录批量配置。比如测试目录、后台附件目录、临时活动页,可以在服务器层统一加 noindex,不必逐个页面改模板。也可以针对特定蜘蛛写指令,但 User-Agent 可以被伪装,定向规则更适合作为补充,不适合当作安全边界。

还要注意 CDN 和反向代理。如果响应头在边缘节点被覆盖或缓存,蜘蛛看到的指令可能和你本地测试不同。改完后最好从公网请求一次,确认最终返回的头信息。

和 Sitemap、内链怎么配合

Sitemap 里提交的 URL 如果返回 noindex,蜘蛛可能仍会抓取,但不会索引。这会占用抓取资源,也容易让运营误以为“已经提交就万事大吉”。定期对比 Sitemap 列表和响应头,把不该出现的 URL 清理掉,比反复提交更有效。

内链同样要检查。指向 noindex 页面的链接越多,蜘蛛在站内绕路的概率越高。把重要路径留给需要被抓取和索引的页面,会让抓取路径更清晰。需要提醒的是,这些操作只是减少无效抓取,并不承诺收录速度或排名变化。

怎么确认指令已经生效

  1. 用命令行请求页面,查看响应头中是否出现 X-Robots-Tag。
  2. 在浏览器开发者工具的 Network 面板里看 Response Headers。
  3. 对照服务器日志,确认蜘蛛请求时返回的也是同一套头信息。
  4. 在搜索平台的 URL 检查工具里查看抓取到的页面信息,辅助判断索引状态。
X-Robots-Tag 是抓取和索引阶段的补充指令,不是排名工具。把它用在对的地方,能减少蜘蛛走错路;把它当成万能开关,反而容易制造新的抓取问题。

总结来说,X-Robots-Tag 的价值在于“更早、更批量、对非 HTML 文件也有效”。部署前想清楚目的是阻止抓取、阻止索引,还是控制摘要展示;部署后用真实响应核对。保持指令一致,内链和 Sitemap 不互相打架,蜘蛛的抓取路径才会更顺。