robots.txt 是部署在网站根目录下的一个纯文本文件,它通过简洁的指令与搜索引擎爬虫沟通,告知哪些内容可以抓取、哪些应当跳过。它虽然不是强制性的安全工具,却直接影响着站点的抓取效率与索引质量。配置得当,搜索引擎会把抓取预算集中在核心页面上;配置失误,则可能让重要内容从搜索结果中消失。
这个文件的基本原理建立在爬虫自愿遵守的协议之上。主流搜索引擎如 Google、Bing 都会在抓取前检查该文件,并根据其中的规则决定访问范围。它主要解决三类问题:屏蔽后台、测试页等非公开区域,减少重复动态链接带来的抓取浪费,以及通过声明 Sitemap 加速新内容的收录。
需要注意,robots.txt 对所有网络用户都是公开可读的。它无法替代密码保护或 IP 白名单,任何不希望被公开展示的敏感数据,都应该依赖更严格的身份验证机制来保障安全。
robots.txt 遵循“字段名: 值”的格式,每条规则独占一行。字段名不区分大小写,但所写的路径必须区分大小写。
假设网站有一个仅供内部使用的 /assets/temp/ 文件夹,但其中有个临时促销页希望被收录,同时需要告知爬虫地图位置。配置可参考下方示例:
User-agent: *
Disallow: /assets/temp/
Allow: /assets/temp/promo.html
Sitemap: https://www.example.com/sitemap.xml
这段规则的含义清晰:所有爬虫默认不得访问 temp 目录,但 promo.html 被视为例外可正常抓取,最后补充了地图地址。
robots.txt 采用前缀匹配机制。如果写下 Disallow: /api,那么 /api/user、/api/data 等所有以此开头的路径都会被禁止。因此,书写路径时要注意前缀的精确性,避免误伤。
路径末尾的斜杠也常被忽视。Disallow: /report 与 Disallow: /report/ 含义不同——前者会同时屏蔽 /report.pdf 这类文件,后者则只限制以该目录开头的链接。
此外,规则顺序会带来影响。当同一条路径同时命中 Allow 与 Disallow 规则时,搜索引擎通常采用最短匹配优先的原则来判断,但不同爬虫的具体实现有差异。尽量避免编写互相矛盾的规则,始终保持逻辑的简单直接。
在实践中,不少站点因为以下失误付出了流量代价,值得提前警惕。
主流爬虫会定时重新读取该文件,但间隔并不固定,短则数小时,长则可能数天。如果急需生效,可以通过搜索引擎的站长工具主动提交更新请求,通常能明显缩短等待时间。
只能阻止遵守该协议的正规爬虫。恶意爬虫或特定采集工具并不会理会这些规则。此外,robots.txt 无法阻止页面被其他网站引用或复制,它只作用于抓取行为本身。
立即编辑文件,清空 Disallow 规则,改为空的 Disallow:(注意不要填写任何值)或直接删除对应行。保存后通过站长工具提交验证,一般情况下页面会在随后的抓取中恢复正常,但恢复速度取决于爬虫再次访问的周期。
robots.txt 是一份需要长期维护的技术配置文件。建议每次调整后都实际访问一下文件内容,确认语法无误、路径精准。同时,定期检查搜索引擎的抓取报告,及时清理不再需要的屏蔽规则。把这份文件视为站内资源分配的引导工具,而不是内容隐藏的手段,才能让它真正服务于搜索优化目标。