Claude SEO: how Claude finds and cites websites

·7 min read

Claude SEO is the work of getting your pages found and cited when Claude searches the web for an answer. Claude decides for itself when a question needs a search and attaches a citation to each claim it takes from a page. You control less than you do with Google. Let Claude-SearchBot and Claude-User through robots.txt and your firewall, put your facts in the HTML your server sends, and write sentences specific enough to quote.

How Claude web search works

Claude runs a web search when a question depends on information that is current, changing or missing from its training data. Anthropic's web search documentation lists the usual triggers as recent news, current prices and statistics, details about a specific company or product that may have changed, and a direct request to look something up. Established facts, coding concepts and creative writing get answered from memory.

That split decides whether your page can appear at all. "How much is Acme's Pro plan?" sends Claude to the web. "What is a CRM?" usually gets answered from training, with no link to anyone.

One question can also produce several searches. The same docs say a simple factual question typically takes one to three, while a comparison or research across several companies can take ten or more. Claude writes those queries itself, so a page that answers one narrow follow-up, such as your integrations or usage limits, has a better shot at a citation than an overview that mentions everything once.

When someone pastes your URL into a chat, Claude fetches that page as well. Web search has been on every Claude plan worldwide since May 27, 2025, per Anthropic's announcement, and what Anthropic's help center calls the new Claude experience has no search toggle at all.

Which search engine does Claude use?

Anthropic has not said publicly. Its web search help article and its launch announcement name no provider for text results.

The nearest thing to an answer is Anthropic's subprocessor list. On October 10, 2026 it named two companies with the purpose "Web Search". Brave Search covers all products. The second, turbopuffer, sells a vector and full-text search database that customers fill with their own data, so it isn't a public web index. Anthropic doesn't say what either one does for Claude, or how they relate to the index Claude-SearchBot builds.

Brave's role has been reported since March 2025, when Simon Willison found that the citations from one Claude search matched Brave's results for the same query. That is evidence from one test, and the list now carries a second name.

Image results are the one exception. The help article says the images Claude shows come from Bing.

So don't optimize for one engine you can't confirm. Run a site:yourdomain.com search on Brave Search to check that your key pages are there, keep Claude-SearchBot allowed so Anthropic's own crawler can index you, and stay indexed in Bing if image results matter to you.

How Claude citations appear

Every answer that uses web search includes citations, according to Anthropic's help center, along with links to the sources and sometimes a short quote from them. The reader can click through to the page behind each claim.

The developer API shows what sits inside a citation. Each one carries the page's URL, its title and up to 150 characters of the cited text, so Claude cites a passage rather than your page as a whole. Anthropic also requires developers who show Claude's search answers directly to their users to include the citations, so apps built on the API should link to you too.

Write for that 150-character window. "The Pro plan costs $49 a month and includes 10 seats" still works when it's lifted out of the page. "As mentioned above, pricing is competitive" means nothing on its own and gives Claude nothing to cite.

Each search result also carries a page_age field, the date the site was last updated. Anthropic doesn't say how Claude weighs it, so keep your dates accurate and don't fake freshness.

Which Anthropic bots to allow in robots.txt

Allow Claude-SearchBot and Claude-User on every page you want cited. ClaudeBot only affects training, and blocking it doesn't stop the other two. Anthropic's crawler help article describes all three.

Bot What Anthropic says it does What blocking it does
Claude-SearchBot Crawls the web to improve the quality and relevance of Claude's search results Stops indexing for search and may reduce your visibility in Claude's search results
Claude-User Fetches pages when a Claude user asks a question that needs them Claude can't retrieve your page for that user
ClaudeBot Collects web content that could help train Anthropic's models Signals that your future content should be left out of training

Anthropic says its bots respect robots.txt, and its API docs list robots.txt among the reasons Claude refuses to fetch a URL. If your file has no group naming them, they follow User-agent: *. The case to watch is a site that blocks every bot by default and lets a few in by name:

User-agent: *
Disallow: /

