robots.txt 本质上是一个放置在站点根目录下的文本文件,它的职责是告诉搜索引擎的抓取工具,站内哪些路径可以自由访问,哪些路径需要绕行。这份文件不具备任何安全防护功能,但它能帮助站长隔离非公开目录、更高效地分配抓取配额,同时降低服务器不必要的负载。无论你的站点是刚上线的小型博客还是成熟的企业官网,理解并正确配置它都是必备的技能。
这套规则文件的逻辑很直白,核心就是几组指令的排列组合。只要你吃透下面三个基础单元,绝大多数场景下的配置需求都能自己动手解决。
容易踩的坑:一个 User-agent 分组后面至少要跟着一条 Disallow 或者 Allow,否则这个分组会被爬虫直接无视。同时要牢记,这份文件只管搜索引擎的机器人,普通用户通过浏览器访问站内任何公开页面都不会受到拦截,所以千万别把真正需要保密的数据寄托在它身上。
刚开始接触时,不建议一上来就写复杂规则。先从一个简约的版本起步,后续再根据实际需求逐步细化即可。以下模板可以直接拿来做参考起点。
User-agent: *
Disallow: /tmp/
Disallow: /logs/
Sitemap: https://www.example.com/sitemap.xml
验证手段与高频失误:上传后打开浏览器,地址栏输入你的域名加上 /robots.txt,如果能看到纯文本内容就说明部署成功。新手最常犯的严重错误是写成 Disallow: /,这一步操作会直接导致全站从搜索结果里消失。另一个典型问题是路径末尾的斜杠被随意省略,比如写成 Disallow: /admin,就无法匹配 /admin/ 这个目录下的全部子链接。
当站点内容逐渐丰富,非黑即白的规则就不够用了,这时 Allow 就能发挥它的独特价值。比方说,你想把整个素材文件夹藏起来,但又希望其中某张品牌主图能被搜索引擎收录,操作方式如下。
User-agent: *
Disallow: /source/images/
Allow: /source/images/brand-logo.png
实用提醒:Allow 所写的路径必须与 Disallow 定义的屏蔽区域保持一致的目录深度,不然规则会失效。此外,不同搜索引擎对 Allow 的支持程度略有差别,配置完成后最好挑几个主流爬虫分别进行抓取测试,以确认实际行为和预期一致。
除了基础的三个单元,还有一些符号和辅助指令能让你写得更省力,处理复杂结构时尤其好用。
避坑提醒:通配符并非所有搜索引擎都完全支持,老版本或不常见的爬虫可能忽略带 * 或 $ 的规则。如果发现某些不常打交道的爬虫行为异常,最好通过抓取测试工具检查具体响应,再判断是否需要为特定爬虫单独写无通配符的规则。
它只能阻止爬虫去抓取页面,但无法彻底阻止页面出现在搜索结果中。如果其他网站链接了你的页面,搜索引擎仍可能根据锚文本等信息索引该 URL,并显示标题或摘要。要真正实现不收录,应当结合 X-Robots-Tag 响应头或者页面上的 noindex 标签来操作。
建议使用搜索引擎官方提供的抓取测试工具。例如在百度搜索资源平台或谷歌搜索控制台中,都有相应的抓取模拟功能,输入具体链接后可以看到引擎读取到的文件内容以及哪些规则被命中。这种方式比手动猜测更可靠,能直观发现规则写错或路径层级不匹配的问题。
需要。robots.txt 的生效范围是基于具体域名的,每个独立域名都有自己根目录下的 robots.txt 文件。假如主站和备用域名是同一套程序,那么需要对每个域名分别上传对应的文件,并及时更新其中的 Sitemap 地址和目录规则,避免发生规则指向错误。
配置 robots.txt 的核心并不在于背下多少语法,而是在于清楚每个指令对应的实际抓取行为。建议你从一份简洁的基础文件开始部署,上线后利用各搜索引擎的抓取测试工具验证实际效果,再根据站点结构逐步补充 Allow 例外或通配符规则。定期留意抓取日志中的异常请求和收录数据,持续微调,才能让爬虫的访问真正为你的站点带来正向收益。