robots.txt 生成器,免费

为您的网站快速构建 robots.txt 文件。

没有数据离开您的设备

快速起步预设

使用方法

  1. 选择预设或手动构建规则。
  2. 添加带 Allow/Disallow 路径的 user-agent 组
  3. 添加您的 sitemap URL
  4. 复制下载文件,将其放到网站根目录。

常见问题

robots.txt 文件放在哪里?

它必须位于您域名的根目录:https://yourdomain.com/robots.txt。放在子目录中不起作用。

robots.txt 会阻止 Google 索引页面吗?

robots.txt 阻止爬虫抓取页面,但不会将它们从搜索结果中移除。要做到这一点,请使用 noindex meta 标签。

什么是 AI 爬虫?

GPTBot、CCBot 和 Google-Extended 等 AI 爬虫会收集内容以训练 AI 模型。您可以在 robots.txt 中专门阻止它们。

1994年诞生、2022年正式标准化的协议

机器人排除协议由Martijn Koster于1994年2月设计,近三十年后才于2022年9月正式编纂为 RFC 9309。28年间,它是一个所有人都同意遵守但没有人在细节上达成一致的事实标准。RFC明确了语法(User-agent/Disallow/Allow行)、优先级规则、文件大小限制(解析器必须至少接受500 KiB),以及如何处理错误(4xx → 爬虫可访问任何内容;5xx → 爬虫必须假设完全禁止)。大多数主流搜索引擎爬虫在RFC发布前就遵循大致相同的行为,但细微差异确实存在。

文件的存放位置

robots.txt文件必须以确切的URL /robots.txt 从您的源站根目录提供(每个协议+主机+端口一个)。子目录无效;/blog/robots.txt 对爬虫而言只是404。每个子域都需要自己的文件(www.example.com/robots.txtblog.example.com/robots.txt 是独立的文件)。该文件为纯文本,以 text/plain 格式提供,UTF-8编码(允许但强烈不建议使用BOM)。

语法速览

# Comments start with #
User-agent: *               # Apply to all crawlers
Disallow: /admin/           # Block this directory
Disallow: /search           # Block search results
Allow: /admin/login         # Allow this path even within /admin/

User-agent: Googlebot       # Specific Googlebot rules
Disallow: /test/

Sitemap: https://example.com/sitemap.xml
Sitemap: https://example.com/news-sitemap.xml

关键行为:

robots.txt不能做什么

最常见的误解之一,Google在其官方文档中也明确指出:robots.txt阻止的是抓取,而非索引。如果某页面从网络其他地方有链接指向,Google可能会对该URL建立索引(并在搜索结果中以「本页面暂无信息」之类的占位符显示),即使它从未抓取过该页面。要真正将页面排除在搜索结果之外,请在页面本身使用 <meta name="robots" content="noindex"> 标签,或使用 X-Robots-Tag: noindex HTTP响应头。爬虫必须能访问该页面才能看到noindex指令,这意味着如果您已向页面添加了noindex,就不应在robots.txt中对其使用Disallow,因为爬虫将永远看不到noindex指令。

robots.txt还有哪些做不到的事:

值得了解的User-Agent

User-agent所有者抓取用途
GooglebotGoogle网页搜索索引
BingbotMicrosoftBing搜索索引
DuckDuckBotDuckDuckGoDuckDuckGo搜索
SlurpYahooYahoo搜索
YandexBotYandex俄罗斯搜索
BaiduspiderBaidu中文搜索
facebookexternalhitMetaFacebook分享卡元数据
LinkedInBotLinkedInLinkedIn分享预览
TwitterbotX / Twitter推文卡元数据
SlackbotSlackSlack链接展开
DiscordbotDiscordDiscord链接预览

AI爬虫问题

2023年以来,大量AI训练爬虫涌现,许多站点已在robots.txt中添加规则以选择退出AI训练。主要的爬虫包括:

有两点重要事项:(1)退出是自愿的,因为只有遵守robots.txt的爬虫才会受到影响;(2)「搜索」和「AI训练」之间的界限正在迅速模糊,屏蔽所有AI爬虫也可能影响您的内容在AI摘要搜索结果中的呈现方式。可将上方的「屏蔽AI爬虫」预设作为起点,然后根据您站点的具体情况决定如何取舍。

Crawl-Delay及Google为何忽略它

非标准的 Crawl-delay: 指令要求爬虫在对您服务器的请求之间等待N秒。Bing、Yandex和许多较小的爬虫会遵守它。Google不会。Google的文档明确指出Googlebot会忽略Crawl-delay。Search Console曾提供手动抓取频率设置,但Google已在2024年初针对大多数站点弃用该功能,现在会根据服务器响应自动调整抓取频率。如果您的目标是专门限制Googlebot,robots.txt不是正确的工具。

