站点运营

站点运营:robots.txt 自查,别让一行误写挡住整站

robots.txt 是蜘蛛进站前最先读取的文件,规则不多但影响直接。本文给出一份可执行的自查清单:确认文件能否正常访问、逐条核对 Disallow 与 Allow 的写法、检查静态资源是否被误挡、Sitemap 指令怎么填,以及修改后如何验证,减少因为一行误写造成抓取停摆。

站点运营

站点运营:robots.txt 自查,别让一行误写挡住整站

robots.txt 通常放在站点根目录,是蜘蛛进入站点前最先读取的文件之一。它语法简单,往往几行就写完,也正因为简单,很多人写完就忘,直到抓取量出现异常才回头翻。下面这份自查清单,适合在改版、上线新栏目、迁移环境之后过一遍。

先确认文件能被正常拿到

不少问题不是规则写错,而是蜘蛛根本没读到这个文件。

  • 地址应当是 https://example.com/robots.txt,放在子目录(例如 /blog/robots.txt)不会被识别。
  • 访问返回 200,内容是纯文本。返回 404 时,蜘蛛一般按“无限制”处理,等于规则完全失效;返回 5xx 时行为不稳定,可能直接减少抓取。
  • 文件别写得太长,几百行已经足够,超出常见体积限制的部分可能被截断。

逐行核对 Disallow 规则

最常见的翻车,是测试期留下的 Disallow: / 没删,上线后整站被挡。检查时重点看这几处:

  • 是否有一次性挡住整站的规则,或者挡住了栏目主目录。
  • 通配符 * 和结尾符 $ 用得是否准确,避免误伤正常 URL。
  • 路径区分大小写,/News 和 /news 是两条不同的规则,容易漏看。

另外要记住一点:Disallow 只是阻止抓取,并不阻止收录。一个被屏蔽的地址仍可能因为外链进入索引,只是标题和摘要可能残缺。真要控制收录,应该让页面能被正常抓取,再通过 noindex 或 canonical 来处理。

Allow 与匹配优先级

规则按“最长匹配优先”处理,长度相同时 Allow 优先于 Disallow。所以可以先用 Disallow 挡住整个目录,再用 Allow 单独放开某个路径。例外情况要写清楚,不要指望书写顺序生效。

别顺手挡住 CSS、JS 和图片

屏蔽静态资源曾经是省流量的做法,现在反而会让蜘蛛拿到一个没有样式、缺少内容的空壳,判断页面质量时缺少依据。样式表、脚本、图片目录建议保持可抓取。

Sitemap 指令别写错

  • 用绝对地址,包含协议和完整域名。
  • 有多个站点地图时,分行写多条 Sitemap 指令。
  • 这里只是声明入口,不能替代搜索资源平台里的提交,也不代表一定会被收录。

区分正式环境和测试环境

测试站、预发布环境如果对外可访问,比较稳妥的做法是整站 Disallow 再加访问密码,避免和正式站内容撞车。正式站则不要照抄测试环境的规则文件。

改完之后的验证动作

  1. 用搜索引擎提供的 robots.txt 测试工具跑一遍,看看目标地址是允许还是禁止。
  2. 在浏览器里直接访问,确认返回状态和文件内容都正确。
  3. 观察接下来几天的蜘蛛访问日志,看被屏蔽的目录是否仍有抓取、放开的目录是否开始进来。
  4. 把这次的修改时间、修改内容记进运维记录,方便以后回溯。
robots.txt 是一份写给蜘蛛看的说明书,写得越明确,双方越省事。它不会让站点一夜之间多出多少收录,但一次误写,足以让抓取停摆好几天。