On this page10 sections
The short answer
To get cited by Claude, allow Claude-SearchBot and Claude-User in robots.txt, serve your content as server-rendered HTML, and rank in Brave Search — the search provider Anthropic lists for Claude’s web search, which holds 79% of the URLs Claude cites in its top 10. Then give Claude dated, first-party pages with short, self-contained answers it can quote.
Key takeaways
- Anthropic runs three bots. Blocking
ClaudeBotonly stops training; search usesClaude-SearchBot, and live fetches useClaude-User. - Claude’s web search is powered by Brave Search. In a 2026 study, 79.2% of Claude-cited URLs ranked in Brave’s top 10 — versus 34% in Google’s.
- Claude’s fetcher reads raw HTML and PDF only. Content that appears after JavaScript runs is invisible to it.
- Brave’s crawler has no user agent of its own and won’t crawl what Googlebot is blocked from. Blocking Googlebot costs you Claude too.
- Claude adds the current year to 94% of its search queries and cites listicles heavily. Freshness is visible, and it matters.
- Claude traffic arrives from
claude.aiwith no UTM tags. GA4’s new AI Assistant channel doesn’t name Claude, so give it a custom channel.
How Claude searches and picks sources#
Claude answers most questions from what it learned in training. It searches when the answer depends on something current or changeable — news, prices, a specific product or company — or when the user asks it to. In Profound’s 2026 test of 400+ prompts, Claude searched on 36.6% of them. When it does search, the results come from a different index than most people assume.
Anthropic’s subprocessor list has named Brave Search as its web-search vendor since March 2025, when Simon Willison spotted it and found a BraveSearchParams parameter in Claude’s tool definition. In May 2026 the list reportedly added TurboPuffer, a vector and full-text search database, in an undisclosed web-search role — possibly a re-ranking layer, which would explain why about a fifth of Claude’s citations sit outside Brave’s top 10.
- 1
Claude decides whether to search
Stable facts, code and analysis are answered from training. Anything time-sensitive or specific triggers a search.
Your lever: Be in the training data too: blocking
ClaudeBotkeeps future content out of the roughly two-thirds of answers that never search. - 2
It writes its own queries — usually with a year
Simple questions take one to three searches; comparisons ten or more. Profound found Claude added the current year to 94% of its sub-queries, against 17% for ChatGPT.
Your lever: Put an honest year in titles and a visible “updated” date on pages where freshness matters.
- 3
Brave returns about ten results per search
Every result — URL, title and
page_age— is loaded into Claude’s context. Newer tool versions let Claude write code to filter results before reading them.Your lever: Rank in Brave’s top 10 for the queries Claude writes.
- 4
Claude fetches the pages it needs
Full pages are retrieved by
Claude-Useras raw HTML or PDF. No JavaScript runs, and long pages are truncated to fit the context window.Your lever: Server-render. Put the answer in the first screen of HTML, not after a script or a click.
- 5
It answers with mandatory citations
Citations are always on in web search, and each quotes the passage it relies on — up to 150 characters of
cited_text. Claude doesn’t sell placement: Anthropic’s February 2026 pledge rules out sponsored links and advertiser influence.Your lever: Write self-contained sentences that carry a fact in under 150 characters.
79.2%
of URLs Claude cites rank in Brave's top 10 for the query — versus 34% in Google's
94%
of Claude's search sub-queries include the current year
8%
of citation domains are shared between Claude and ChatGPT — they're different races
Anthropic's three crawlers — and the one you can't see#
Anthropic documents three bots, each with its own job. All three honor robots.txt, including the non-standard Crawl-delay, and respect CAPTCHAs. That last part is unusual: OpenAI, Perplexity and Google all say their user-triggered fetchers may ignore robots.txt. Claude’s doesn’t.
Claude-SearchBotAllowSearch indexHonors robots.txtIndexes content to improve Claude’s search results. Anthropic warns that blocking it “may reduce your site’s visibility and accuracy in user search results.”
Claude-UserAllowUser-triggeredHonors robots.txtFetches a page when a user’s conversation needs it. Also used by Claude Code, whose requests come from the user’s own machine and IP.
ClaudeBotYour callModel trainingHonors robots.txtCollects public content that may be used to train future models. Blocking it excludes future content from training — and not from search.
A robots.txt that opts out of training while keeping Claude’s search and live fetches looks like this. Named groups override a User-agent: * block, and the rules must be repeated on every subdomain:
# Claude search index and live fetches: allowUser-agent: Claude-SearchBotAllow: / User-agent: Claude-UserAllow: / # Model training: your callUser-agent: ClaudeBotDisallow: / # Brave (Claude's search index) won't crawl what Googlebot can'tUser-agent: GooglebotAllow: /Check your CDN and WAF next: “block AI bots” toggles override robots.txt. Anthropic publishes its crawler IP ranges at claude.com/crawling/bots.json for verification — though it notes that allowing or blocking by IP alone is unreliable. The old anthropic-ai and Claude-Web tokens are retired; leaving them in robots.txt is harmless.
Getting into Brave Search#
Because Claude’s candidate pages come from Brave, Brave indexing is the prerequisite that most Claude advice skips. Brave has no webmaster console and doesn’t support IndexNow, so you can’t push pages in. It discovers URLs two ways: its own crawler, and the opt-in Web Discovery Project, in which Brave browser users anonymously report pages they visit.
- Rank on Google and Bing first. Per MERJ’s analysis of the Web Discovery Project, a single opted-in user who finds your page in a Google, Bing or DuckDuckGo result can report it — otherwise a new URL needs about 20 separate visitors.
- Get linked from pages Brave already knows. Links from established sites are the crawler’s main route to you.
- Use the re-fetch form after changes. search.brave.com/submit-url asks Brave to re-crawl a page. It doesn’t guarantee indexing.
- Keep URLs clean. The discovery client drops URLs with more than one query parameter or a long query string, unless a canonical points to a clean version.
- Put canonical and noindex in the HTML head. The discovery client reads them from
<head>, not from HTTP headers, and drops pages that redirect. - Stay fast and light. Discovery fetches time out after 10 seconds and refuse pages over 2 MB.
Then check where you stand: search your target questions on search.brave.com — with the year appended, the way Claude writes them — and treat a top-10 Brave position as your Claude eligibility test.
Technical requirements#
Anthropic’s web fetch documentation is blunt: it “does not support websites dynamically rendered via JavaScript.” Vercel’s crawler study found ClaudeBot downloading JavaScript files without running them. Whatever isn’t in the HTML response doesn’t exist for Claude.
- Server-rendered HTMLRequired
- The answer must be in the raw HTML — SSR, static generation or pre-rendering. Client-rendered React, Vue or Angular apps show Claude an empty shell.
- Crawlable by GooglebotRequired
- Brave mirrors Googlebot’s robots rules, so a Googlebot block removes you from Claude’s index source.
- No walls on citable contentRequired
- Anthropic’s bots respect CAPTCHAs and don’t access login-gated pages. Interstitials and gates hide the answer.
- Answer near the topHelps
- Long pages are truncated to a token budget — about 2,500 tokens per 10 kB of page. The first screens of HTML are the ones that reliably get read.
- Visible freshnessHelps
page_ageis passed to the model, and Claude’s queries include the year. Show a real “updated” date and keepdateModifiedhonest.- Markdown for agentsHelps
- Claude Code sends
Accept: text/markdown. Serving markdown to that header (Cloudflare’s Markdown for Agents, or your own server) gives it a clean read. - Structured dataUnconfirmed
- No statement from Anthropic. Web fetch returns page text, so facts that exist only in JSON-LD may never reach the model — keep them in visible copy too.
- SitemapsUnconfirmed
- Not documented for Anthropic or Brave. Keep them for Google and Bing, which feed Brave’s discovery indirectly.
- llms.txtUnconfirmed
- Anthropic publishes its own for developers, but has never said Claude reads other sites’ files. Ahrefs found 97% of llms.txt files get zero requests.
- IndexNowNo effect
- Brave doesn’t support it. It still helps with Bing, and so with ChatGPT.
The quickest test is to request a page the way Claude does and check your key sentence is there. If it isn’t, neither Claude nor Brave can see it:
# Does your server (and WAF) serve Claude the real content?curl -s -A "Claude-User" https://yoursite.com/pricing \ | grep -c "Plans start at" # 0 means the text is rendered by JavaScript or blockedWhat Claude cites#
Claude’s citation patterns differ sharply from ChatGPT’s — the two share only 8% of cited domains. The studies agree on a few things: Claude leans on first-party and primary sources, likes fresh comparison content, and cites fewer domains per answer than Perplexity.
Brave ranking
ObservedThe strongest predictor found so far: 79.2% of cited URLs sit in Brave’s top 10 for the query Claude ran.
First-party sources
ObservedBrand domains took 64% of Claude’s citations in Otterly’s June 2026 study of 379K citations in SaaS and tech. Your own pricing, docs and specs pages are citable assets.
Primary over secondary
OfficialAnthropic tunes Research to prefer primary sources over content farms, and evaluates it on exactly that.
Fresh lists and comparisons
ObservedListicles were 36.4% of the pages Claude cited, against 19.7% for ChatGPT — and nearly every query carries a year.
Short, quotable facts
OfficialEach citation quotes up to 150 characters. A sentence that states the fact on its own is easier to cite than one that leans on the paragraph around it.
Consistency across runs
ObservedClaude cites a median of 3.6 domains per answer and about half change between runs (Attrifast, 2026). Measure across repeated runs, not one screenshot.
One more thing that doesn’t work: buying your way in. Anthropic’s February 2026 pledge says Claude will carry no sponsored links and its answers won’t be influenced by advertisers.
Tracking Claude traffic and crawls#
Clicks from Claude arrive with the referrer claude.ai and no UTM parameters. On 13 May 2026 GA4 added a default AI Assistant channel for referrers on Google’s list of assistants — but Google’s channel documentation names ChatGPT, Gemini, DeepSeek, Copilot and Grok, not Claude. Check where your claude.ai sessions land; if they’re still in Referral, add a custom channel above it with the regex below. Some app traffic loses its referrer entirely and lands in Direct.
# Session source — Claude only^(.*\.)?claude\.ai$ # Session source — all major AI assistantschatgpt\.com|claude\.ai|perplexity\.ai|gemini\.google\.com|copilot\.microsoft\.comYour server logs show the other half: which pages Claude reads. Claude-User hits are the best proxy you have for live demand, because each one is a real conversation that needed your page.
# Anthropic bot hits by typegrep -oE "ClaudeBot|Claude-SearchBot|Claude-User" access.log | sort | uniq -c # Pages Claude fetched for users — your live-demand listgrep "Claude-User" access.log | awk '{print $7}' | sort | uniq -c | sort -rn | head -20Verify that hits are genuine against the published IP ranges — except Claude Code, which fetches from users’ own machines. Brave’s crawler can’t be separated out by user agent at all.
Myths worth dropping#
Myth
Blocking ClaudeBot hides you from Claude's search.
Reality
It only stops future training. Search indexing is Claude-SearchBot, and live fetches are Claude-User — they’re separate rules.
Myth
Claude cites whatever ranks on Google.
Reality
Brave’s top 10 predicts Claude’s citations far better: 79% versus 34%. But since Brave mirrors Googlebot’s access rules, Google crawlability still matters.
Myth
Claude will render my React app.
Reality
Its fetch tool doesn’t run JavaScript. Only the agentic browsers — Claude in Chrome and Cowork — render pages, and those act for one user, not the index.
Myth
An llms.txt file gets you cited.
Reality
Anthropic has never said Claude reads other sites’ llms.txt, and 97% of such files get no requests. It’s useful for developer docs read by coding agents, not for search.
The action checklist#
Everything above, in the order we’d do it. Tick items off as you go — your progress is saved in this browser.
0 of 15 done
Claude SEO: frequently asked questions#
How do I get my website cited by Claude?
Allow Claude-SearchBot and Claude-User, server-render your pages, and rank in Brave Search, which holds about 79% of the URLs Claude cites in its top 10. Then publish first-party pages with fresh, clearly dated, quotable answers.
What search engine does Claude use?
Anthropic lists Brave Search as its web-search provider, and independent tests match Claude’s citations to Brave’s results. A second vendor, TurboPuffer, was reportedly added in May 2026 in an undisclosed role; image search in the Claude apps uses Bing.
Should I block ClaudeBot?
Only if you don’t want future content used for training. Blocking ClaudeBot doesn’t affect Claude’s search, which uses Claude-SearchBot and Claude-User. The trade-off is that most Claude answers come from training data, not search.
Does Claude respect robots.txt?
Yes. Anthropic says all three of its bots follow robots.txt, including Crawl-delay, and respect CAPTCHAs. Unlike OpenAI’s, Perplexity’s and Google’s user-triggered fetchers, Claude-User honors it too.
Can Claude read JavaScript-rendered pages?
No. Anthropic’s fetch tool doesn’t support JavaScript-rendered sites, and its crawlers have been observed downloading scripts without running them. Only the agentic browsers render pages.
How do I track traffic from Claude?
Clicks arrive from claude.ai with no UTM tags. Google doesn’t list Claude in GA4’s new AI Assistant channel, so build a custom channel on session source claude.ai. Server logs show Claude-User and Claude-SearchBot visits, which you can verify against Anthropic’s published IP list.
Does llms.txt help with Claude?
There’s no evidence it does. Anthropic hasn’t said Claude reads other sites’ llms.txt files, and log studies show they’re rarely requested. It’s mainly useful for developer documentation read by coding agents.
Can I pay to be recommended by Claude?
No. Anthropic’s February 2026 pledge rules out sponsored links and advertiser influence on Claude’s answers.
Sources
- 1.Does Anthropic crawl data from the web, and how can site owners block the crawler?Anthropic Help Center · support.claude.com ↗
- 2.Anthropic crawler IP rangesAnthropic · claude.com ↗
- 3.Web search toolClaude Developer Platform · platform.claude.com ↗
- 4.Web fetch toolClaude Developer Platform · platform.claude.com ↗
- 5.Enable and use web searchAnthropic Help Center · support.claude.com ↗
- 6.How we built our multi-agent research systemAnthropic Engineering · anthropic.com ↗
- 7.Claude is a space to thinkAnthropic · anthropic.com ↗
- 8.Brave Search crawlerBrave · search.brave.com ↗
- 9.How Brave Search discovers new pagesMERJ · merj.com ↗
- 10.Anthropic uses Brave for web searchSimon Willison · simonwillison.net ↗
- 11.State of AEO 2026Profound (Josh Blyskal) · joshblyskal.com ↗
- 12.Claude AI citation studyOtterly.AI · otterly.ai ↗
- 13.AI search citations by vertical, 2026Attrifast · attrifast.com ↗
- 14.The rise of the AI crawlerVercel · vercel.com ↗
- 15.Markdown for AgentsCloudflare · blog.cloudflare.com ↗
- 16.llms.txt studyAhrefs · ahrefs.com ↗
- 17.Default channel group (AI Assistant)Google Analytics Help · support.google.com ↗
