GPTBot is blocked by your robots.txt
OpenAI's crawler is disallowed, so ChatGPT cannot read your pages or cite them in answers.
GPTBot is the user-agent OpenAI uses to fetch pages on behalf of ChatGPT and the OpenAI training corpus. When robots.txt contains "User-agent: GPTBot" followed by "Disallow: /", every ChatGPT request for your content gets refused at the robots.txt layer, before any HTML is fetched.
ChatGPT has hundreds of millions of weekly users and is one of the largest sources of agent-driven traffic on the internet. Blocking GPTBot means ChatGPT cannot cite your pages, cannot show your products in answers, and cannot recommend your docs. There is no second chance; the agent simply leaves your domain off the answer.
If a user asks ChatGPT 'what's the best CRM for small teams' and you've blocked GPTBot, you are not in the answer. Your competitor is. Unblocking is a one-line robots.txt change with no risk to SEO (Google uses Googlebot, not GPTBot). Sites that unblock typically see ChatGPT-referred traffic appear in analytics within 1–2 weeks as the crawler refreshes its index.
Open https://your-domain.com/robots.txt. Search for "GPTBot" (case-sensitive). If you see "User-agent: GPTBot" followed by "Disallow: /" (or a global "User-agent: *" with "Disallow: /" and no GPTBot allow rule), you are blocking ChatGPT. The fix is to remove the disallow or add an explicit allow.
Remove any "User-agent: GPTBot" + "Disallow: /" block from robots.txt. If you have a global wildcard disallow you want to keep, add an explicit "User-agent: GPTBot" / "Allow: /" stanza above it so the more-specific rule wins. The same pattern applies to OAI-SearchBot, ChatGPT-User, ClaudeBot, PerplexityBot, and Google-Extended.
The reference snippet above is platform-agnostic. Below are the concrete steps for the four most common stacks plus a generic fallback for any other host.
Next.js
Next.js serves robots.txt either as a static file in /public/robots.txt or as a route handler at app/robots.ts. The route-handler form is preferable because it lets you generate the body programmatically and re-use the same allowlist across environments. Place this at app/robots.ts and Next will serve it at /robots.txt.
WordPress
WordPress generates a virtual robots.txt by default via the do_robots() function. To customise it without a plugin, hook into the robots_txt filter from your theme's functions.php (or a code-snippets plugin). The hook receives the existing string; append your AI-agent rules to it.
Shopify
Shopify exposes robots.txt customisation via the robots.txt.liquid template. Open Online Store → Themes → Edit code, then create a new template called robots.txt.liquid under Templates. Use Liquid to inject AI-agent allow rules above the default block.
Webflow
Webflow lets you edit robots.txt directly from Site settings → SEO tab → Robots.txt. Paste the AI-agent allowlist there. Webflow regenerates the file on publish, so changes take effect immediately after the next publish.
Static HTML / any stack
Place a robots.txt file at the root of your site (next to index.html). Every static host serves it as text/plain by default. After deploy, fetch it directly to confirm the content matches what you wrote.
- Using "Disallow:" with no path. That means "block nothing," which is the opposite of what most people intend. To block, use "Disallow: /". To allow everything, use "Allow: /" or omit the disallow entirely.
- Putting the AI-agent allow stanza below a global wildcard disallow. robots.txt resolves the most-specific user-agent block, but some legacy parsers read top-down, so keep specific rules above the wildcard to be safe.
- Blocking GPTBot to "save bandwidth." GPTBot honours crawl-delay and is well-behaved; the citations it generates typically more than pay for the fetch cost.
- Forgetting OAI-SearchBot and ChatGPT-User. GPTBot indexes for training; the other two fetch on-demand when a user asks ChatGPT a question. You usually want all three allowed.
- Adding a noindex meta tag and assuming it blocks GPTBot. It does not; robots.txt is the only mechanism agents check before fetching.
After publishing, fetch https://your-domain.com/robots.txt and confirm GPTBot has an Allow rule. Then run a fresh AgentSpeed scan, and the "robots.txt allows known agents" check should pass within seconds. ChatGPT-referred traffic begins appearing in analytics 1–2 weeks later as the index refreshes.
Will allowing GPTBot let OpenAI train on my content?
GPTBot fetches both for retrieval (so ChatGPT can cite you) and for training. If you want citations but not training, allow OAI-SearchBot and ChatGPT-User but disallow GPTBot. This is a deliberate trade-off, and citations are usually worth it.
Does this affect Google's SEO crawler?
No. Googlebot is a separate user-agent. Google-Extended is the AI-specific crawler, and allowing it lets your content appear in AI Overviews and Bard answers without changing your search ranking.
How do I block AI but allow regular search engines?
Use specific user-agent rules: disallow GPTBot, ClaudeBot, etc. by name; leave Googlebot, Bingbot, and the wildcard allowed. The wildcard catches any new search engines automatically.
Free scan, no signup. The score page is permanent and citable, so you can link it from your team's remediation ticket alongside this guide for “GPTBot is blocked by your robots.txt”.