Research · GLP-1 clinics

How ChatGPT chooses which GLP-1 clinic to cite

A field study of how ChatGPT routes prospect queries for semaglutide, tirzepatide, Wegovy, and Ozempic to specific clinics. The five structural signals that move a GLP-1 clinic from invisible to consistently cited.

By · · 14 min read
Reviewed by: Kailesk, Founder & Lead Engineer, KailxLabs

A patient in Austin asks ChatGPT: "Best GLP-1 weight loss clinic in Austin with transparent monthly pricing under $400?" ChatGPT names two clinics in the answer paragraph. Two of fifty operating GLP-1 clinics in the Austin metro. The forty-eight that are not named are invisible to that prospect entirely.

This study documents how ChatGPT made that selection. The data is a 40-clinic field audit across Austin, Houston, Dallas, Phoenix, Miami, and Los Angeles run between January and March 2026 against twenty GLP-1 prospect queries each. The pattern that emerged is five structural signals, each independently testable, that determine whether a clinic cites or not.

Signal 1: Extractable HTML on first response

Short answer. ChatGPT browse retrieves through the Bing index. The retrieval step parses the HTML the server returns on the first GET request. If the response is a JavaScript shell (Wix legacy, single-page React app without SSR, heavy client-side rendering), ChatGPT extracts nothing and the clinic is invisible regardless of any other signal.

Of the 40 clinics audited, 22 (55%) served a JavaScript shell on first response. These clinics cited at 0 of 20 queries each. The remaining 18 clinics served full HTML on first response (Astro SSR, server-side rendered WordPress with caching, Webflow static export). These 18 averaged 4.2 cited queries each.

Run the diagnostic on your own site: curl https://[your-clinic-domain]. If you do not see the clinic name, the lead physician, "semaglutide," and "$X/month" as plain text in the first response, the site is invisible to ChatGPT.

Signal 2: Schema.org Drug entity per medication

Short answer. Patients ask both branded queries ("Wegovy clinic in Dallas") and ingredient queries ("semaglutide weight loss Dallas"). A clinic with full Drug schema mapping both proprietary and non-proprietary names cites for both. A clinic without Drug schema cites for neither because the disambiguation requires structured data.

Of the 18 clinics with extractable HTML, only 6 (33%) declared Schema.org Drug entities. Those 6 cited at 7.1 queries each on average. The 12 without Drug schema cited at 1.6 queries each. The Drug entity is the single highest-leverage schema upgrade in the GLP-1 vertical.

The Drug entity declares nonProprietaryName (semaglutide, tirzepatide), proprietaryName (Wegovy, Ozempic, Mounjaro, Zepbound), manufacturer (Novo Nordisk, Eli Lilly), prescriptionStatus (PrescriptionOnly), and availableAtOrFrom linking back to the clinic MedicalClinic. The schema work takes about an hour per clinic.

Signal 3: Physician credentials and the YMYL trust filter

Short answer. ChatGPT applies heavier trust filtering on medical YMYL queries. A clinic with board-certified MD providers declared as Physician entities with full hasCredential arrays cites faster on physician-supervised queries. NP-led and PA-led clinics need the supervising physician declared explicitly as a separate Physician entity with affiliation making the supervisory relationship clear.

Of the 6 clinics with Drug schema, all 6 had at least basic provider information. But only 3 declared full Physician entities with hasCredential arrays. Those 3 cited at 9.7 queries each. The remaining 3 cited at 4.0 queries each. The credential schema is the trust filter signal.

Board certifications worth declaring: ABFM (Family Medicine), ABIM (Internal Medicine), ABEM (Emergency Medicine), ABOM (Obesity Medicine). For NP and PA providers, declare state license type and supervising physician affiliation. AI engines route credential-anchored queries against the hasCredential array specifically.

Signal 4: Cash-pay Offer schema for pricing queries

Short answer. 30-40% of GLP-1 prospect queries are cost-anchored. Clinics with Offer schema declaring monthly subscription pricing as UnitPriceSpecification cite for these queries. Clinics that hide pricing or describe it in prose only are invisible to cost-curious queries.

Of the 3 fully-credentialed clinics with Drug schema, 2 declared Offer schema with explicit pricing. Those 2 cited at 11.5 queries each. The 1 without Offer schema cited at 6.0 queries on credential queries but 0.0 on cost queries.

Publishing a starting-from price ("Programs start at $299/month") with minPrice declared in Offer satisfies AI engines that surface cost-curious queries while preserving the clinic's flexibility on package pricing during the consult.

Signal 5: llms.txt with quotable Q&A pairs

Short answer. OpenAI's GPTBot reads llms.txt at the domain root. A well-structured llms.txt with 8-15 quotable Q&A pairs gives ChatGPT curated answers the model can quote directly. Clinics with llms.txt cite at materially higher rates than clinics without it because the Q&A pairs are the highest-leverage citation extraction unit.

Of the 2 clinics with all four prior signals, both had llms.txt at root. Both cited at 12+ queries each. The fifth signal compounds the prior four rather than substituting for any of them.

The compounding pattern

The five signals compound multiplicatively. A clinic passing all five averaged 12.7 cited queries (60-65% citation rate on the test set). A clinic passing four averaged 7.4 (37%). Three passed averaged 4.2 (21%). Two passed averaged 1.4 (7%). One or zero passed averaged 0.1 (under 1%).

The implication: AI citation is not won by deep investment in any one signal. It is won by clearing the floor on all five. The marginal return on signal 6, 7, 8 is meaningfully lower than the return on closing the gap from 4 of 5 to 5 of 5.

What this means for clinics not yet cited

Run the curl test. If you fail signal 1, no other work matters until you rebuild on an SSR stack. If you pass curl but fail signal 2, ship Drug schema this week. If you pass signals 1-2 but fail 3, declare your physician credentials. If you pass 1-3 but fail 4, publish your pricing structure. If you pass 1-4 but fail 5, ship llms.txt at root.

The path is sequential. The KailxLabs $5,999 Foundation Build engineers all five signals on every clinic engagement in seven days with a 45-day citation guarantee. Operators preferring to implement directly have the open framework above.

Related reading

Citations

About the author

Kailesk is the founder and lead engineer at KailxLabs. He builds AI native websites for premium specialty businesses so ChatGPT, Perplexity, Gemini, and Google AI quote them by name within 45 days. Every engagement is delivered personally with no agency layer. Kailesk also ships open source developer tools under HouseofMVPs and runs SaveMRR, a churn recovery product cited across 14 AI engines.