Methodology guide
Claude SEO: How Claude Picks the Sources Behind a Software Recommendation
Short answer
- Claude searches for product questions by design. Anthropic documents that it searches for information about specific products that might have changed, and that comparative research can take ten or more searches.
- Every answer carries two lists. Visible citations quote at most 150 characters each; behind them sits every search result Claude read, returned encrypted to the caller.
- Your page has to survive four steps. A search that returns a title and URL, an optional code filter, a fetch that reads static text only, and a 150-character quote.
- The Index measures Claude from October 2026. Of the links in its 500 October answers, 39% went to vendor sites and 17% to list articles.
The AI Shortlist Index measures Claude from its October 2026 edition, alongside ChatGPT. This guide exists because property managers use Claude to research software. Anthropic also documents its web search tool, its web fetch tool and its citation format in enough detail to say how a software recommendation gets its sources.
The mechanism sections are read from that documentation. Figures from the Index’s October Claude runs are labeled as such.
The one archived run mentioned below is a ChatGPT run, used only to show how the Index reads any engine’s output. The mechanism shared across engines is on the AI search optimization pillar.
Why does Claude matter to a property-ops vendor?
Two reasons. First, the audience: property managers who use Claude for research ask it what they ask ChatGPT. Which maintenance tool fits 300 doors, which PMS it syncs with, and what it costs.
A vendor absent from what Claude reads is absent from that answer.
Second, the mechanism. Anthropic’s tools return a short list of visible citations on top of a longer list of pages the model read, the same shape as the OpenAI API. The Index’s Claude capture uses these tools, so this page also describes how its Claude runs are collected.
How does Claude decide to search?
Per Anthropic’s web search tool documentation, Claude decides whether to search based on the prompt; adding the tool to a request does not force a search. The same page lists the conditions: recent events, current prices, “information about specific organizations, people, or products that might have changed,” and explicit requests to look something up.
A property manager’s software question hits the third condition directly. Pricing, integrations and feature sets change, so the question is one Claude is documented to search rather than answer from training.
Anthropic describes the process as a loop: Claude decides to search, and the API runs it and returns results. This “can repeat multiple times throughout a single request” before Claude writes a final response with cited sources.
The same page says simple factual queries typically use one to three searches, and comparative or multi-entity research can use ten or more. A shortlist question is comparative by definition.
Who controls the search
The documentation says triggering is steerable through the system prompt, and that max_uses caps the number of searches per request as a hard constraint. The owner of a product built on the API decides how eager the model is to search and how many searches it may run. Two products on the same model can produce different shortlists for that reason alone.
In the consumer apps, Anthropic’s help center says web search is available on the models it lists, and that on Team and Enterprise plans an owner must enable it. It says every response using search includes citations, and that Claude may use a location inferred from the user’s IP address.
What does the API return?
The response carries every search Claude ran and everything it got back. Per the web search tool documentation, a server_tool_use block records each search with the query text Claude wrote. A web_search_tool_result block follows it with web_search_result items, each carrying url, title, page_age and encrypted_content.
That last field deserves attention. Anthropic documents encrypted_content as content that must be passed back unchanged in multi-turn conversations, decrypted by the API on later turns. A missing or modified value fails the request with a 400.
For measurement this means the text Claude read is not available to the caller. You get the URL, title and query of every result, but not the page text, so you cannot check which paragraph of a vendor page the model saw. The ChatGPT app the Index captures draws the line earlier still: it shows the links in the answer and not the pages behind them.
Filtering before reading
The documentation describes a newer tool version, web_search_20260209 and later, in which Claude writes and runs code that filters search results before they reach its context. With the basic version, every result is loaded into context. So a vendor page can be returned by the search and dropped by the filter before Claude reads it, and neither event shows up as a citation.
Anthropic charges web search at $10 per 1,000 searches plus standard token costs, counts search results as input tokens, and does not bill a search that errors. A request that uses ten searches costs ten cents in search fees before tokens. For a monthly measurement across dozens of prompts, that is cheap enough to be irrelevant.
How are citations different from sources consulted?
Every answer captured this way carries two lists that answer different questions, the same split the guide to ranking in ChatGPT describes. The Index captures ChatGPT from its app now, and the app shows only the citations, so on that engine the consulted list is no longer visible. Anthropic’s API still returns both.
The visible list
Anthropic’s documentation says citations are always enabled for web search. Each appears on a text block as a web_search_result_location with url, title, an encrypted_index and cited_text of up to 150 characters.
The same page says those fields do not count toward token usage. When API output is shown directly to end users, citations to the original source must be included.
That last clause is a contractual reason the citation is the thing a reader sees. Anyone building a research assistant on Claude is obliged to show it.
The consulted list
The consulted list is every web_search_result across every search in the request. That is the set of pages that could have shaped the answer. Most never get cited, and they still matter because the model synthesized from them.
The Index has one run that shows the gap: a ChatGPT run captured through the OpenAI API on 3 September 2026, since retired and archived. On a single maintenance-software prompt, ChatGPT consulted 124 URLs, 38 of them on reddit.com, followed by appfolio.com and buildium.com. The six inline citations all pointed at vendor pages.
One run, one engine, one prompt, so it proves nothing about Claude. It shows the reading method. Count the consulted list and the citations by domain, and treat the difference as the part of the answer a vendor cannot see from citations alone.
What does the web fetch tool do?
Search returns titles, URLs and encrypted results. Fetch returns a whole page. Per Anthropic’s web fetch documentation, the tool retrieves full text from web pages and PDFs, and Claude can only fetch URLs that already appeared in the conversation.
It cannot fetch a URL it thought of on its own. The documentation says that when both tools are on and a user asks for a page without giving a URL, Claude searches to locate it and then fetches it.
Three details that matter for vendor sites
Anthropic states that web fetch does not support pages rendered dynamically with JavaScript. A pricing table that loads from a script after the page paints is invisible to the fetch.
The documentation lists a url_not_allowed error for URLs blocked by domain filters or Anthropic-side restrictions, and names robots.txt among those restrictions. A robots.txt that disallows Anthropic’s fetchers can stop a fetch, even one a user asked for.
Fetch results are cached, so per the documentation the content returned may not reflect the latest version of the page unless the caller sets use_cache to false. A price change on Tuesday may be read as the old price for some time.
Citations for fetched content are off by default. The fetch carries no charge beyond the tokens of the fetched content, which Anthropic estimates at about 2,500 tokens for a 10 kB page. A heavy page is read at a cost, or truncated by max_content_tokens if the caller set one.
Which settings change the sources without the user knowing?
Three request parameters change which sources can appear, and none is visible to the person asking.
- Domain filters. Anthropic’s server tools documentation describes
allowed_domainsandblocked_domains, one or the other per request, with subdomains included and organization-level restrictions set in the Claude Console. A research product for property managers could allow only trade publications and PMS marketplaces, so a vendor page may be excluded before any search runs. - Location. The
user_locationparameter takes an approximate city, region, country code and timezone, and localizes results. A Texas operator and a Toronto operator can get different consulted lists for the same wording. - Search caps.
max_useslimits the number of searches. Fewer searches skew the consulted list toward whatever the first query returned, which for a shortlist question is usually listicles and forum threads.
What does this mean for a vendor page?
Read the documentation as a description of what your page has to survive. A search that returns a title and a URL, a possible code filter, a fetch that reads static text only, and a citation that quotes at most 150 characters.
- Static, quotable facts first. The 150-character cap on
cited_textmeans a citation is a sentence, not a section. A sentence that states the per-unit price, or the PMS integrations by name, fits. The five facts in the ChatGPT guide are the sentences to write. - Server-rendered text second. The fetch tool’s JavaScript limitation is documented, so a pricing page rendered client-side reads as empty. The structured data guide covers markup, which confirms what the text says once the text is in the HTML.
- Title and URL third. On the search step,
titleandurlare what the model has before it opens anything. A title that says “Example Maintenance Co pricing: per-unit rates for property managers” does work that “Pricing” does not. - The robots file. Anthropic’s fetch documentation names robots.txt as a reason a fetch can be refused. The guide to AI crawlers and robots.txt covers which tokens to allow.
Anthropic’s crawler documentation describes three bots: ClaudeBot collects content that may contribute to training, Claude-User fetches pages when a person asks a question, and Claude-SearchBot improves search quality. It says all of them honor robots.txt.
Blocking the first as a training opt-out is defensible. Blocking the other two removes your pages from the fetches they perform.
How would you measure Claude yourself?
Run the Index’s public prompts through the API with web search enabled. Store the web_search_result URLs and the web_search_result_location citations per run, and record the model id and tool version.
Apply the mention rate, position score and consistency definitions from the AI visibility guide. Three runs per prompt on two separate days, as the Index protocol requires, before believing any of it.
Limits
The mechanism sections are documentation, not observation. The only observations are the October 2026 figures labeled as Index data; nothing else here says that Claude favors Reddit, vendor pages or anything else.
The API is not the app. Anthropic’s help center describes consumer web search separately from the developer tool, with its own enabling rules and location handling. What a developer captures through the API is the closest repeatable proxy, and it is a proxy.
The pages Claude read are returned encrypted, so no one outside Anthropic can audit what text on a cited page the model saw. Citations carry 150 characters of it, and that is the whole visible window.
The same prompt on the same model can produce a different search plan and a different shortlist. Any Claude number should be read as appearing in N of M runs, which is how the Index reports every engine it does measure.
Because domain filters, search caps, location and the system prompt are all set by whoever built the product, “what Claude recommends” is underspecified until you say which product. The bare API with no filters and a US location is the baseline worth measuring first.
What changes month to month?
The model. Anthropic ships new models and retires old ones, and the consumer default changes. Record the model id per run.
Anthropic’s documentation lists three web search tool versions and four web fetch versions, with dynamic filtering, cache bypass and response inclusion added along the way. A capture built on one version behaves differently from one built on the next. Pin the version and log it.
The documentation itself. Every sentence on this page attributed to documentation was read on 2026-09-04, and Anthropic revises these pages without a changelog a reader can subscribe to. Re-verify before citing them.
In the October 2026 edition’s 500 Claude answers, 39% of the links Claude showed went to vendor-owned sites and 17% to “best software” list articles. In ChatGPT’s 500 answers the figures were 66% and 1%. A vendor that wants to appear in Claude’s answers needs to be on the list articles Claude reads, not only on its own site.
Related guides
The guide to ranking in ChatGPT covers the other engine the Index measures. The Perplexity guide covers dated search results and numbered citations, and the Gemini guide covers Google Search grounding. Which crawlers to allow, including Anthropic’s three, is in the AI crawlers and robots.txt guide.
Metric definitions live in the AI visibility guide, and the Index’s own protocol is on how we measure AI recommendations. The commercial side of this work is the AI visibility audit.
Changelog
- 2026-10-31: The Index measures Claude from the October 2026 edition. The opening, the FAQ and the section on what Claude reads now report those runs; the documentation readings are unchanged.
- 2026-10-28: Reformatted with a short answer, question headings, the vendor steps as a numbered list, and an FAQ. Corrected the opening: the Index publishes ChatGPT data only, and Claude is not in its protocol. Documentation readings unchanged from 2026-09-04.
- 2026-09-26: The September figures now cite the 25 ChatGPT app captures per category; the API run of 3 September 2026 is described as retired from the edition and archived.
- 2026-09-19: Updated the comparisons to ChatGPT. The citations-versus-consulted split is now described as something Anthropic’s API still returns and the ChatGPT app does not.
- 2026-09-04: First published.
Questions about Claude SEO
How does Claude decide when to search the web?
Per Anthropic's web search documentation, Claude decides from the prompt; adding the tool does not force a search. It is documented to search for recent events, current prices, and information about specific organizations or products that might have changed. A property manager's software question meets that condition directly.
What does a Claude citation contain?
A URL, a title and up to 150 characters of quoted text from the source. Citations are always on for web search, and Anthropic's terms require showing them when API output goes straight to end users. The full text Claude read is returned encrypted, so the 150 characters are the only visible window.
Can Claude read a pricing page that loads with JavaScript?
Anthropic's web fetch documentation says the tool does not support pages rendered dynamically with JavaScript. A pricing table that appears only after a script runs is empty to the fetch. Put the price in the HTML response.
Should I block ClaudeBot in robots.txt?
Anthropic documents three bots: ClaudeBot collects content that may contribute to training, Claude-User fetches pages when a person asks a question, and Claude-SearchBot improves search quality. All three honor robots.txt. Blocking ClaudeBot as a training opt-out is defensible; blocking the other two removes your pages from the fetches they perform.
Does the AI Shortlist Index track Claude?
Yes, from the October 2026 edition: one answer per prompt, 500 in all, through the Anthropic API with web search and Claude Haiku 5.5. The API is not the claude.ai app, so a buyer using the app may see a different answer. Each Index row shows the vendor's Claude rate beside its ChatGPT rate.
Part of the methodology pillar.