Retrieval mechanics

How ChatGPT decides which clinic to cite

A working model of retrieval, citation, and the five structural signals that move a clinic from invisible to quoted.

By Kailesk · · 9 min read

A patient opens ChatGPT. Types best GLP 1 clinic in Austin. Three clinic names appear in the answer. Two are cited with links. One is not. Within sixty seconds the patient has called the first cited clinic.

The clinic that answered the phone did not buy an ad. It did not bid on a keyword. It was chosen by a language model that reviewed every clinic website in Austin and picked the three it could understand, verify, and quote. The rest of the Austin clinics were never considered.

This is the asymmetry every clinic owner needs to understand. AI engines make a choice before the patient ever sees a website. The work of getting chosen happens months earlier, in markup, in content structure, in file placement, and in the specific way a clinic talks about what it does.

This essay explains how that choice gets made. It is a working model, not a leak. It is built from public documentation (OpenAI, Anthropic, Perplexity, and Google), from observed behavior across hundreds of clinic queries, and from the engineering patterns that we have seen correlate with citation across the four major engines.

Two retrieval modes, one outcome

A clinic appears in an AI answer through one of two paths.

The first path is training recall. The model was trained on a dataset that included the clinic website or its mentions on third party sites (directories, news, reviews). When the model generates a response, it draws on what it remembers. No live web access required. The clinic is named because the model learned it existed.

The second path is live retrieval. When a query demands current information (a business hours question, a pricing question, or any location specific provider query), the model triggers a web search, fetches a set of live pages, reads them, and quotes from them. ChatGPT does this through its browsing tool. Perplexity does this by default on every query. Gemini does this for health and commerce queries. Google AI Overviews does this through Google Search.

The engineering implication is sharp. A clinic that optimizes only for training recall is betting that OpenAI will include its website in the next training cut. A clinic that optimizes for live retrieval can begin appearing within weeks. We build for live retrieval first and training recall second.

What a crawler actually sees

When Perplexity or ChatGPT fetches a clinic website, the request is handled by a simplified crawler. The crawler does not run JavaScript. It does not wait for animations. It does not scroll to trigger lazy loading. It receives the HTML the server sends in the first response and reads what is there.

A site built on Wix, Squarespace, or a React single page app often sends back a near empty HTML shell. The real content loads later via JavaScript. The crawler sees the shell. The crawler leaves. The clinic is not considered for citation on this query.

A site built with server rendered HTML (Astro, Next.js in static or server mode, plain HTML, or server rendered WordPress) returns the complete content in the first response. The crawler reads everything. Every sentence on the page becomes a candidate for quotation.

Test in sixty seconds

Open a new terminal. Run curl https://yourclinic.com. Read the output. If you see your headlines, your provider names, your treatment descriptions, and your pricing in plain text, the crawler sees them too. If you see an empty <div id="root"></div> and a bundle of script tags, the crawler sees nothing.

The five structural signals that move a clinic into citation range

Once a crawler can read the page, the next question is why this clinic and not another. Five signals do most of the work.

1. Schema.org markup that names the clinic as a MedicalClinic

Structured data is the fastest path to being understood. A JSON LD block that declares the site as a MedicalClinic or MedicalBusiness, lists the services offered, names the providers, states the location, and includes review counts gives the engine a precompiled summary of the clinic. The engine does not have to infer these facts. They are asserted.

Every major engine parses Schema.org. Google uses it for rich results. Bing uses it. Perplexity reads it on fetch. ChatGPT browses with it in context.

A clinic site without Schema.org markup is not disqualified. It is simply harder to understand. Engines fall back to heuristics. Heuristics favor the clinics that were easy to parse.

2. Semantic HTML that tells the model what each block is

An h1 followed by an h2 followed by a p tells a language model the structure of a document. A set of nested divs with class names tells it nothing. The same content, wrapped in semantic tags, is easier to quote and more likely to appear in an answer.

Treatment names belong in headings. Pricing belongs in tables or definition lists. FAQ belongs in the schema declared FAQ pattern. Provider bios belong in article elements with a Person schema attached.

3. Content written in direct, quotable sentences

