蜘蛛池入口页的作用,是让搜索引擎蜘蛛有可抓取的入口,并顺着页面里的链接继续发现 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:允许跟随链接但不收录本页。某些跳转型入口页会这么用,需要明确目的之后再决定。
入口页常见的误配置
- 建站模板或 CMS 插件默认给所有页面加了 noindex,只在首页或少数模板里放行,入口页被整体覆盖。
- 从测试环境复制页面到正式环境时,把 meta name="robots" content="noindex" 一起带了过来。
- 同一个页面里存在多个 meta robots 标签且内容冲突,最终按哪条生效并不总是符合预期。
- 服务器或 CDN 层统一追加了 X-Robots-Tag: noindex,模板里改多少次 meta 也不起作用。
- 安全插件把 X-Robots-Tag 当作防爬手段,对所有响应统一下发 noindex。
- 拼写或大小写问题,例如写成 NOINDEX、no-index、nofollows,可能被忽略或产生歧义。
排查顺序
- 用 curl -I 查看响应头里有没有 X-Robots-Tag。
- 查看未执行 JS 的原始 HTML,确认 meta robots 的数量与内容。
- 确认反向代理、CDN、WAF 是否改写或追加了响应头。
- 在搜索引擎提供的 URL 检查工具里看解析出的指令,与源码逐条对照。
- 修正后重新抓取,再观察访问日志与索引状态的变化。
使用建议
入口页的指令越简单越好。多数情况下保持默认的可抓取、可跟随即可;只有在“页面本身不需要被收录、但需要传递抓取路径”时,才考虑 noindex, follow,并且要清楚它并不等于页面一定不会被索引。反过来,确实不希望被收录的页面,用 noindex 把态度写明确,比留着默认值更省心。
把 meta robots 当成一次性的配置,而不是一次性的调试。改动模板、切换主题、上线新插件之后,都值得重新确认一遍入口页的指令。
X-Robots-Tag 与 meta robots 出现冲突时,通常以更严格的一条为准,但不同引擎、不同版本的处理细节会有差异。与其去赌哪条生效,不如让两处保持一致,并在每次改动后回到响应头和原始 HTML 里复核一次。