站点运营

站点运营:robots.txt 与 meta robots 自查,别让一条规则挡住整站

robots.txt 和 meta robots 是站点运营中影响抓取与索引的基础开关。本文梳理常见误屏蔽、noindex 误用、X-Robots-Tag 遗漏等问题,并给出上线前后的核对步骤,帮助减少因规则写错导致的内容无法被发现。

站点运营

站点运营:robots.txt 与 meta robots 自查,别让一条规则挡住整站

做站点运营,很多抓取和索引问题并不是服务器宕机,而是一条 robots 规则写歪了。robots.txt 和 meta robots 一个在服务器根目录,一个在页面头部,看似简单,却经常在改版、测试、上线时被忽略。它们一旦出错,影响面往往不是一两个页面,而是整站或整个栏目。

先分清抓取与索引

这两个机制管的事情不一样,混在一起写就容易出问题。

  • robots.txt:告诉蜘蛛哪些地址可以抓取、哪些不要抓。它控制的是抓取行为,不是索引结果。
  • meta robots:写在 HTML 的 head 里,告诉蜘蛛这个页面能不能被索引、能不能跟随链接。它控制的是索引和链接处理。
  • X-Robots-Tag:通过 HTTP 响应头传递类似指令,适合 PDF、图片、视频等非 HTML 资源,也适合批量控制。
如果既在 robots.txt 里屏蔽某个页面,又希望它通过 meta noindex 退出索引,蜘蛛可能根本读不到 noindex。想让页面不被索引,通常应允许抓取,再用 noindex 控制。

robots.txt 常见自查点

打开浏览器访问你的域名加 /robots.txt,先确认它返回 200,并且内容是你预期的版本。然后逐条核对:

  • 有没有出现 Disallow: /,导致整站被挡。测试环境规则误上生产是常见原因。
  • 是否屏蔽了 CSS、JS 等渲染资源。蜘蛛看不到样式和脚本,可能无法正确理解页面。
  • 重要栏目、详情页、分页路径有没有被误伤。通配符 * 和结尾 $ 的写法要检查。
  • Sitemap 指令是否指向正确且可访问的地址。地址写错等于没提交。
  • User-agent 拼写和大小写是否准确,是否把不同爬虫的规则混在一起。
  • 是否存在多份规则、旧规则残留,或者注释里写着“临时屏蔽”却一直没删。

meta robots 与 X-Robots-Tag 自查

页面级的控制更细,也更容易因为模板复制而出错。

  • 检查全站模板是否误加了 noindex。这种情况通常表现为大量页面同时从索引中消失。
  • 确认 nofollow、noarchive、nosnippet 是否真的需要。过度使用会限制蜘蛛对链接和摘要的处理。
  • 分页、筛选、打印页、排序参数页,是否适合用 noindex, follow,既不让它们占索引,又保留链接发现能力。
  • PDF、图片、视频等非 HTML 文件,检查响应头里有没有意外的 X-Robots-Tag: noindex
  • 不要同时让 noindex 和 canonical 指向其他页面,两者表达的方向可能冲突,蜘蛛需要自己判断。

上线前后的核对步骤

  1. 直接访问 /robots.txt,确认返回状态和内容,不要只看本地文件。
  2. 用搜索引擎提供的 robots.txt 测试工具,输入几个关键 URL,看是否被允许抓取。
  3. 抽查首页、栏目页、详情页的 HTML 源码,确认 meta robots 没有误写。
  4. 用开发者工具或命令行查看 HTTP 响应头,确认 X-Robots-Tag 符合预期。
  5. 上线后观察索引状态变化,但不要期待立刻生效,搜索引擎需要时间重新抓取和处理。

三个容易踩的坑

  • 用 robots.txt 清理索引:屏蔽抓取后,已有索引不一定马上消失,页面甚至可能仍出现在结果里,只是没有摘要。
  • 测试环境规则带上线:改版或迁移时,把 staging 的 noindex、Disallow 一并发布,导致线上页面被挡。
  • 只检查首页:栏目页、详情页、分页可能由不同模板生成,规则未必一致,抽查范围要覆盖主要模板。

建议把 robots 检查放进上线清单,并在每次改版、迁移、批量调整模板后抽一次。规则越简单、越集中,越不容易在某个角落留下一条“临时屏蔽”。