Why most clinic websites are invisible to AI in 2026
We audited 40 clinic websites across five verticals. The failure modes are consistent and fixable. The fix is rarely cosmetic.
Over the last three months we audited forty clinic websites across GLP 1 weight loss, hair transplant, medical aesthetics, cosmetic dental, and dermatology. The audit protocol was simple. Five patient queries per clinic, run live against ChatGPT, Perplexity, Gemini, and Google AI. A thirty five point technical checklist run against each homepage and two key interior pages.
Thirty two of the forty clinics were cited on zero of the twenty query by engine combinations we tested. The remaining eight were cited on an average of 2.1 combinations out of 20. No clinic exceeded five.
The failure modes clustered. Four technical failures explained most of the invisibility. The failures are not exotic. They are also not going to resolve on their own.
Failure one. JavaScript rendering that hides every page from crawlers
Twenty seven of forty clinics shipped a first response that did not contain their actual content. The HTML returned by the server was a shell. A <div id="root"></div> or equivalent. The real content loaded through JavaScript on the client.
Eighteen of those twenty seven were on Wix. Four on Squarespace. Three on custom React builds. Two on outdated WordPress installs with a single page app theme.
A crawler that does not execute JavaScript sees nothing on these sites. Googlebot sometimes runs JavaScript, but GPTBot and ClaudeBot currently do not. PerplexityBot fetches the raw HTML and gives up if the page is empty. The clinic is not considered for citation because the clinic, to the engine, does not exist.
Run curl https://yourclinic.com | grep -i "provider name". Substitute your actual provider name. If the result is empty, the crawler cannot see your provider. If the result shows the name in HTML text, the crawler can.
Failure two. Zero structured data, or malformed structured data
Thirty one of forty clinics had no Schema.org markup at all. Five had markup that failed validation on Schema.org's validator. Only four had complete, valid MedicalClinic or MedicalBusiness declarations.
Structured data is the fastest path to being understood by an AI engine. A JSON LD block that declares the site as a medical clinic, lists providers, names treatments, and states a location gives the engine a precompiled summary it does not need to infer. Without structured data, the engine falls back on heuristics. Heuristics favor sites that made it easy to parse.
The missing schema is not a generic SEO failure. It is a citation failure. A clinic that declares itself as MedicalClinic with a PhysicalTherapy and WeightLossProgram service, each with a named provider and a location, is legible. A clinic that ships the same information as prose in a div with no markup is not.
Failure three. Hero images with text baked in
Nineteen of forty clinics had their primary headline, their unique selling proposition, and sometimes their provider credentials rendered as text inside a hero image. The image loads. A human reads it. A language model reads the alt attribute if one exists, and often it does not.
This pattern is common because it lets designers control typography and because image editors treat text as a graphic asset. The cost is invisibility. A crucial fact the clinic paid to communicate is not communicated.
The fix is to render all critical text in HTML. Typography control can still come from web fonts and CSS. An image can sit behind the text. The text itself must be a DOM node, not a pixel.
Failure four. No city specific pages
Thirty three of forty clinics served multiple cities. Thirty of those thirty three had a single homepage that listed the cities as text (Austin, Houston, San Antonio) or as small city chips. Only three had dedicated, indexable pages for each city.
Patient queries are local and specific. Best GLP 1 clinic in Austin. Tirzepatide provider near me. A language model fielding a local query does not read every site. It reads a shortlist that matches the city, the specialty, and the language of the query. A single homepage that mentions three cities does not make the shortlist for any of them.
The fix is structural. Generate one page per city, with a URL that contains the city, a title that contains the city, address schema that names the city, and content specific to that location. We seed fifty programmatic pages on every build. Most clinics should be running seventy five to two hundred programmatic pages within a year.
Minor failure patterns worth naming
Slow response times
Fourteen clinics had a time to first byte above one second. Four were above three seconds. Language model crawlers rate limit aggressively. A slow response is often abandoned before any content transfers. The fix is usually a switch from a shared hosting plan to a fast modern stack (Vercel, Cloudflare Pages, static hosting) and a simpler theme.
Missing or default robots.txt
Twelve clinics had no robots.txt at all. Six had a default that explicitly blocked AI user agents (a Wix default from 2023). Four had valid but generic files that did not name modern AI crawlers.
The fix is specific. Name GPTBot, ClaudeBot, PerplexityBot, Googlebot, Bingbot, anthropic ai, and Google Extended with explicit Allow: / directives.
Single page, scrolling site
Nine clinics had built their entire site as a single page with scroll anchors. No treatment pages. No provider pages. No blog. No location pages. The homepage had everything and nothing was indexable as a standalone answer to a specific query.
A language model cannot cite the semaglutide section halfway down the homepage. It can cite the semaglutide treatment page at example.com/semaglutide. The structural choice to compress everything onto the homepage destroys the citation surface.
Reviews living only on third party platforms
Twenty four clinics had all their patient reviews on Google Business Profile, Yelp, or Healthgrades with zero reviews on the clinic's own site. Engines quoting reviews quote from the clinic domain when possible. Off domain reviews exist but compete with every other citation on those platforms.
The fix is to syndicate. Pull a curated selection of reviews onto the clinic domain with Review and AggregateRating schema. Link out to the source for the full set.
What the fix looks like in practice
The technical fix for all four primary failures is a rebuild of the site on a server rendered stack with proper structured data and a programmatic content layer. There is not a faster shortcut because these failures are deep in the architecture.
Attempts to patch without rebuilding typically fail. Adding schema to a Wix site cannot overcome the JavaScript rendering problem. Adding city pages to a single page site does not scale if the underlying stack is wrong. Speeding up a WordPress site addresses one failure mode but not the others.
In every engagement we have run, the move that worked was a full rebuild on an AI native foundation. Seven days. One fee. Four engines. The clinic keeps the site and the domain.
Distribution of outcomes, post rebuild
For reference, the observed pattern across clinics who completed a rebuild using this framework.
Google AI Overviews and Gemini lag by two to four weeks because Google reindexing is slower than live retrieval. The final engine to light up is typically Google AI Overviews, around day 45 to day 55.
How to audit your own site in ten minutes
A clinic owner can run a meaningful first pass audit without tools. Four checks, ten minutes total.
- curl your homepage. Run
curl https://yourclinic.comand read the output. Look for your headline, your provider name, and your treatment names in plain text. If they are missing, Layer 1 is broken. - View source. In a browser, right click and view page source. Search for
application/ld+json. If there is no match, there is no structured data. Layer 2 is broken. - Count city pages. Does your site have a unique, indexable page for each city you serve, with the city in the URL? If no, local queries will not find you.
- Run one query. Ask ChatGPT best [your specialty] clinic in [your city]. Ask the same question in Perplexity. If your clinic is not cited, confirm what we already know.
None of the four checks requires a developer. All four produce the same answer for most clinics. Your site is invisible. The fix is a rebuild. The rebuild is seven days and two thousand four hundred ninety nine dollars.
If you want the full audit run for you, the free 48 hour snapshot runs all four checks plus thirty one more, on your site, across four engines. Request yours here. Zero obligation.