Robots.txt
Robots.txt 是一个位于网站根目录(/robots.txt)下、可公开访问的文本文件,它作为一项标准协议(Robots Exclusion Protocol,机器人排除协议),用于引导搜索引擎爬虫可以访问站点上的哪些 URL。
Robots.txt 是一个位于网站根目录(/robots.txt)下、可公开访问的文本文件,它作为一项标准协议(Robots Exclusion Protocol,机器人排除协议),用于引导搜索引擎爬虫可以访问站点上的哪些 URL。
为什么重要
搜索引擎每天访问的页面数量是有限的,这取决于分配给每个网站的抓取预算(crawl budget)。配置得当的 robots.txt 可以阻止爬虫抓取不必要的路径,例如管理后台页面、API 端点和重复内容,从而让抓取预算集中在核心内容上。对于拥有数千个页面以上的大型站点,这一配置会直接影响索引速度和整体 SEO 表现。
自 2025 年以来,GPTBot、CCBot、PerplexityBot 和 Google-Extended 等 AI 爬虫的出现进一步扩展了 robots.txt 的作用。对于公开的营销内容,最安全的默认做法是允许爬虫访问,仅对那些浪费抓取预算或暴露非公开内容的路径进行控制。只有在符合你的内容授权与 AI 可见性策略时,才去屏蔽 AI 训练爬虫。
关键指令
| 指令 | 说明 | 示例 |
|---|---|---|
User-agent | 指定规则适用于哪个爬虫。* 表示所有爬虫。 | User-agent: Googlebot |
Disallow | 指定要阻止抓取的路径。 | Disallow: /admin/ |
Allow | 在被 Disallow 阻止的父路径内,允许抓取特定的子路径。 | Allow: /admin/public/ |
Sitemap | 指定 XML 站点地图的 URL。通常放置在文件底部。 | Sitemap: https://example.com/sitemap.xml |
Crawl-delay | 设置爬虫请求之间的等待时间(以秒为单位)。Googlebot 会忽略此指令。 | Crawl-delay: 10 |
配置指南
对于公开博客,基础配置应当保持简单:
User-agent: *
Allow: /
Sitemap: https://example.com/sitemap.xml
仅针对不应被抓取的区域添加 Disallow 规则,例如站内搜索、管理后台路由、重复的筛选 URL 或 API 端点。如果你需要在保持搜索爬虫开放的同时屏蔽特定的 AI 训练爬虫,请将这些 user agent 单独隔离出来:
User-agent: *
Allow: /
Disallow: /admin/
Disallow: /api/
Disallow: /*?*utm_
# Block AI crawlers
User-agent: GPTBot
Disallow: /
User-agent: CCBot
Disallow: /
User-agent: anthropic-ai
Disallow: /
# Sitemap
Sitemap: https://example.com/sitemap.xml
重要注意事项:
- 文件位置:该文件必须位于域名根目录(
https://example.com/robots.txt)。放在子目录中会导致爬虫无法识别它。 - 大小写敏感:URL 路径是大小写敏感的。
Disallow: /Private/不会屏蔽/private/。 - 规则匹配:Google 使用最具体的匹配规则。如果一个 URL 同时匹配
Allow和Disallow规则,匹配路径更长的一方获胜。 - HTTP 状态处理:返回 404 或 410 的 robots.txt 会被视为不存在任何限制。返回 5xx 响应可能会暂时停止抓取,因为 Google 无法判断规则是不可用还是有意进行限制。
- 测试必不可少:使用 Search Console 的 robots.txt 报告和 URL 检查工具,验证 Googlebot 能否抓取该文件,以及重要 URL 是否未被屏蔽。
- 站点地图集成:虽然推荐直接将站点地图提交到 Google Search Console 和 Bing Webmaster Tools,但在 robots.txt 中也指定站点地图同样是一个好习惯。
常见错误
- 当作安全工具使用:Robots.txt 仅仅是对爬虫的一个请求,它并不会从物理上阻止访问。敏感页面需要单独的安全措施,例如服务器身份验证或 IP 屏蔽。
- 混淆 Disallow 与 noindex:
Disallow只阻止抓取,而不阻止索引。即使没有被抓取,带有外部链接的页面仍然可能出现在搜索结果中。要将页面彻底从搜索结果中移除,请使用noindex元标签。 - 在 Google 看到
noindex之前就屏蔽了页面:如果你同时添加Disallow和noindex,Google 可能永远不会抓取该页面,因此也永远看不到noindex指令。 - 意外屏蔽整个站点:在
User-agent: *下设置Disallow: /会阻止所有爬虫访问整个站点。一个常见错误是在站点改版期间或在预发布环境中使用了此设置,却忘记在生产部署时撤销它。 - 屏蔽 CSS 和 JS 文件:Googlebot 会渲染页面以评估内容。屏蔽 CSS 或 JavaScript 文件的抓取会导致渲染不完整,并可能降低 SEO 评分。
- 在 robots.txt 中暴露敏感路径:Robots.txt 是任何人都可以查看的公开文件。在 Disallow 中列出像
/secret-admin-panel/这样的私有路径,反而会向外界泄露该路径的存在。
Sources:
- Robots.txt 简介与指南 - Google Search Central
- Robots.txt 规范 - Google Search Central
- Robots.txt 报告 - Search Console 帮助
- Robots.txt 与 SEO:你需要知道的一切 - Ahrefs
- Robots.txt 详解:语法、最佳实践与 SEO - Semrush
相关 inblog 文章
inblog 如何提供帮助
inblog 默认允许搜索引擎爬虫,并通过仪表盘提供 AI 爬虫(GPTBot 等)管理功能。