蜘蛛池知识

蜘蛛池入口页的 meta robots 指令:noindex、nofollow 与误配置排查

入口页能被抓取,不等于链接会被跟随。meta robots 与 X-Robots-Tag 决定页面被抓到之后如何处理,一旦被模板、插件或 CDN 误下发 noindex、nofollow,入口页可能照常出现在访问日志里,却起不到发现 URL 的作用。本文梳理常见指令含义、误配置场景与排查顺序。

蜘蛛池知识

蜘蛛池入口页的 meta robots 指令:noindex、nofollow 与误配置排查

蜘蛛池入口页的作用,是让搜索引擎蜘蛛有可抓取的入口,并顺着页面里的链接继续发现 URL。但页面能不能被抓、抓到之后链接会不会被跟随,不只取决于 robots.txt,还取决于页面级的 meta robots 指令,以及 HTTP 响应头里的 X-Robots-Tag。这两处一旦写错,入口页可能在访问日志里被正常请求,却起不到应有的作用。

三个层级的分工

robots.txt 管的是“抓不抓”,meta robots 和 X-Robots-Tag 管的是“抓到之后怎么处理”。

  • robots.txt 的 Disallow 会让蜘蛛干脆不来请求,页面通常不会出现在访问日志里。
  • meta robots 的 noindex 允许抓取,但要求不要把页面放进索引。
  • X-Robots-Tag 通过 HTTP 响应头下发同样的指令,常用于非 HTML 资源或无法改模板的场景。

如果入口页既需要被抓取、又要顺着页面里的链接继续爬,那么“可抓取 + 可跟随”是基本要求。

常见指令值

  • index, follow:默认状态,通常不需要显式写。
  • noindex:不要收录本页。入口页若被误设,等于把入口从索引里摘掉。
  • nofollow:不跟随本页链接。对以链接发现为核心的入口页来说,这是破坏性最强的一条。
  • noarchive / nosnippet:影响快照与摘要展示,一般不影响抓取和链接跟随。
  • none:等价于 noindex, nofollow,影响最大。
  • noindex, follow:允许跟随链接但不收录本页。某些跳转型入口页会这么用,需要明确目的之后再决定。

入口页常见的误配置

  1. 建站模板或 CMS 插件默认给所有页面加了 noindex,只在首页或少数模板里放行,入口页被整体覆盖。
  2. 从测试环境复制页面到正式环境时,把 meta name="robots" content="noindex" 一起带了过来。
  3. 同一个页面里存在多个 meta robots 标签且内容冲突,最终按哪条生效并不总是符合预期。
  4. 服务器或 CDN 层统一追加了 X-Robots-Tag: noindex,模板里改多少次 meta 也不起作用。
  5. 安全插件把 X-Robots-Tag 当作防爬手段,对所有响应统一下发 noindex。
  6. 拼写或大小写问题,例如写成 NOINDEX、no-index、nofollows,可能被忽略或产生歧义。

排查顺序

  1. 用 curl -I 查看响应头里有没有 X-Robots-Tag。
  2. 查看未执行 JS 的原始 HTML,确认 meta robots 的数量与内容。
  3. 确认反向代理、CDN、WAF 是否改写或追加了响应头。
  4. 在搜索引擎提供的 URL 检查工具里看解析出的指令,与源码逐条对照。
  5. 修正后重新抓取,再观察访问日志与索引状态的变化。

使用建议

入口页的指令越简单越好。多数情况下保持默认的可抓取、可跟随即可;只有在“页面本身不需要被收录、但需要传递抓取路径”时,才考虑 noindex, follow,并且要清楚它并不等于页面一定不会被索引。反过来,确实不希望被收录的页面,用 noindex 把态度写明确,比留着默认值更省心。

把 meta robots 当成一次性的配置,而不是一次性的调试。改动模板、切换主题、上线新插件之后,都值得重新确认一遍入口页的指令。

X-Robots-Tag 与 meta robots 出现冲突时,通常以更严格的一条为准,但不同引擎、不同版本的处理细节会有差异。与其去赌哪条生效,不如让两处保持一致,并在每次改动后回到响应头和原始 HTML 里复核一次。