Robots.txt设置完整教程:语法规则与常见错误避坑指南

📍 WDQWDWQD987AAAAA:216.73.217.21
📱 Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
🔗 /27682444870a.html
📄

搜索引擎爬虫访问一个域名时,总会先到根目录查询robots.txt文件。这份纯文本的"访客须知"向爬虫声明了网站的抓取边界:哪些路径可以索引、哪些区域需要绕行。合理的robots规则,既能防止后台和测试目录进入搜索结果,又能节省网站的抓取预算,让搜索引擎把有限资源花在最重要的页面上。

1. 文件基础:放置位置与构成要素

robots.txt必须存放在网站根目录,且文件名需完全小写,例如www.example.com/robots.txt。文件正文一般使用UTF-8无BOM格式,每行承载一条独立指令,路径中的大小写字母被视为不同内容。

一份可用的robots.txt由以下核心指令组成:

以下为一条通用的基础规则示例:

User-agent: *
Disallow: /admin/
Allow: /admin/public/
Sitemap: https://www.example.com/sitemap.xml

该规则表示:允许所有爬虫抓取网站,唯独排斥/admin/路径,但/admin/public/子目录被豁免。执行此规则时要清楚,不能识别Allow指令的爬虫,依然会受到Disallow的制约。

2. 场景实践:三类典型配置范本

不同类型网站对robots.txt的需求差异明显,本节列举三个高频使用场景供参照。

2.1 完全开放:尽情抓取所有页面

内容社区、博客以及新上线的官网,通常希望搜索引擎收录越多页面越好。此时仅需声明一条无内容的Disallow即可:

User-agent: *
Disallow:

或直接省略Disallow行。开发者在此处最易踩坑的写法是Disallow: /,该写法等同于向所有蜘蛛下达"禁止入内"的指令,结果是首页可能还在,但内页收录量会直线下降。

2.2 定向封锁:屏蔽特定搜索引擎

当某些搜索引擎抓取频率过高挤占带宽,或不想让其收录站点时,可对单一爬虫单独设置规则,不影响其他引擎的正常抓取:

User-agent: Bingbot
Disallow: /

该配置会对Bing的爬虫全面关闭站点,Google的蜘蛛访问则不受干扰。具体爬虫的官方名称可在各搜索引擎站长平台中查阅,不可随意编写代号,否则规则会失灵。

2.3 限定公开区:隔离后台与临时目录

企业官网的运营后台、人员信息管理页面以及缓存生成的临时文件夹,都不适合进入搜索索引。将这类敏感目录统一拦截是高效做法:

User-agent: *
Disallow: /backend/
Disallow: /temp/
Disallow: /inner/

建议在屏蔽管理地址的同时,同步在服务器层面设置登录认证,双保险更具安全性,避免因规则配置失误导致敏感路径泄露。

3. 进阶语法:通配符与匹配规则

部分搜索引擎支持在Disallow和Allow中附加通配符,以简化规则篇幅。星号(*)可表示任意长度的字符序列,美元符号($)表示路径结束。

示例一:拦截包含特定查询参数的动态接口地址:

Disallow: /*?sort=

该规则能阻止所有带sort参数的URL被抓取。需要留意的是,旧版HTTP协议中的部分爬虫对通配符支持不足,使用前最好先在robots测试工具中验证。

示例二:仅屏蔽某个文件类型:

Disallow: /*.pdf$

若站点存在大量重复或低质PDF文件,此法可精准过滤。同时应保持规则顺序稳定,robots规范并未对匹配优先级做强制约定,为了减少歧义,推荐将更具体的路径写在前面。

4. 错误避坑:常见失误与排查方法

robots.txt配置不当时,轻则收录少,重则整站被搜索引擎无视。以下三类问题需重点防范:

排查规则最有效的方式是使用搜索引擎站长平台的robots测试功能,输入线上地址即可模拟抓取,检查哪些路径被拦截。若无法访问后台,也可以在浏览器直接打开robots.txt文件,逐行核对目录是否与实际网站结构一致。

5. 常见问题

5.1 修改robots.txt后需要等多久才能生效?

搜索引擎会周期性重新抓取该文件,这个周期通常为数天。如果急需更新,可在搜索引擎的站长后台手动提交robots文件,触发即时验证,从而缩短生效时间。

5.2 robots文件可以屏蔽其他网站引用我的图片吗?

不能。robots.txt只作用于搜索引擎的索引行为,无法阻止其他网站直接通过链接展示或调用图片。防外链应借助服务器端的防盗链配置或.htaccess规则,而非robots。

5.3 如果网站有多个域名,robots.txt需要分别设置吗?

需要。搜索引擎将不同域名视为独立站点,每个域名的根目录下都应该放置对应的robots.txt文件,并声明各自独立的Sitemap地址。

6. 总结

robots.txt是搜索引擎与网站之间的第一道沟通窗口,正确的配置能大幅提升抓取效率。建议在编写前先梳理网站的目录结构,隔离出后台、脚本及无用文件,再按需添加Allow和Sitemap声明。规则上线后不要一劳永逸,应定期检查站长平台的数据反馈,确保核心页面持续获得抓取机会,避免因URL结构改动而造成的规则失效。

图1 图2

nginx