Sitemap指令

在robots.txt中列出您的站点地图,是向爬虫提示URL列表位置的方法。请使用绝对URL(完整的 https://),每行一个。对于将内容拆分到多个站点地图的站点,可以列出多个站点地图(主站点地图、新闻站点地图、视频站点地图、图片站点地图)。Sitemap指令并非最初robots.txt协议的正式组成部分,但所有主流搜索引擎均支持读取。

常见错误

  1. 禁止CSS/JavaScript文件。Google使用渲染后的内容进行排名。如果Googlebot无法获取您的 /css//js/ 目录,它就无法正确渲染您的页面,从而损害SEO。请勿屏蔽资源目录。
  2. 将Disallow与noindex混淆。Disallow阻止抓取;页面仍可能通过入站链接出现在搜索中。对实际的索引控制,请使用noindex元标签。
  3. 列出私有URL。robots.txt中的任何内容都是公开可读的。如果您不想让攻击者知道 /admin//wp-admin/ 的存在,请勿将其列出;应改用适当的身份验证并依靠noindex。
  4. 写了空的 Disallow:,本意是 Disallow: /空值允许一切;Disallow: / 禁止一切。两者相反。
  5. 屏蔽了嵌入爬虫后又疑惑为何分享预览不显示。如果您禁止了facebookexternalhit,您的分享链接将无法渲染Facebook卡片。如果您需要预览,请明确允许社交媒体机器人。
  6. 忘记添加Sitemap行。这是免费且有用的,而且大多数生成器都会省略它。
  7. 寄望于Crawl-delay来限制Google。它不起作用。请使用Search Console。
  8. 试图通过robots.txt按IP/地区/设备屏蔽。该协议没有这些概念。请改用服务端规则。
  9. 不测试文件。Google于2023年11月停用了独立的robots.txt测试工具,并以Search Console中的robots.txt报告取而代之;该报告会标记语法错误并显示最近一次抓取情况。在部署前务必检查(或使用其他开源的robots.txt验证工具)。

更多常见问题

文件具体放在哪里?

域名的根目录,通过 https://yoursite.com/robots.txt 精确访问。在大多数主机上,这意味着将 robots.txt 放在您的 public / htdocs / www 根目录中。WordPress和许多CMS会动态生成一个;在添加静态文件之前请检查您的CMS是否已有(若两者并存,静态文件优先)。

我需要robots.txt吗?

从技术上讲不需要。没有robots.txt时,爬虫默认「允许一切」,对大多数公开站点来说没有问题。但您几乎总是会想要一个,用于指向您的站点地图、屏蔽明显的抓取陷阱(搜索结果页、分页存档、参数化URL),以及越来越多地选择退出AI训练。一个空的或默认允许的robots.txt仍然有用,可作为放置Sitemap行的地方。

robots.txt最大可以多大?

RFC 9309要求解析器至少接受500 KiB(约500,000字节)。Google强制执行500 KiB限制,超出部分将被忽略。绝大多数robots.txt文件远小于1 KiB。如果您的文件接近上限,可能是列出了太多具体URL,应改用通配符模式。

如果robots.txt返回500错误会怎样?

根据RFC 9309,当爬虫因服务器错误(5xx)无法获取robots.txt时,必须假设完全禁止,即Google和其他合规爬虫将停止抓取您的站点,直到文件再次可访问。如果您的robots.txt端点宕机,您的搜索可见性也会随之下降。请确保它保持可用。

Crawl-delay对Google有效吗?

Google明确忽略Crawl-delay。该指令对Bing、Yandex和大多数其他爬虫有效。Search Console曾提供的手动抓取频率设置已在2024年初针对大多数站点弃用;Google现在根据您服务器的响应情况自动调整抓取频率。在robots.txt中设置Crawl-delay不会造成任何问题,只是不会改变Googlebot的行为。

我应该屏蔽AI爬虫吗?

需要权衡取舍。屏蔽GPTBot、Google-Extended、ClaudeBot等,可以让您的内容退出这些模型的训练数据,如果您想限制内容的再利用,这是正确的选择。代价是:随着AI摘要搜索结果越来越普遍,被屏蔽的内容也可能更难被引用或呈现。许多出版商选择屏蔽AI训练爬虫,但允许AI搜索爬虫(OAI-SearchBot等)以保持可被引用的资格。「屏蔽AI爬虫」预设采取的是最大化屏蔽策略;请根据您的优先级进行调整。

相关工具

meta 标签生成器,免费 .htaccess 生成器,免费 URL slug 生成器,免费