We scanned 187 med spas across 10 US metros for three decision-useful facts. 55% showed no procedure price as plain text on any page we checked, and only 8.6% surfaced all three facts — about one clinic in twelve. That leaves 91% missing at least one.
Why a missing price is now an AI-search problem
For years a price left off the page was a conversion choice — make them call. What changed is who else is reading the page. When an assistant compares clinics, it can only use the facts it can actually retrieve — and it reaches for the ones stated plainly as text. If the price lives inside a booking widget, an image, or "call for pricing," there is often nothing to pull. The page can look complete to a human and still be nearly blank to a machine.
That is the lens for this scan. We were not grading design or marketing. We checked one thing: are the three facts we measured present as extractable text on the page?
The three facts we measured — and how often they're there
When an assistant weighs a few clinics for a recommendation, the reasons it can give come from what the page states. Three facts show up repeatedly, so we scanned for each. Across the 187 clinics, measured in visible page text:
Only 8.6% (16 of 187) surfaced all three across the pages we checked — meaning 91% were missing at least one. Most clinics had one or two and left a machine to guess the rest.
The machine-readable layer is even thinner
You might expect the structured data — the JSON-LD that exists specifically for machines to parse — to fill the gap. It mostly does not. 90% of the clinics shipped some JSON-LD, but only 40% used a medical schema type, only 45% named the provider in it, and only 33% put a price in it. So the part of the page built to be machine-readable usually omits the very fact a patient is asking for.
How the 10 metros compared
Sorted by the share of clinics with no price on any page we checked (higher = worse). "Best" and "worst" refer to this price column. Counts shown as X of N because per-city samples are small.
| Metro | No price | Candidacy | All 3 facts | Price in schema |
|---|---|---|---|---|
| Atlanta | 64% (9/14)worst | 29% (4/14) | 7% (1/14) | 29% (4/14) |
| Miami | 62% (8/13) | 46% (6/13) | 15% (2/13) | 54% (7/13) |
| Dallas | 62% (8/13) | 15% (2/13) | 8% (1/13) | 46% (6/13) |
| Las Vegas | 59% (10/17) | 29% (5/17) | 12% (2/17) | 41% (7/17) |
| Los Angeles | 56% (9/16) | 38% (6/16) | 6% (1/16) | 25% (4/16) |
| Scottsdale | 55% (35/64) | 30% (19/64) | 9% (6/64) | 25% (16/64) |
| Denver | 54% (7/13) | 38% (5/13) | 8% (1/13) | 31% (4/13) |
| Nashville | 50% (6/12) | 25% (3/12) | 0% (0/12) | 50% (6/12) |
| Houston | 42% (5/12) | 33% (4/12) | 8% (1/12) | 25% (3/12) |
| Austin | 38% (5/13)best | 23% (3/13) | 8% (1/13) | 31% (4/13) |
| All metros | 55% (102) | 30% (57) | 9% (16) | 33% (61) |
Atlanta disclosed prices least often — 64% showed no price. Austin did best, at 38% missing. But "all three facts" is scarce everywhere and does not track with price: Austin leads on price yet got just one clinic to all three, the same count as Atlanta. Because per-city samples are small, treat the city numbers as directional — the pattern across all 187 clinics is the more reliable read.
How we did it (and what this can't tell you)
In August 2026 we pulled med-spa listings from Google Maps for each metro, found each clinic's sitemap, and opened up to three procedure or pricing pages per clinic. On those pages we used automated pattern-matching to detect three facts, with deliberately strict definitions:
Price: a procedure price like $NN–$NNNN next to a treatment term — excluding financing, membership, and discount figures.
Provider: a name plus credential ("Jane Smith, NP"), "Dr. First Last," "board-certified," or "physician-led."
Candidacy: "ideal/good candidate," "who it's for," "not a candidate," and similar.
Our first provider detector matched "MD" inside base64 data and "Dr" inside street addresses ("Drive"), inflating apparent provider presence to ~90%. We tightened it to require a real name plus credential and re-ran. The corrected text figure (44%) lands within a point of the independent JSON-LD figure (45%) — two methods agreeing. We also hand-validated 30 clinics: the automated classification agreed in 27 of 30 (87 of 90 field-level classifications).
The takeaway isn't that most med spas are careless. It's that most pages were built to persuade a person after the click — not to hand a machine the facts before it.
Check whether AI crawlers can even reach your site — the first gate before any of this matters.
What this is not: a directional automated scan, not a hand-audited census. The sample is a convenience sample from Maps results in 10 cities — not random, not nationally representative, and a single snapshot. A price inside an image, PDF, or booking widget may still be reachable by a human but our scanner didn't count it. Google's guidance on making content available for its AI features: developers.google.com.