Robots.txt 是一个放在网站根目录的纯文本文件,它的作用是告诉搜索引擎爬虫哪些页面可以抓取、哪些应该绕过。它更像一份君子协定,而不是强制性的技术屏障。配置得当,能引导爬虫集中抓取核心内容,同时减轻服务器压力。
当搜索引擎的蜘蛛程序准备抓取你的站点时,首选请求的就是根目录下的 /robots.txt。只要文件存在,且该蜘蛛遵循协议,它就会按照文件里的指令规划接下来的抓取路径。若文件缺失,蜘蛛的默认行为是允许抓取所有公开可访问的页面。
在实际运营中,这个文件通常用来做这几件事:屏蔽后台管理页面、过滤掉标签聚合页或搜索参数页等低质量链接、通过降低抓取频率来节省服务器带宽。需要特别强调的是,虽然正规搜索引擎会遵守这里的规则,但一些非正规的采集程序根本不会理会,所以千万别把 robots.txt 当作安全防御工具。
文件内容由若干记录块组成,每条记录以 User-agent 开头,后面跟着相应的指令行。掌握以下五个基础指令是入门的关键:
下面这个写法结构清晰,便于后期维护:
User-agent: *
Disallow: /tmp/
Disallow: /private/
Allow: /private/special.html
Sitemap: https://www.example.com/sitemap.xml
这段规则的实际效果是:所有遵守协议的爬虫不能抓取 tmp 和 private 目录,但 private 目录下的 special.html 被单独放行,同时指明了站点地图的位置。
配置工作看似无脑,实则细节繁多,稍不注意就会导致规则失效或误伤。以下几个场景需要格外留心:
这里有一个高频错误请注意:路径匹配是前缀匹配逻辑。比如写了 Disallow: /news,它会顺带屏蔽掉 /newsletter 这类同前缀的页面。如果只想屏蔽 /news 目录本身,记得在末尾加上斜杠写成 /news/。
在实操中,有几个容易混淆的细节决定了规则是否真正生效。了解这些,能帮你少走不少弯路。
按照行业惯例,很多搜索引擎支持用 $ 符号表示匹配行尾。例如 Disallow: /admin$ 只会屏蔽 admin 页面本身,而不会屏蔽 /admin/ 这个目录。在使用这种写法前,需要确认目标搜索引擎是否支持对应的通配规则,否则规则可能并不会按预期执行。
判断标准很简单:配置完成后,可以借助搜索引擎站长工具里的“抓取测试”或“查看 robots.txt”功能来验证。你可以用自己的账号查看实际抓取报告,确认哪些页面被拦截,哪些被放行。若发现页面意外未收录,最先排查的就是路径前缀是否写错,尤其是大小写问题——路径匹配通常是区分大小写的。
文件必须命名为 robots.txt 且放在网站根目录下。写完后建议用文本编辑器打开检查,确认没有中文全角空格或非 ASCII 字符。此外,文件大小有约定上限,通常应保持在 500 KiB 以内,超大文件会让爬虫解析困难,从而影响整体抓取效率。
这取决于搜索引擎的重新抓取周期。通常几小时到几天不等,并非修改后立即生效。你可以在站长工具中利用“更新 robots.txt”或强制提审功能加速这一过程。
当两条规则同时命中时,以匹配长度更长的为准;如果长度相同,则 Allow 规则优先。这也是文件中特赦个别文件的逻辑基础。如果两条规则长度和优先级都相同,以文件中靠前的记录为准。
存在这种可能性。由于这是一个公开可访问的文本文件,任何懂技术的人都能直接查看。因此不要把带权限的敏感路径写在这里,真正的访问控制应交给服务器端的认证机制来负责。
Robots.txt 是爬虫管理的有效工具,但它的使用要点在于理解它是一种约定而非法律。平时维护中,你应该定期检查该文件,确保没有因路径前缀误写而屏蔽重要页面。新手起步时,先从一份只包含 Sitemap 和留空的 Disallow 配置开始即可,等熟悉了规则匹配逻辑,再逐步增加定向屏蔽。记住一点:内容开放永远是默认选项,而限制某些路径只是因为它们确实不值得被搜索引擎浪费带宽。