robots.txt 是放在网站根目录的纯文本文件,用统一的语法告诉搜索引擎爬虫哪些路径可以访问、哪些路径应当回避。配置得当可以提升有效页面的收录效率,减少服务器无谓的抓取压力;配置失误则可能导致页面收录延迟、权重异常甚至整站被降权。以下从语法核心、匹配逻辑到高频陷阱逐一说明。
robots.txt 的职责是“建议访问范围”,而非强制访问控制。它只对遵守协议的合规搜索引擎有效,不构成任何安全屏障。若涉及敏感数据或需保密的路径,必须使用账号鉴权、IP 黑白名单等硬性防护手段,不能依赖此文件。
另外一个关键认知是:robots.txt 仅能阻止爬虫“抓取”页面,并不能阻止页面“索引”。如果希望页面彻底不出现在搜索结果的链接中,需要配合页面上的 noindex 标签;仅靠 robots.txt 禁止抓取,页面仍有可能因为外链或其他途径被收录并展示摘要。
文件由一条或多条规则组组成,每条规则组以 User-agent 开头,后续跟随 Allow、Disallow 等指令。格式为“字段名: 值”,冒号后留一个空格更稳妥,字段名用小写可减少兼容性问题。
User-agent 指定规则适用的爬虫名称,如 User-agent: Googlebot 仅对谷歌的爬虫生效,User-agent: * 表示对所有爬虫生效。可在同一文件中为不同爬虫设置多组规则,例如对 Badiu 禁止抓取图片目录,而对 Google 完全放行,实现差异化管理。
Disallow 表示禁止抓取的路径前缀,Allow 表示允许的路径前缀。Disallow 后留空表示不限制,即允许抓取整个站点。当同一路径同时匹配 Allow 和 Disallow 时,搜索引擎按“最长匹配原则”处理:谁匹配的路径字符串更长、更具体,谁优先。例如 Disallow: /tmp/ 与 Allow: /tmp/pic/ 同时存在时,/tmp/pic/ 下的文件可以抓取,其余 /tmp/ 路径被禁止,该机制用于精细化放行子目录十分有效。
Sitemap 指令后接站点地图完整 URL,可帮助爬虫更快发现新内容。Crawl-delay 用于指定相邻两次抓取之间的间隔秒数,对服务器压力大的站点有一定帮助,但它并非所有引擎的标准指令,部分爬虫会忽略,不能作为限速的唯一手段。
不同业务场景的配置要点见下表,均以通用写法示例:
配置完成后需立即用浏览器访问域名下的 robots.txt 文件,确认内容正常、语法无误,并可通过搜索引擎站长工具中的“抓取测试”功能验证规则生效情况。注意每次修改后测试,不要只保存不管。
以下是实际配置中最常出现的错误,逐一说明并给出规避方式:
修改文件前先备份原内容,方便回滚;上线前通过测试工具确认改动的实际效果,再逐渐扩大影响范围。
通常不会直接降权,但可能导致大量重要页面无法抓取,从而间接影响收录和排名。一旦发现异常,应迅速恢复或修正规则,并通过受影响的页面URL检查状态即可。
不能。robots.txt 的禁止优先级高于 sitemap 中的链接,即便提交了站点地图,爬虫依然不会抓取被 Disallow 的 URL。需要修正 robots.txt 解除禁止,sitemap 才会发挥作用。
可在浏览器直接访问 robots.txt 查看内容更新,或在搜索引擎站长后台的 robots 测试工具中输入具体路径,查看该路径是被允许还是被禁止,比人工判断更准确。
配置 robots.txt 时先明确它的职责边界,然后熟练运用 User-agent、Allow、Disallow 等核心字段,并掌握最长匹配原则。设置完成后务必用测试工具验证关键页面状态,同时避免用其保护敏感数据。每次改动前备份、改动后验证,将规则保持在可维护的范围内,就能稳定保障网站的抓取效率与收录表现。