Language models quote sentences that stand alone. A sentence that requires two paragraphs of context to make sense will not be quoted. A sentence that states a fact cleanly (We price our semaglutide program at $299 per month including provider visits and injections) will be quoted verbatim.

The implication for content is concrete. Write the sentence the AI should quote. Put it near the top of the page. Make it declarative. Include the named entity (the clinic name, the drug name, the city). When the AI needs to answer a patient query, it will have a clean source to pull from.

4. llms.txt at the domain root

llms.txt is a proposed standard (from Answer.AI in September 2024) for giving language models a structured summary of a website. Unlike robots.txt, which tells crawlers what they can read, llms.txt tells models what is worth quoting. It is a markdown file, placed at /llms.txt, that names the site, describes the services, and links to the important pages.

Adoption by major models is not universal as of April 2026, but it is growing. Anthropic has published documentation referencing the standard. Perplexity has confirmed support. Three things make it worth shipping today. It costs nothing. It gives you a controlled summary in AI hands. It is the clearest signal that the site was built with AI retrieval in mind.

5. Local presence signals that match the city query

Patient queries are almost always local. Best clinic in my city. Provider near me. An AI engine answering a local query is not reading the whole internet. It is reading a shortlist of sites that match the city, the specialty, and the language pattern of the query.

Clinics that make it onto the shortlist publish city specific pages. A dedicated page for each metro the clinic serves, with the city in the URL, the city in the page title, the address in structured data, and local content (nearby landmarks, service radius, insurance accepted in that state) tells the engine this clinic is relevant here.

A single homepage that mentions three cities is not enough. Separate pages, one per city, with unique content, wins the local shortlist.

How the four engines behave differently

ChatGPT, Perplexity, Gemini, and Google AI Overviews produce different answers to the same query. The underlying retrieval strategies differ enough that a clinic can appear in one and not the others.

Engine Retrieval behavior What matters most
ChatGPT Browses on demand. Uses Bing as backend for live retrieval. Bing indexable HTML. Schema. Direct quote ready sentences.
Perplexity Always retrieves live. Fetches 5 to 10 sources per answer. Fast HTML response. Clear structure. llms.txt. Citation ready facts.
Gemini Uses Google Search index plus model knowledge. Classical SEO (schema, Core Web Vitals, EEAT signals, backlinks).
Google AI Overviews Selects from top Google Search results and summarizes. Ranking in organic top 10 for the query. Same EEAT signals.

The practical consequence is that a clinic needs all four working at once. ChatGPT and Perplexity reward engineering rigor. Gemini and Google AI reward classical SEO done right. A clinic that builds for AI retrieval typically does better on Google than it did before, because the structural rigor that AI engines want is the same rigor Google has been asking for since the Hummingbird update in 2013.

What to measure, what to ignore

Two metrics matter. One metric does not.

Measure citation frequency. Across a fixed list of patient queries, how many times does your clinic appear as a cited source in ChatGPT, Perplexity, Gemini, and Google AI? Run the same query set weekly. Track the citations. The number should rise after the rebuild and continue rising as content compounds.

Measure direct traffic from AI referrers. Your analytics should begin showing visits with referrer domains of chat.openai.com, perplexity.ai, gemini.google.com, and google.com/search?udm=.... These are patients who followed a citation link. They convert higher than paid traffic because they have already been pre qualified by the AI.

Do not measure rank. Ranking was the metric for classical search, where the user scrolled through a list and picked. In AI search the list is gone. The answer is a paragraph. You are either cited in that paragraph or you are not. Rank does not apply.

The fix is structural

Most clinic websites built in the last decade were built for rank. Keyword density. Long form content targeting search terms. Meta descriptions. Link building. These tactics do not stop working, but they stop being the highest leverage investment.

The highest leverage investment in 2026 is a website that a language model can read on first visit, understand without guessing, and quote with confidence. That is not a marketing problem. It is a software problem. Which is why the fix is engineering, not advertising.

A clinic website in 2026 has one job. Make it effortless for a language model to understand what the clinic does, who it serves, and why it is the right answer to a patient query. Everything else is optional. Kailesk, founder, KailxLabs

The rest of our research breaks down each of these signals into an engineering specification. Read the methodology essay next if you want the full framework. Read the field notes essay if you want the failure patterns we see most often.