User-agent: Claude-SearchBot
User-agent: Claude-User
Allow: /
Disallow: /admin/

ClaudeBot has no group here, so the * block keeps it out while Claude's search crawler and user fetches get through. A crawler follows only the most specific group that names it, so copy into the Claude group any paths you still want blocked. Repeat the rules on each subdomain, because each host reads its own robots.txt.

Check your CDN as well. A bot-management rule that returns 403 to Claude-User blocks it as surely as a Disallow line. Our ClaudeBot guide covers the user agent strings and IP verification, and the AI crawler list has every other AI bot.

Put the facts in your server HTML

When Claude fetches a page, it reads the HTML your server sends. Anthropic's web fetch documentation says the tool doesn't support pages rendered dynamically with JavaScript. If your pricing table, plan limits or product specs load from a script, Claude reads a page without them.

Test it with the exact sentence you want quoted:

curl -s https://example.com/pricing | grep -c "49 a month"

A 0 means the sentence isn't in the raw HTML, so a Claude fetch won't see it. The same docs say fetched pages are cached, so Claude may read an older copy for a while after you publish a fix. Our AI crawler view compares a page's raw HTML with the rendered version and lists the content and headings that need JavaScript.

Claude SEO checklist: how to get cited by Claude

Getting cited by Claude takes a page it can reach, in an index it searches, with a sentence specific enough to quote. Work through it in this order:

  1. Allow Claude-SearchBot and Claude-User in robots.txt and in your CDN's bot settings.
  2. Check that Brave Search lists your key pages and that Claude-SearchBot appears in your logs.
  3. Put prices, specs and claims in the server HTML.
  4. Give each common follow-up question its own page or clearly headed section.
  5. Open each section with one sentence that holds the fact, number included, short enough to fit a 150-character citation.
  6. Ask Claude your buyers' questions, note which domains it cites, and work on getting mentioned on those sites.

There is no Claude-only strategy worth building. Every step above also helps ChatGPT and Perplexity, and our guide to getting cited by ChatGPT covers the OpenAI side.

How to tell whether Claude sends you traffic

Look at claude.ai referrals in your analytics and Claude-User requests in your server logs. Together they are the closest thing Claude has to Search Console.

Visitors who click a citation in Claude arrive with claude.ai as the referrer when their browser passes one. Claude has no documented equivalent of ChatGPT's utm_source=chatgpt.com tag, and apps can drop the referrer, so some Claude visits land in direct traffic. Treat the claude.ai count as a floor. Our AI referral guide has filters for GA4 and other analytics tools.

Claude-User requests show which pages Claude read live for someone, whether or not they clicked. Claude-SearchBot requests show Anthropic indexing you. With an Nginx or Apache combined log:

# Pages Claude fetched for users, most requested first
zgrep -ih "claude-user" /var/log/nginx/access.log* | awk '{print $7}' | sort | uniq -c | sort -rn | head -20

# Claude-SearchBot requests per day
zgrep -ih "claude-searchbot" /var/log/nginx/access.log* | awk '{print substr($4, 2, 11)}' | sort | uniq -c

Neither count is complete. Anthropic's API returns search results with the page content attached, so Claude can cite you from the index without a new request to your server. And anyone can fake a user agent. Anthropic publishes its crawler IPs at claude.com/crawling/bots.json, and our AI bot log analyzer checks each Anthropic request against that list and separates Claude-User fetches from crawling.

Check your robots.txt for Claude's crawlers

Our robots.txt checker fetches your live robots.txt and reports whether ClaudeBot, Claude-SearchBot and Claude-User may fetch the URL you enter, among 14 AI crawlers that include GPTBot and PerplexityBot. For each one you see the group that matched and the rule that decided it. A blocked search or user crawler gets a warning. A blocked training crawler gets a note, since that block is often deliberate.

It also flags syntax problems and conflicting Allow and Disallow rules, and tests any path against any user agent you type. If your server answers our request with a 401, 403 or 429, the report says so, because a firewall can turn away crawlers that robots.txt allows. A run costs 10 credits.

Keep reading