站点运营

站点运营:robots.txt 自查,一行规则可能影响整站抓取

robots.txt 只有几行,却直接决定蜘蛛能不能正常抓取整站。本文按顺序梳理自查步骤:先确认文件可访问,再逐条检查 Disallow 规则是否误伤静态资源或整站,说明屏蔽与 noindex 的分工,并给出改版上线前后的检查清单和改动后的日志观察方法。

站点运营

站点运营:robots.txt 自查,一行规则可能影响整站抓取

很多站点在改版、上测试环境或做临时限制时,会动到 robots.txt。这份文件只有几行,却直接决定蜘蛛能不能进来。改动前如果不做自查,很容易出现两种情况:一是把整站屏蔽了却没人发现,二是把 CSS、JS、图片一起封掉,蜘蛛拿到的是一个残缺页面。

第一步:确认文件本身可访问

先别急着看规则内容,先确认这份文件能被正常读到。在浏览器里直接打开对应地址,观察它返回的是不是一个纯文本文件。如果服务器把未知路径统一跳转到首页,或者返回 200 却带着一整个 HTML 模板,蜘蛛读到的东西和你以为的完全不同。

  • 返回码是否正常,是否为 200;
  • 是否是纯文本,有没有混入 HTML 代码;
  • 是否被 CDN 或防火墙拦截,导致蜘蛛拿到 403;
  • 是否存在多个版本,比如 http 与 https、带 www 与不带 www 各有一份且内容不一致。

第二步:逐条读一遍 Disallow 规则

规则少的时候,人眼逐条读最可靠。重点看有没有一条全局屏蔽忘了删,这类问题在改版、迁移、测试上线之后特别常见。

常见的误封对象

  • 整站目录,通常是测试期间写的全局屏蔽;
  • 静态资源目录,比如 /static/、/assets/、/js/,导致蜘蛛看到的页面没有样式和交互;
  • 图片目录或上传目录,让正文里的图片无法被发现;
  • 栏目目录本身,而不是只屏蔽其中的筛选参数;
  • 带通配符的规则,把带参数的正常页面一起杀掉。

通配符和结束符要写清楚

星号匹配任意字符,美元符号匹配结尾,两者组合时含义差别很大。写规则时建议先在本地或用验证工具确认匹配结果,别凭感觉。同一份文件里规则互相覆盖时,通常以更具体的那条为准,但这种依赖顺序的写法越少越好维护。

第三步:想清楚屏蔽和 noindex 的区别

robots.txt 表达的是不要抓取,不等于不要收录。被屏蔽的地址,蜘蛛看不到页面上的 noindex,如果外部有链接指向它,仍有可能以一个没有描述的条目形式出现。所以:

  • 想让页面完全不出现在结果里,应该让它可抓取,并在页面上返回 noindex;
  • 想省抓取预算、不想让蜘蛛把时间花在无关地址上,才用 robots.txt 屏蔽;
  • 两者混用时要格外小心,尤其是只靠 robots.txt 屏蔽的页面,往往处于一种模糊状态。

第四步:别把 robots.txt 当保密工具

这份文件是公开的,任何人都能读。把后台地址、内部接口、未上线的活动页写在 Disallow 里,等于对外公布了一份目录。真正的敏感目录应该靠登录鉴权、IP 限制或密码保护来解决,而不是指望蜘蛛不去看。

上线与改版时的检查清单

  1. 测试环境用的全局屏蔽是否已经删除;
  2. 静态资源、图片、字体目录是否可抓取;
  3. 是否声明了站点地图,地址是否正确、可访问;
  4. http 与 https、www 与非 www 版本内容是否一致;
  5. 改动后是否在日志里连续观察几天蜘蛛抓取量的变化;
  6. 是否记录了改动时间,方便出问题时回滚。
robots.txt 是门口的一张告示,不是门锁。它的作用是告诉蜘蛛哪些地方不用去,而不是保护内容不被看到。

改完之后盯几天日志

修改 robots.txt 后,抓取行为不会立刻变化,通常需要几天到几周才能看出趋势。建议对比改动前后的抓取量、被抓页面的类型分布,确认没有出现整站抓取量骤降、或者只剩静态资源被抓这类异常。如果发现不对,第一时间回滚到上一版,而不是继续叠加新规则去补救。

这份文件不大,但值得在每次上线、改版、迁移时都过一眼。把它固定成一个动作,比出事之后再回头找原因省事得多。