# Claude SEO: What Claude Cites for Vendor Recommendations

> How Claude selects and cites sources for a property manager's software question, read from Anthropic's web search and web fetch documentation.

Canonical: https://webpossible.com/claude-seo/
Source: https://webpossible.com/claude-seo/
Format: Markdown version for AI agents. The canonical HTML page is at the source URL above.
Last verified: 2026-09-04

---

Methodology guide

# Claude SEO: What Claude Cites for Vendor Recommendations

By Ryan York · last verified 2026-09-04

Claude is the one major assistant the AI Shortlist Index does not measure. The Index tracks ChatGPT, Perplexity, Gemini, and Google AI Overviews, and every number it publishes comes from those four. This guide exists because property managers use Claude anyway, and because Anthropic 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 and its visible citations. What follows is read from that documentation, not from Index runs. Where the Index’s one real run is mentioned, it is a ChatGPT run, labeled as such, and used only to show how the Index reads any engine’s output. The commercial side of this work is the [AI visibility audit](/ai-visibility-audit/), and the mechanism shared across engines is on the [AI search optimization pillar](/ai-search-optimization/).

## Why a page about an engine the Index does not measure

Two reasons. First, the audience. Property managers who use Claude for research ask it the same question they ask ChatGPT: which maintenance coordination tool fits 300 doors, which PMS it syncs with, what it costs. A vendor absent from what Claude reads is absent from that answer. Second, the mechanism. Anthropic publishes the web search tool, the web fetch tool, and the citation format as developer documentation, and the shape is close enough to the OpenAI Responses API the Index used for ChatGPT until September 2026 that the same reading applies: a short list of visible citations sitting on top of a longer list of pages the model read. If the Index adds Claude as a fifth engine, the capture would use these tools, and this page is the specification for that capture. Until then, nothing on this page reports what Claude said about any vendor.

## How Claude decides 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 under which it searches: 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. Product pricing, integrations, and feature sets change, so the question is one Claude is documented to search rather than answer from training.

Anthropic’s documentation describes the process as a loop: Claude decides to search, the API runs the search and returns results, and this “can repeat multiple times throughout a single request” before Claude writes a final response with cited sources. The same page gives a range: 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. Expect the higher end.

The documentation also says triggering is steerable through the system prompt, and that `max_uses` caps the number of searches per request as a hard constraint. This matters for anyone reading Claude’s behavior through a product built on the API. The product’s owner 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, that on Team and Enterprise plans an owner must enable it for the workspace, that every response using it includes citations, and that Claude may use a location inferred from the user’s IP address for localized results.

## What the API returns

The API response is where the source-selection question becomes concrete, because 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, and a `web_search_tool_result` block follows it with a list of `web_search_result` items, each carrying `url`, `title`, `page_age` (when the page was last updated), and `encrypted_content`.

That last field deserves attention. Anthropic documents `encrypted_content` as content that must be passed back unchanged in multi-turn conversations; the API decrypts it on later turns to restore the search results in Claude’s context, and a missing or modified value fails the request with a 400. For measurement this means the text of what Claude read is not available to the caller. You get the URL and title of every result, and you get the query. You do not get the page text, so you cannot check which paragraph of a vendor page the model saw. The OpenAI Responses API had a similar boundary, and Anthropic states it in the field name. The ChatGPT app the Index now captures draws the line earlier still: it shows the links in the answer and not the list of pages behind them.

The documentation also 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 window; 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. 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, which is one argument for adding Claude to the Index later.

## Citations versus sources consulted

Every answer captured this way carries two lists, and they answer different questions. It is the same split the [ChatGPT source-selection guide](/chatgpt-seo/) describes, and that guide is also where the limit of the split is stated. 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 at all. Anthropic’s API still returns both.

The citations are 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 `cited_text`, `title`, and `url` do not count toward token usage, and that 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 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. They still matter because the model synthesized from them.

The Index has one real run to show what the gap looks like, and it is a ChatGPT run, not a Claude one, captured through the OpenAI API on 3 September 2026 before ChatGPT capture moved to the app. In the 2026-09 edition, on a single maintenance-software prompt, ChatGPT consulted 124 URLs; 38 of them were on reddit.com, followed by appfolio.com and buildium.com, while 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 by domain, count the citations by domain, and treat the difference as the part of the answer a vendor cannot see from the citations alone. The [Index methodology](/ai-shortlist-index/methodology/) applies that reading to the four engines it measures; this page is what the same reading would mean for a fifth.

## Web fetch, the second tool

Search returns titles, URLs, and encrypted results. Fetch returns a whole page. Per Anthropic’s web fetch tool documentation, the tool retrieves full text from web pages and PDFs, and Claude can only fetch URLs that already appeared in the conversation: in user messages, in client-side tool results, or in earlier web search or web fetch results. It cannot fetch a URL it thought of on its own. The documentation says that when both tools are enabled and a user asks for a specific page without giving a URL, Claude searches to locate it and then fetches the result.

Three details from the same page bear on 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 by Anthropic-side restrictions, and names `robots.txt` among those restrictions. A robots.txt that disallows Anthropic’s fetchers can therefore stop a fetch, even one a user asked for. And 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 optional and off by default; the caller enables them per tool, and the fetch itself carries no charge beyond the tokens of the fetched content, which Anthropic estimates at about 2,500 tokens for a 10 kB page. A 10 kB page is a lean product page. A heavy one is read at a cost, or truncated by `max_content_tokens` if the caller set one.

