SEO

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

重要注意事项:

  1. 文件位置:该文件必须位于域名根目录(https://example.com/robots.txt)。放在子目录中会导致爬虫无法识别它。
  2. 大小写敏感:URL 路径是大小写敏感的。Disallow: /Private/ 不会屏蔽 /private/
  3. 规则匹配:Google 使用最具体的匹配规则。如果一个 URL 同时匹配 AllowDisallow 规则,匹配路径更长的一方获胜。
  4. HTTP 状态处理:返回 404 或 410 的 robots.txt 会被视为不存在任何限制。返回 5xx 响应可能会暂时停止抓取,因为 Google 无法判断规则是不可用还是有意进行限制。
  5. 测试必不可少:使用 Search Console 的 robots.txt 报告和 URL 检查工具,验证 Googlebot 能否抓取该文件,以及重要 URL 是否未被屏蔽。
  6. 站点地图集成:虽然推荐直接将站点地图提交到 Google Search Console 和 Bing Webmaster Tools,但在 robots.txt 中也指定站点地图同样是一个好习惯。

常见错误

  • 当作安全工具使用:Robots.txt 仅仅是对爬虫的一个请求,它并不会从物理上阻止访问。敏感页面需要单独的安全措施,例如服务器身份验证或 IP 屏蔽。
  • 混淆 Disallow 与 noindex:Disallow 只阻止抓取,而不阻止索引。即使没有被抓取,带有外部链接的页面仍然可能出现在搜索结果中。要将页面彻底从搜索结果中移除,请使用 noindex 元标签。
  • 在 Google 看到 noindex 之前就屏蔽了页面:如果你同时添加 Disallownoindex,Google 可能永远不会抓取该页面,因此也永远看不到 noindex 指令。
  • 意外屏蔽整个站点:在 User-agent: * 下设置 Disallow: / 会阻止所有爬虫访问整个站点。一个常见错误是在站点改版期间或在预发布环境中使用了此设置,却忘记在生产部署时撤销它。
  • 屏蔽 CSS 和 JS 文件:Googlebot 会渲染页面以评估内容。屏蔽 CSS 或 JavaScript 文件的抓取会导致渲染不完整,并可能降低 SEO 评分。
  • 在 robots.txt 中暴露敏感路径:Robots.txt 是任何人都可以查看的公开文件。在 Disallow 中列出像 /secret-admin-panel/ 这样的私有路径,反而会向外界泄露该路径的存在。

Sources:

相关 inblog 文章

inblog 如何提供帮助

inblog 默认允许搜索引擎爬虫,并通过仪表盘提供 AI 爬虫(GPTBot 等)管理功能。