站点运营

站点运营:robots.txt 与 noindex 自查,别让一行指令挡住整站

robots.txt 和 noindex 是站点运营中最容易被忽略、也最容易误伤整站的基础设置。本文整理一份自查清单,从抓取指令与索引指令的区别、常见误配置,到排查顺序和验证方法,帮助你在改动前多检查一遍,避免重要页面被无意挡在搜索之外。

站点运营

站点运营:robots.txt 与 noindex 自查,别让一行指令挡住整站

做站点运营,robots.txt 和 noindex 通常不会天天动,但一旦写错,影响范围往往不是单个页面。它们一个管“能不能抓”,一个管“能不能索引”,很多误伤整站的情况,都来自把这两件事混在一起,或者改完没有验证。

先分清:robots.txt 管抓取,noindex 管索引

robots.txt 是给蜘蛛看的抓取规则文件,放在站点根目录。它告诉蜘蛛哪些路径可以抓、哪些不要抓。但它不是收录开关:如果某个页面被外部链接指向,即使 robots.txt 禁止抓取,搜索引擎仍可能仅凭链接信号把它放进索引,只是没有摘要或快照。

noindex 是页面级的索引指令,通常写在 meta robots 标签或 HTTP 响应头 X-Robots-Tag 里。它表示“这个页面可以抓,但不要放进搜索结果”。两者目的不同,不能互相替代。

一个常见错误:用 robots.txt 屏蔽某个栏目,以为这样页面就不会出现在搜索里。实际上蜘蛛看不到页面上的 noindex,反而可能留下一个没有内容的索引条目。

robots.txt 自查清单

  • 是否误屏蔽整站:检查有没有出现 Disallow: / 这类规则。测试环境复制到线上、或者临时调试后忘记删除,都可能导致整站不可抓。
  • 是否屏蔽了渲染资源:CSS、JavaScript、图片如果被禁止抓取,蜘蛛可能无法正确理解页面内容和移动端适配。除非有明确原因,一般不建议屏蔽这些目录。
  • 规则是否误伤目录:比如想屏蔽 /search/,却写成了 /s,可能连带挡住其他以 s 开头的路径。规则越短,误伤面越大。
  • User-agent 分组是否正确:不同蜘蛛用不同分组,写错位置会让规则不生效。如果只想给某类蜘蛛特殊规则,确保它写在对应分组下,而不是全局分组里。
  • Sitemap 地址是否有效:robots.txt 里声明的 sitemap 地址要能正常访问,不要指向测试域名或已经改版的旧路径。
  • 是否屏蔽了重要栏目:把要参与搜索的栏目、文章目录列出来,逐条对照 robots.txt,确认没有被意外挡住。

noindex 自查清单

  • 模板是否全站误加:检查公共模板、CMS 默认设置、安全插件,有没有在所有页面输出 noindex。一个模板变量写错,整站页面都可能被标记。
  • meta 与响应头是否冲突:页面里写的是 index,服务器响应头却带 noindex;或者反过来。以更严格的一侧为准,所以两边要一起看。
  • 分页、标签、搜索页是否处理合理:这些页面不是不能 noindex,但要先想清楚:它们是希望被索引,还是只服务于站内用户。处理方式应和栏目规划一致。
  • 是否和 robots.txt 叠加使用:如果 robots.txt 已经禁止抓取,页面上的 noindex 蜘蛛就看不到。想让页面退出索引,通常应先允许抓取,再让蜘蛛看到 noindex,等索引移除后再考虑是否屏蔽抓取。
  • 移除 noindex 后是否验证:去掉 noindex 不等于马上恢复。需要确认页面可抓取、返回正常状态码,并给搜索引擎重新发现和处理的周期。

一个实用的排查顺序

  1. 先列出清单:哪些页面希望被搜索看到,哪些不希望。没有清单,后面的检查很容易凭感觉。
  2. 用命令行或浏览器开发者工具查看页面的 HTTP 响应头,确认 X-Robots-Tag 和状态码。
  3. 查看页面源代码里的 meta robots,和响应头做对照。
  4. 直接访问 /robots.txt,通读规则,重点看有没有全局屏蔽和路径误伤。
  5. 结合服务器日志,看蜘蛛实际抓取了哪些路径、返回什么状态。日志比报表更接近真实情况。
  6. 改动后,用搜索引擎提供的 robots 测试工具或抓取工具验证,再观察一段时间。不要一天内反复改规则。

把改动当成一次小发布

robots.txt 和 noindex 的改动,影响面往往比一篇文章大。建议在测试环境先验证,保留改动记录,知道谁在什么时间改了什么。线上修改前先备份原文件,改完后用无痕窗口和抓取工具各看一遍。

站点运营里的很多问题,不是缺技巧,而是缺一次检查。把 robots.txt 和 noindex 放进定期自查表,花十分钟确认,比事后补救要省事得多。