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 再加访问密码,避免和正式站内容撞车。正式站则不要照抄测试环境的规则文件。
改完之后的验证动作
- 用搜索引擎提供的 robots.txt 测试工具跑一遍,看看目标地址是允许还是禁止。
- 在浏览器里直接访问,确认返回状态和文件内容都正确。
- 观察接下来几天的蜘蛛访问日志,看被屏蔽的目录是否仍有抓取、放开的目录是否开始进来。
- 把这次的修改时间、修改内容记进运维记录,方便以后回溯。
robots.txt 是一份写给蜘蛛看的说明书,写得越明确,双方越省事。它不会让站点一夜之间多出多少收录,但一次误写,足以让抓取停摆好几天。