很多站点在 robots.txt 和 meta robots 之外,还会忽略 HTTP 响应头里的 X-Robots-Tag。它和 meta 标签作用类似,但作用范围更广,可以针对非 HTML 资源、目录、甚至整个域名下发指令。配置得当能减少无效抓取,配置失误则可能让搜索蜘蛛在抓取路径上直接绕行。本文按排查顺序梳理常见误用和核对方法。
先理解 X-Robots-Tag 的生效范围
X-Robots-Tag 通过 HTTP 响应头下发,常见值包括 noindex、nofollow、noarchive、nosnippet 等,也可以写成 none。它既可以出现在 HTML 页面响应中,也可以出现在图片、PDF、JS、CSS 等非 HTML 资源上。
- noindex:提示不要将 URL 作为搜索结果展示,但搜索蜘蛛仍可能抓取该 URL。
- nofollow:提示不要追踪页面中的链接,可能影响内链路径的发现。
- none:等价于 noindex 与 nofollow 同时生效,影响范围较大。
注意:X-Robots-Tag 不能替代 robots.txt 的抓取禁止。要阻止抓取,应优先使用 robots.txt;要控制索引展示,才考虑 noindex。
常见误用与入口拦截表现
1. 全站或大目录误加 noindex
服务器或 CDN 配置中一条通配规则,可能让整站页面都带上 noindex。表现是页面仍被抓取,但索引量逐步下降,站点地图中的 URL 被大量排除。排查时先看响应头,再看服务器配置和 CDN 规则,确认是否有人为了临时下线而添加后忘记移除。
2. 对静态资源批量加 noindex
给图片、JS、CSS 加 noindex 通常没有实际意义,因为搜索引擎一般不会把这些资源作为普通网页索引。但批量添加会干扰响应头核对,也容易把规则误扩散到 HTML 页面。建议只对确实需要控制的页面类型设置,不要图省事按文件扩展名一刀切。
3. 目录级 nofollow 阻断内链发现
如果某个栏目目录被统一加上 nofollow,该目录下页面里的链接可能不再被追踪,新 URL 的发现路径会变窄。表现是栏目内页被抓取数量减少,新页面首次抓取时间拉长。此时要检查服务器配置、应用中间件、安全插件是否自动给目录响应头追加了 nofollow。
4. 多值冲突与 CDN 覆盖
同一个 URL 可能同时存在 meta robots 和 X-Robots-Tag,两者值不一致时,限制更严格的一方通常更容易生效。另外,源站配置被 CDN 边缘规则覆盖,也会导致不同节点返回的响应头不同。排查时要分别从源站和 CDN 节点取响应头对比。
排查顺序
- 取响应头:用 curl -I 或浏览器开发者工具查看目标 URL 的完整响应头,确认是否存在 X-Robots-Tag 及其值。
- 按路径分层:分别检查首页、栏目页、详情页、静态资源、API 路径,判断影响范围是单页、目录还是全站。
- 对比不同节点与 UA:从源站直连和 CDN 节点各取一次,模拟搜索蜘蛛 UA 再取一次,排除边缘节点缓存或差异化下发。
- 检查多层配置:依次核对服务器配置、应用框架中间件、安全插件、CDN 规则,找到具体是哪一层添加了该响应头。
- 核对 robots.txt 与 meta:确认 X-Robots-Tag 是否与 robots.txt、meta robots 冲突,避免多个指令互相覆盖。
修复与观察
修复时建议精准设置,避免使用全站通配。需要保留抓取但去掉索引的页面,可以用 noindex;需要阻断链接追踪的页面,才考虑 nofollow。静态资源一般不需要额外添加索引控制头。修改后先在不同节点复核响应头,确认最终下发的值一致,再观察日志。
- 通过服务器日志观察相关路径的抓取频次、状态码和回访间隔。
- 关注站点地图中 URL 的抓取覆盖变化,但不要把它当作实时反馈。
- 如果只是索引状态变化,恢复通常需要几天到几周,期间避免频繁改动配置。
最后提醒:X-Robots-Tag 是响应头级别的指令,容易在服务器、应用、CDN 多层配置中产生冲突。每次调整后,用不同 UA 和不同节点各取一次响应头,确认最终下发的值一致,再观察抓取路径是否恢复。不要用 noindex 来阻止抓取,也不要用 nofollow 来精确控制抓取预算,这两类目标更适合交给 robots.txt 和站点结构来处理。