robots.txt如何编写?格式指令与SEO优化完整指南

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

robots.txt 是网站根目录下一个纯文本文件,用来告诉搜索引擎爬虫哪些页面可以抓取、哪些应当跳过。合理配置它能保护后台数据、节约服务器资源,也能让爬虫把精力集中在真正需要排名的页面上。下面从基础语法讲到实际案例,帮你一步步掌握这份文件的编写技巧。

1. 认识 robots.txt 的文件构成与核心指令

文件必须命名为 robots.txt 并放在域名根目录,比如 https://example.com/robots.txt。它的每一条规则都从 User-agent 开始声明适用于哪种爬虫,后跟具体的访问指令。最常见的指令有四个,含义和用法如下:

每条规则之间用空行分隔,以 # 开头的行是注释,用来给规则添加说明,但不能写在指令后面。注意,指令对路径的处理是前缀匹配,/private 会同时阻止 /private 和 /private.html 等以同样前缀开头的地址。

2. 典型站点的 robots.txt 编写案例

不同业务场景对爬虫的开放程度不同,下面整理几个常见需求的实际写法,可以直接对照修改。

2.1 整站封闭:开发或维护阶段

网站还没上线或正在改版时,希望所有搜索引擎都不收录,只需两行:

User-agent: *
Disallow: /

这条规则对全部爬虫生效,禁止访问站点任意路径。需要提醒的是,已经收录的页面可能不会立刻从搜索结果消失,若要快速移除,还需配合 Google Search Console 的删除工具。

2.2 只封闭特定目录:保护敏感数据

大多数网站不需要全站封闭,而是要把后台、临时文件或用户隐私数据藏起来。可以这样设置:

User-agent: *
Disallow: /admin/
Disallow: /private/
Allow: /admin/public/

这里所有爬虫都不能抓 /admin/ 和 /private/,但 Allow 指令单独放行了 /admin/ 下的 public 子目录。需要注意规则的匹配优先级:在相同长度的路径中,Allow 规则的优先级更高,这一行顺序可以自由安排。

2.3 定向放行:只允许某一爬虫

如果只想让 Google 收录而不想其他搜索引擎访问,写好两条规则即可:

User-agent: Googlebot
Disallow:
User-agent: *
Disallow: /

第一段不限制 Googlebot 访问任何路径,第二段封锁其余所有爬虫。这里特别建议把具体的爬虫记录写在通配符记录之前,避免后面的规则覆盖前面的内容。

2.4 控制抓取速度:设置爬取间隔

对于带宽有限的新站或服务器压力较大的网站,可以加上 Crawl-delay 指令来要求爬虫控制请求频率:

User-agent: Bingbot
Crawl-delay: 10

这个指令的值以秒为单位,表示两次请求之间的最小间隔。需要留意的是,并非所有搜索引擎都支持该指令,例如 Googlebot 就有自己的抓取速率机制,不读取这个字段,建议以目标爬虫的官方文档为准。

3. 规则优先级与常见的格式错误

爬虫解析 robots.txt 时遵循"最具体匹配优先"的原则,即哪条规则对应的路径更接近目标 URL,就优先采用它的结果。举例来说,Disallow: /blog 和 Allow: /blog/free 同时存在时,爬虫访问 /blog/free-guide 会优先参考更具体的 /blog/free 规则。

编写时经常出现以下几类错误,需要特别注意:

建议写完文件后,先用浏览器直接访问 robots.txt 查看实际输出内容,再配合工具验证每条规则是否符合预期。

4. robots.txt 的 SEO 实践要点与验证方法

robots.txt 是抓取管理工具而非收录控制工具,不要用它来阻止搜索引擎收录页面。若页面不想出现在搜索结果中,正确做法是使用 noindex 标签。否则爬虫无法访问页面内容,可能连 noindex 指令也无法读取。

日常维护中可以从几个方面优化:优先在文件中声明 Sitemap 地址;不要把评论、标签等低价值页面全部封闭,可以用 noindex 精细化处理;定期检查站点日志,观察爬虫是否在抓取无意义的目录浪费资源;文件更新后通过 Google Search Console 或 Bing Webmaster Tools 中的抓取测试功能重新检验。

还有一个易被忽略的点:robots.txt 的响应状态。正常情况下应返回 200 状态码,若返回 404,部分爬虫会采取宽松策略,放行所有内容的抓取,这可能带来非预期的收录。

5. 常见问题

5.1 robots.txt 可以屏蔽所有搜索引擎吗?

理论上可以,使用 Disallow: / 就能阻止常规搜索引擎抓取全站。但需要知道一些非法爬虫或恶意脚本不会遵守该文件,而且已经在搜索引擎索引库里的页面不会立即被清除。若要彻底阻止收录,建议同时使用登录验证、防火墙规则或 noindex 标签。

5.2 Allow 和 Disallow 指令同时出现时,哪个优先级更高?

在规则路径长度相同的情况下,Allow 指令的优先级高于 Disallow。这个规则最早由 Google 明确说明,目前主流搜索引擎基本沿用此逻辑。设计规则时,可以用 Disallow 划定大范围,再用 Allow 精确开放核心子路径,逻辑清晰且便于维护。

5.3 修改 robots.txt 后多久生效?

搜索引擎通常每隔一段时间重新抓取并缓存该文件,Google 的抓取间隔一般在一天以内,具体视站点更新频率而定。如需快速生效,可以主动在 Google Search Console 中提交最新的 robots.txt 供其抓取,一般几分钟内即可更新缓存。

6. 总结

编写 robots.txt 并不复杂,关键在于明确需求、遵循语法、并保持规则的精简明晰。建议先梳理站点内容结构,列出需要保护或限制的目录,再按本指南的案例逐条套用;写完后务必通过官方工具验证规则结果,同时定期审查日志观察抓取行为变化。把抓取控制做好,搜索引擎才能更高效地发现和收录你的真正优质内容。

图1 图2

nginx