robots.txt 配置完全指南:语法规则、典型写法与避坑要点

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

搜索引擎爬虫访问一个站点时,通常会先看根目录下的 robots.txt 文件。这个纯文本文件是站主与爬虫之间的"抓取契约",用来告诉搜索引擎哪些内容可以收录、哪些部分需要避开。如果配置得当,既能阻止后台页面和重复内容进入索引,也能让爬虫把有限的抓取预算用在核心页面上。

1. 核心语法解读:一份规范的文件由哪些部分组成

robots.txt 文件必须存放在网站根目录,文件名和路径严格区分大小写,且需以 UTF-8 编码保存,每条指令占据独立一行。一个完整的配置通常由以下四个字段构成:

下面是一个典型的组合示例,可以看出规则的运转逻辑:

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

这段配置的含义是:所有爬虫都允许访问站点主体,/admin/ 目录整体被禁止,但该目录下的 /public/ 文件夹例外,可以被抓取。需要留意的是,Allow 的识别度不如 Disallow 广泛,对于不支持 Allow 的爬虫,较严格的 Disallow 规则依然优先生效,所以想单独放宽某个目录时,不能完全依赖这一字段。

2. 不同需求下的推荐配置方案

每个站点的抓取需求各有差异,下面三种配置思路覆盖了绝大多数实际场景,可以灵活套用。

2.1 内容型网站或新站:全站开放抓取

以内容为主要价值的站点,目标通常是想让搜索引擎尽可能多地收录页面。这种情况下,Disallow 字段留空即可:

User-agent: *
Disallow:

值得注意的是,即便把 Disallow 整行删除,效果也完全一样。而很多人容易误写成 Disallow: /,一旦这样写,所有爬虫都会立即停止抓取全站,收录过程戛然而止,这个细节务必加倍小心。

2.2 仅屏蔽某一个搜索引擎

如果不想让特定的搜索平台收录站点,又不希望其他搜索引擎的抓取受到干扰,可以单独为它定制规则:

User-agent: Bingbot
Disallow: /

上例中,只有 Bing 的爬虫会被禁止访问,Google、百度等其他搜索引擎不受影响。在设置之前,最好去各搜索引擎的官方文档核对爬虫名称,例如百度的爬虫名为 Baiduspider,拼写一旦写错,屏蔽操作就会失去效果。

2.3 站点改版或数据迁移期:临时禁止全站抓取

当站点面临大规模改版、服务器迁移或敏感数据清理时,短暂禁止所有爬虫访问是一个稳妥的临时方案:

User-agent: *
Disallow: /

但记得及时删除这条规则。曾经有站点因忘记清理这个临时配置,导致长时间处于零收录状态,恢复之后很长一段时间的流量都受到影响。建议在任务完成当天就更新回原来的配置。

3. 容易被忽视的语法细节

robots.txt 虽然简单,但有几个细节搞错了并不会报错,而是默默失效。首先,路径匹配是前缀匹配,比如 Disallow: /help 会同时禁止 /help、/help.html 以及 /help/faq 等以 /help 开头的所有路径。其次,字段名和值之间必须使用英文冒号加空格的形式,使用中文冒号或缺少空格都会让整条规则失效。最后,文件内不支持注释符号 # 之外的任何字符编码,保存时需确保编码格式为 UTF-8 无 BOM,否则可能解析异常。

4. 测试与排错的实用方法

写完 robots.txt 后,务必要进行验证,而不是直接发布。Google 的 Search Console 提供了 robots.txt 测试工具,可以模拟 Googlebot 抓取页面并查看实际拦截结果。同时也可以直接在浏览器中访问 /robots.txt 地址,检查文件是否正常返回。判断规则是否生效,最直接的方式是查看搜索引擎抓取日志中是否有 403 或 404 状态,如果出现持续抓取被禁止目录的记录,说明配置未按预期生效。

5. 常见问题

5.1 robots.txt 能完全阻止搜索引擎收录我的页面吗

不能。robots.txt 只是"抓取层面的建议",它阻止的是爬虫抓取页面内容,但不保证页面从搜索结果中消失。如果其他网站链接了该页面,搜索引擎可能仍会基于链接信息和已有索引展示摘要甚至快照。要彻底移除页面,应结合 noindex 标签或登录搜索引擎平台的移除工具。

5.2 我的 robots.txt 写错了,会影响网站排名吗

会。如果误把 Disallow 配置成全站禁止,爬虫无法访问页面内容,收录就会停止,排名随之大幅下滑。不过这类问题修复较快,只要改正配置并等待爬虫重新抓取,索引通常会在数天至数周内恢复。为避免误操作,建议每次修改前先备份原文件。

5.3 robots.txt 中的规则对不同搜索引擎的效果一样吗

不完全一样。Allow 指令只有 Google 等部分搜索引擎支持,Bing 和大多数国产搜索引擎只识别 Disallow。此外,各搜索引擎对通配符和超时时间的处理也有差异,例如 Google 支持 $ 匹配路径结尾,而其他引擎可能忽略。因此在写规则时,应以所有爬虫都兼容的最低标准为优先。

6. 结语

robots.txt 是一个体积小但影响大的文件,配置前想清楚哪些内容需要放行、哪些必须屏蔽,写完后一定要用工具验证并将备份留存。建议每季度检查一次文件内容,确保站点结构变化后规则仍然适用,这也是一种低成本高回报的 SEO 维护习惯。

图1 图2

nginx