搜索引擎爬虫造访一个网站时,第一眼看到的往往不是首页,而是根目录下那个不起眼的 robots.txt 纯文本文件。它的职责非常简单:告诉爬虫哪些内容欢迎抓取,哪些区域必须避让。搞定了这个文件,既能守住后台、测试页等敏感信息的隐私边界,也能让宝贵的抓取配额集中用在真正有价值的页面上。
robots.txt 必须存放在域名根目录,比如 https://yourdomain.com/robots.txt,请确保文件使用 UTF-8 编码,每条指令独占一行。有一点容易被忽略:路径的字母大小写是严格区分的,/Admin/ 和 /admin/ 会被视为两个完全不同的目录。
一份标准文件通常由四个核心字段组成:
下面是一份典型配置,供你直观理解字段间的配合:
User-agent: *
Disallow: /private/
Allow: /private/shared/
Sitemap: https://yourdomain.com/sitemap.xml
这段规则的意思是:允许所有爬虫来访,/private/ 整目录禁止抓取,唯一的例外是 /private/shared/ 子目录可以正常读取。判断标准上要记住一点:当爬虫不认 Allow 指令时,逻辑上更严格的 Disallow 依旧拥有最终决定权,因此不要指望所有引擎都能理解"开个小口子"的写法。
不同站点的抓取诉求天差地别,这里整理了三类最常见的使用场景及对应方案,你直接对照修改即可。
对于新上线的内容站或资讯站点,最理想的状态是爬虫对每个页面都充满好奇。只需一行空规则就能实现:
User-agent: *
Disallow:
这里有个高频翻车点需要警惕:直接把 Disallow 的值写成 /,这一行就会瞬间锁死全站,收录彻底停摆。如果你发现站点流量莫名下降,第一步就该去检查是否有这一行漏网之鱼。
有时候你可能想让某一家搜索引擎的爬虫吃个闭门羹,又不影响其他引擎的正常收录。这时针对特定爬虫单独下发规则即可:
User-agent: Baiduspider
Disallow: /
这段规则只对百度生效,Google 和 Bing 的抓取完全不受波及。动手之前请务必查阅各引擎官方文档,确认爬虫的真实名字,常见的像 Baiduspider、Googlebot、bingbot 各有拼写,写错一个字母规则就形同虚设。
当站内存在一个体积庞大的资源目录,你不想让爬虫通吃,但又希望其中个别页面能进入索引,可以用 Allow 做定向开放。
User-agent: Googlebot
Disallow: /uploads/
Allow: /uploads/demo/
举一个具体情景:/uploads/ 下存放着大量压缩包与临时文件,全放行会浪费宝贵配额,而 /uploads/demo/ 里的展示页却必须靠搜索引擎带量。这条规则刚好让爬虫"大部分绕行,个别通行"。需要提醒的是,此方案对 Google 等部分引擎有效,对不认 Allow 的爬虫会退化为封闭整个 /uploads/ 目录。
配置不报错不代表配置正确,以下六点是实践中最容易踩的坑。
写完规则后,建议立刻打开 https://yourdomain.com/robots.txt 在浏览器里检查文件是否正常渲染,确认没有乱码或多余的换行符。更可靠的验证手段是去各搜索引擎站长平台,Google Search Console 和百度搜索资源平台都提供 robots 测试工具,你可以粘贴规则后输入想验证的 URL,查看爬虫的模拟访问结果。
判断标准也很清晰:规则标注的禁止路径,测试结果应当显示"被 Disallow 阻止";而允许的路径应当显示"允许抓取"。如果两者表现不符,优先检查字段拼写、路径写法以及编码格式这三个环节。另一个小建议是给文件末尾加上一个注释行记录最近修改日期,方便团队后续协作时快速定位变更历史。
影响很小但真实存在。若文件缺失或返回 404,爬虫通常仍按默认策略抓取;但若文件内容冗余、体积过大或包含过多无意义规则,会延迟爬虫的解析时间。建议保持文件精简,尽量控制在十几行以内,并把 Sitemap 声明放在文件靠前位置。
不能。它只对遵循协议的爬虫起作用,恶意爬虫、采集工具完全可以无视规则。想拦截低质量爬虫,更有效的手段是结合服务器端的 IP 限制或 UA 拦截规则,robots.txt 只是第一道门槛,而非安全屏障。
完全可以。文件支持按需求划分多个规则组,比如针对 Googlebot 放行全站,针对某个爬虫单独封禁目录。每个爬虫会与自己的规则组匹配,匹配不到就参考最顶端的 * 通用规则。建议把 * 规则放在文件末尾作为兜底,避免前面的通用规则影响后面特定规则的解析。
robots.txt 虽小,但它的语法细节直接关系到一个网站的收录命脉。动手配置时,先确认爬虫名称拼写,再明确 Disallow 与 Allow 的优先级关系,最后务必用站长工具做一轮验证。定期检查文件内容,确认后台与测试路径持续被遮蔽,并保持 Sitemap 声明最新,这一整套动作能帮你把抓取资源花在刀刃上。