robots.txt规则权威指南:写法要点与易错配置详解

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

搜索引擎的爬虫进入一个网站时,第一件事就是查看根目录下的 robots.txt 文件。这份协议文件用最简单的纯文本,为爬虫划定了访问边界。配置合理的 robots.txt,既能防止后台页面、敏感目录被收录,又能引导爬虫将抓取资源集中到有排名的内容页上,可以说是网站 SEO 的基础设施之一。

1. 核心指令解析:读懂每个字段的作用范围

一份合格的 robots.txt 必须放在网站根目录,例如 https://yourdomain.com/robots.txt。文件命名严格区分大小写,保存时优先选择 UTF-8 编码,每条指令单独一行且行末不要留下空格。要写出准确的规则,先得弄清楚四个基础字段的职责。

结合一个实际案例来看:

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

这段配置意味着:全站默认开放,但 /private/ 目录禁止爬虫访问,其中 /private/public/ 是例外。这里藏着一个高频误区——当某个爬虫不理解 Allow 指令时,它只会看到 Disallow 的限制,那么 /private/public/ 对它来说依然是禁区。

2. 三种常见模板:按网站场景对号入座

不同性质的网站对抓取策略的需求完全不同。以下三种配置模板覆盖了绝大多数站点的使用场景,可以替换成适合自己项目的路径。

2.1 全站完全开放

刚上线的官网或内容型站点,通常希望所有页面都能被抓取。这时只需要一行规则:

User-agent: *
Disallow:

其实把 Disallow 这一行完全删除,效果也相同。但最危险的操作是把 Disallow 写成 /,一旦失误,所有爬虫都会被拒之门外,收录进度瞬间停止。修改完成后,建议去对应的站长工具里用抓取测试功能,看看规则的实际表现。

2.2 屏蔽特定的搜索引擎

如果你不希望某个搜索引擎收录自己的页面,可以为它单独配置规则:

User-agent: Bingbot
Disallow: /

这样其他爬虫的抓取不会受任何影响。这里有个关键点:爬虫名称必须写准确。Googlebot、Baiduspider、Sogou 蜘蛛的名称各不相同,不小心写错名字,规则就会静默失效。最稳妥的办法是查阅各搜索引擎官方的爬虫文档,复制准确的名称。

2.3 只允许后台目录被抓取

某些工具型网站希望隐藏前台页面,只公开指定功能模块,可以这样写:

User-agent: *
Allow: /app/
Disallow: /

需要注意的是,这一写法对 Googlebot 有效,但部分爬虫会忽略 Allow 指令,从而拒绝抓取一切内容。在依赖此类配置前,最好确认目标搜索引擎支持 Allow。其实大多数站点更常见的做法是反着来:默认全站开放,仅屏蔽 /app/ 之外的非必要目录。

3. 高频踩坑点:这五个坑最容易忽略

新手配置 robots.txt 时,往往在语法正确的情况下依然达不到预期效果,原因多出在以下细节上。

4. 验证与迭代:规则写完不等于结束

robots.txt 写完后并非一劳永逸,站点结构调整时必须同步更新并重新验证。日常维护可以从这两方面入手。

  1. 使用站长平台验证:百度搜索资源平台和 Google Search Console 都提供了 robots.txt 测试工具,可以检查语法错误以及具体 URL 的抓取结果。
  2. 定期审查日志中的 404 请求:如果你的服务器日志里频繁出现对某个路径的请求但返回 404,很可能 reflect 出页面已迁移但 robots.txt 还指向旧路径,及时调整能减少无效抓取。

举个例子:某电商网站在促销季新建了 /campaign/ 页面,但忘了在 robots.txt 中放行该路径,导致活动页上线两周后依然没有被索引。这种情况下,只需在现有规则中加入 Allow: /campaign/,再通过抓取测试确认即可解决。

5. 常见问题

5.1 写了 Disallow: / 后还能通过 Sitemap 提交吗?

可以提交,但效果取决于搜索引擎的处理逻辑。Sitemap 只是提示爬虫去发现链接,如果 robots.txt 明确禁止抓取该路径,页面依然无法被收录,Sitemap 提交也就没有实际作用。

5.2 robotes.txt 能防止别人爬取图片或视频吗?

行不能完全防止。robots.txt 只是君子协议,自觉遵守的爬虫会避开,但恶意爬虫或第三方程序不会理会这个规则。若要彻底保护资源,应在服务端设置权限验证或使用防盗链策略。

5.3 修改 robots.txt 后需要多久才能生效?

没有固定时间。大部分搜索引擎会定期重新抓取该文件,通常在几分钟到几天内更新。改完后也可以通过站长平台的抓取工具强制触发一次验证,加快生效速度。

6. 结语

robots.txt 是一个影响面极广但配置成本极低的功能,值得花十几分钟认真对待。配置完成后,至少去一个站长平台跑一次抓取测试,并留意服务器日志里是否有异常请求。如果网站后续增加了新目录或调整了 URL 结构,记得同步更新该文件。把开放、屏蔽、例外这条规则想清楚,你的站点就能稳定而高效地完成抓取任务。

图1 图2

nginx