ClaudeBot is blocked by your robots.txt
Anthropic's crawler is disallowed, so Claude cannot read your pages or cite them in answers.
ClaudeBot is the user-agent Anthropic uses to fetch pages on behalf of Claude (the Anthropic API and the Claude.ai chat product). When robots.txt contains "User-agent: ClaudeBot" followed by "Disallow: /", every Claude request for your content gets refused at the robots.txt layer, and no HTML is ever fetched.
Claude is one of the most-used assistants for technical, research, and long-context work, exactly the kinds of queries where citing your docs, your blog, or your product pages compounds in value. Anthropic respects robots.txt strictly, so a single Disallow line takes you out of the answer set. Unlike search engines, there is no fallback: when ClaudeBot can't fetch, Claude doesn't show your content at all. There is no "submit URL" path that bypasses robots.
If a developer asks Claude 'what's the best Postgres-on-Kubernetes operator' and you've blocked ClaudeBot, your product is not in the comparison. Your competitor is. Unblocking is a one-line change and has no SEO impact (Google uses Googlebot, not ClaudeBot). Sites that unblock typically see Anthropic-referred traffic appear in their analytics within 1–2 weeks as the index refreshes.
Open https://your-domain.com/robots.txt and search for "ClaudeBot" (case-sensitive). If you see "User-agent: ClaudeBot" followed by "Disallow: /" (or a global "User-agent: *" with "Disallow: /" and no ClaudeBot allow rule above it), Claude is blocked. Note: there are two Anthropic user-agents to consider, ClaudeBot (training and indexing) and Claude-User (on-demand fetches when a Claude user pastes a URL). Most sites want to allow both.
Remove any "User-agent: ClaudeBot" + "Disallow: /" stanza. If you have a wildcard disallow you want to keep, add a specific "User-agent: ClaudeBot" + "Allow: /" block above the wildcard so the more-specific rule wins. Add the same block for Claude-User. While you are editing, also confirm GPTBot, OAI-SearchBot, ChatGPT-User, PerplexityBot, and Google-Extended are allowed, since the same robots.txt failure pattern affects all of them.
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
Use the Next.js MetadataRoute.Robots API at app/robots.ts. Express the AI-agent allowlist as an array, then map over it to produce one rule per agent. Next serves the result at /robots.txt automatically. The same file pattern handles GPTBot, ClaudeBot, and any future agents; add to the array and redeploy.
WordPress
Hook into the robots_txt filter from your theme's functions.php (or a code-snippets plugin). The hook receives the existing robots.txt string; prepend your AI-agent allowlist before WordPress's default block.
Shopify
Edit robots.txt.liquid. Open Online Store → Themes → Edit code → Templates → Add a new template called robots.txt.liquid. Inject AI-agent allow rules above the default block so the more-specific rules win in the spec's longest-match resolution.
Webflow
Webflow lets you edit robots.txt directly under Site settings → SEO → Robots.txt. Paste the AI-agent allowlist there. Webflow regenerates robots.txt on publish; the change is live as soon as the next publish completes.
Static HTML / any stack
Place a robots.txt file at the root of your site, next to index.html. Every static host (Netlify, Vercel, GitHub Pages, S3, Cloudflare Pages) serves it as text/plain by default. After deploy, fetch it directly to confirm the content is what you intended.
- Allowing only ClaudeBot but not Claude-User. ClaudeBot indexes the web for Claude.ai's knowledge; Claude-User fetches when a Claude user explicitly references a URL. Most sites want both.
- Adding the Allow rule below a wildcard Disallow. Strict robots.txt parsers use longest-match, so keep specific rules above the wildcard to avoid edge-case parsing differences.
- Blocking ClaudeBot for the same misconception as GPTBot, "to save bandwidth." Anthropic crawlers are well-behaved and respect crawl-delay; the citations are typically worth the fetch cost many times over.
- Confusing Claude-Web (an old, deprecated user-agent) with the current names. The active user-agents from Anthropic are ClaudeBot and Claude-User. Update any old robots.txt rules referring to Claude-Web; they are no-ops now.
- Adding a noindex meta tag and assuming it blocks ClaudeBot. It does not; robots.txt is the only mechanism Anthropic checks before fetching.
After publishing, fetch https://your-domain.com/robots.txt and confirm ClaudeBot has an Allow rule. Then run a fresh AgentSpeed scan, and the "robots.txt allows known agents" check should pass within seconds. Anthropic-referred traffic begins appearing in analytics 1–2 weeks later as the index refreshes.
Does allowing ClaudeBot let Anthropic train on my content?
ClaudeBot fetches both for retrieval (so Claude can cite you) and to inform model training. If you want citations but not training, Anthropic publishes opt-out signals, but the cleaner separation is to allow Claude-User (on-demand fetch) and disallow ClaudeBot (training-and-indexing). For most sites the trade-off favours allowing both.
Will allowing ClaudeBot affect my Google rankings?
No. Googlebot is a separate user-agent. ClaudeBot rules only affect Anthropic; SEO is unchanged.
How is this different from the GPTBot fix?
Mechanically identical: both are robots.txt user-agent rules. The two crawlers are independent: blocking GPTBot does not block ClaudeBot, and vice versa. Most sites benefit from allowing both alongside PerplexityBot and Google-Extended.
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 “ClaudeBot is blocked by your robots.txt”.