访问一个网站时,搜索引擎爬虫通常先读取根目录下的 robots.txt 文件。这份纯文本文件相当于站点与爬虫间的“抓取约定”,清楚标明哪些页面可以抓取、哪些区域应避开。如果配置合理,能避免后台或重复页面被编入索引,同时让爬虫将抓取额度集中用于核心内容。
robots.txt 文件须放置在网站根目录,文件名与路径均区分大小写,并建议以 UTF-8 格式保存,每条指令单独一行。一个典型配置常由以下四类字段构成:
以下是一个常见写法的组合:
User-agent: *
Disallow: /admin/
Allow: /admin/public/
Sitemap: https://yourdomain.com/sitemap.xml
这条规则表示:所有爬虫都能访问站点,但 /admin/ 路径整体禁止,其中 /public/ 子目录例外。由于 Allow 指令并非所有爬虫都识别,对于未知晓该命令的爬虫,更严格的 Disallow 规则仍然生效,所以想局部放宽限制不能依赖 Allow。
不同站点的抓取需求存在明显差异,以下三种思路基本涵盖了主流情况,可直接套用或适当调整。
内容型网站希望爬虫尽可能多地收录页面,此时将 Disallow 留空即可:
User-agent: *
Disallow:
需留意的是,如果完全删掉 Disallow 这一行,效果同样一致。常见的失误是把这行写为 Disallow: /,一旦如此,所有爬虫都会停止访问整站,收录随即停滞,这个细节务必警惕。
有些站点不想被某个搜索引擎收录,但又不愿影响其他搜索入口,可以单独为它定制规则:
User-agent: Bingbot
Disallow: /
上述配置只对 Bing 的爬虫生效,Google 和百度的抓取行为不受任何影响。操作前最好去各搜索引擎官方站点核对爬虫的准确名称,例如百度对应 Baiduspider,名称拼写有误,屏蔽便形同虚设。
遭遇整站改版或敏感数据迁移时,短暂禁抓全站是稳妥的防护手段:
User-agent: *
Disallow: /
但切记,这仅是临时措施。改版完成后若忘了恢复规则,搜索收录会持续陷入停滞,恢复后还需通过平台工具主动提交链接,以加速重新抓取。
实践中,不少站长在以下环节容易踩坑,提前了解能省去返工成本。
写完 robots.txt 后,建议先验证再投入线上使用,以免出现意料之外的屏蔽。
这些步骤能帮你快速发现规则冲突或拼写错误,避免收录损失。
先确认文件是否位于根目录且格式无误,再检查是否有重复的 User-agent 规则产生了冲突。若仍无效,可尝试删除文件后重新上传,并清除缓存再复核。
不能。robots.txt 只是阻止爬虫抓取内容,并不保证页面不会出现在搜索结果中,比如外部链接的锚文本仍可能带来展示。需要彻底排除索引时,应使用 noindex 标签或密码保护。
对于支持 Allow 的爬虫(如 Google),会根据规则匹配的最长路径长度判断,较长的规则优先。对于不识别 Allow 的爬虫,则 Disallow 规则直接生效,因此不能仅靠 Allow 来开放子目录。
robots.txt 配置看似简单,实际牵涉细节众多。从文件放置位置到字段名称拼写,再到临时规则的恢复,每个环节都可能影响抓取效果。建议你现在就检查一下站点的现有配置,确认没有误写 Disallow: / 或文件放置错误,同时留意 Allow 指令的兼容性,并养成改版后及时恢复规则的习惯,这样能让爬虫更高效地为你服务。