## Filters, location and caps

Three request parameters change which sources can appear, and none of them is visible to the person asking the question.

Anthropic’s server tools documentation describes `allowed_domains` and `blocked_domains` (one or the other, never both in a request), with subdomains included automatically, path suffixes supported for search, and organization-level domain restrictions set in the Claude Console that request-level lists must fit inside. A vertical research product built for property managers could allow only trade publications and PMS marketplaces, or block a review platform. From inside such a product, a vendor page that is absent from the answer may have been excluded before any search ran.

The `user_location` parameter takes an approximate city, region, two-letter country code, and timezone, and localizes results. A Texas operator and a Toronto operator can get different consulted lists for the same wording.

`max_uses` is the third. Fewer searches means fewer consulted URLs, which means the consulted list skews toward whatever the first query returned. For a shortlist question, the first query is usually the generic one, “best maintenance coordination software,” and that query’s results are listicles and forum threads rather than vendor pages.

## What this implies 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_text` means a citation is a sentence, not a section. A sentence that states the per-unit price, or the PMS integrations by name, fits. A paragraph that circles the price does not. The five facts in the ChatGPT guide (price per unit, portfolio range, integrations by name, what the product does that the PMS work-order screen does not, service layer or software only) are the sentences to write.

Server-rendered text second. The fetch tool’s JavaScript limitation is documented, so a pricing page rendered client-side is a page the fetch reads as empty. The [structured data guide](/structured-data-for-ai/) covers markup, and markup helps confirm what the text says, but the text has to be in the HTML response.

Title and URL third. On the search step, `title` and `url` are the only fields describing a result that the caller ever sees in plain text, and they are what the model has before it opens anything. A title that names the product and the category (“Example Maintenance Co pricing: per-unit rates for property managers”) is doing work that “Pricing” is not.

Then the robots file. Anthropic’s fetch documentation names robots.txt as a reason a fetch can be refused. The crawler side of that, which tokens Anthropic uses and what each is for, is in the [guide to AI crawlers and robots.txt](/ai-crawlers-robots-txt/). The short version: Anthropic’s crawler documentation describes three bots, ClaudeBot for collecting content that may contribute to training, Claude-User for fetches made when a person asks Claude a question, and Claude-SearchBot for improving search result quality, and says all of them honor robots.txt directives. Blocking the first as a training opt-out is a defensible choice. Blocking the other two removes your pages from the fetches those two perform, per the same documentation.

Last, measurement. The Index does not run Claude. A vendor who wants the Claude number can run the same prompts through the API with web search enabled, store the `web_search_result` URLs and the `web_search_result_location` citations per run, and apply the mention rate, position score and consistency definitions from the [AI visibility guide](/ai-visibility/). Three runs per prompt on two separate days, as the Index protocol requires, before believing any of it.

## Limits

This page is documentation, not observation. Nothing here says that Claude favors Reddit, or vendor pages, or anything else, because we have not run the prompts. When we do, the results will appear on the Index with run files, and this page will change.

The API is not the app. Anthropic’s help center describes the 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.

Encrypted content. 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. That is the whole visible window.

Non-determinism. The same prompt on the same model can produce a different search plan and a different shortlist. Any Claude number should be read as “named in N of M runs,” which is how the Index reports every engine it does measure.

Product variation. Because `allowed_domains`, `max_uses`, `user_location` and the system prompt are all set by whoever built the product, “what Claude recommends” is underspecified until you say which product, with which settings. 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.

Tool versions. Anthropic’s documentation lists three web search tool versions (`web_search_20250305`, `web_search_20260209`, `web_search_20260318`) 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, because the filtering step changes what reaches the model’s context. Pin the version and log it.

The documentation itself. Every sentence on this page attributed to documentation was read on 2026-09-04. Anthropic revises these pages without a changelog a reader can subscribe to. Re-verify before citing them.

The sources. We expect Claude’s consulted list for a property-ops software prompt to look like the other engines’ at the domain level (forums, PMS vendor content, product pages), because the search step draws on the same public web, but we have not tested this and will not claim it until a run file exists.

## Related guides

The engines the Index does measure have their own pages: the [ChatGPT guide](/chatgpt-seo/) covers the app capture and the one real run, the [Perplexity guide](/perplexity-seo/) covers dated search results and numbered citations, and the [Gemini guide](/gemini-seo/) covers Google Search grounding. Which crawlers to allow, including Anthropic’s three, is in the [AI crawlers and robots.txt guide](/ai-crawlers-robots-txt/). Metric definitions live in the [AI visibility guide](/ai-visibility/), and the Index’s own protocol is on [how we measure AI recommendations](/ai-shortlist-index/methodology/). The [AI search optimization pillar](/ai-search-optimization/) puts all of this in order.

## Changelog

-   2026-09-19: Updated the comparisons to ChatGPT. The Index no longer reads ChatGPT through the OpenAI Responses API, so the citations-versus-consulted split is described as something Anthropic’s API still returns and the ChatGPT app does not. The 2026-09 ChatGPT run is labeled as the API capture of 3 September 2026.
-   2026-09-04: First published.

Part of [the methodology pillar](/ai-search-optimization/).
