Same size. Opposite blind spots.
Two chains, 839 and 879 clinic pages. Each one answers exactly what the other leaves out.
Watch the walkthrough, or open it on YouTube.
Two physical therapy chains, almost exactly the same size: ATI has 839 clinic pages, Athletico has 879. A patient searching physical therapy near me that takes my plan needs the same handful of facts from either one.
We checked 60 clinic pages from each chain, sampled at random, both as a browser and as Googlebot. Each chain answers exactly what the other leaves out. ATI gives a machine the hours, the phone and a map pin, and never names an insurer. Athletico names Aetna, Cigna and Medicare in plain words, and ships no machine-readable data at all.

Five questions: both chains answer four, a different four
These are the things a patient needs before booking. We counted an answer only when it was in the raw page, before JavaScript.
ATI locations.atipt.com
4/5
- ✓Where is it?
- ✓Is it open now?
- ✓Does it treat my problem?
- ✕Does it take my insurance?
- ✓Can a machine read it as a clinic?
Athletico athletico.com/locations
4/5
- ✓Where is it?
- ✓Is it open now?
- ✓Does it treat my problem?
- ✓Does it take my insurance?
- ✕Can a machine read it as a clinic?
Method: 60 clinic pages sampled at random from each chain, fetched as a browser and as Googlebot, scored on the raw page before JavaScript.
What ATI gets right: the address, the hours and the map pin
Every ATI clinic page we sampled carries a business listing written for machines: what the place is, where it stands and when it opens, in a form an assistant can quote without reading a word of the page.
ATI Madison Heights, MI · page data
"@type": "LocalBusiness",
"name": "Madison Heights - E 12 Mile Rd",
"telephone": "(248) 543-4886",
"openingHoursSpecification": { "opens": "07:00", "closes": "19:00" },
"geo": { "latitude": …, "longitude": … }Then ask an ATI page which insurance it takes
It doesn’t say. The answer exists once, on a single page for the whole company. A patient asking about one clinic, and an assistant answering for one clinic, never reach it.
There is one more gap on every ATI clinic page: no link preview tags. Paste an ATI clinic into a chat or a post and it arrives as a bare URL.

What Athletico gets right: the plans, clinic by clinic
Not a generic list. The Iowa clinic names Iowa plans, the Illinois clinic names Illinois ones. 59 of the 60 pages we sampled name a carrier:
- Aetna
- Aetna Medicare Advantage
- Ambetter
- BCBS Wellmark
- ChampVA
- Cigna / Midlands Choice
- Devoted Health
- Health Alliance
- Iowa Total Care
- Medicaid
- Medicare
- Molina Healthcare
- Mutual of Omaha
- Surest (UnitedHealthcare)
And then Athletico says none of it in code
A machine looking for a clinic on an Athletico page finds a web page, a menu and a search box. It does not find a clinic: no address block, no coordinates, no opening hours it can parse.
Athletico Ankeny South, IA · page data, every type found
"@type": "WebPage",
"@type": "BreadcrumbList",
"@type": "WebSite", "SearchAction"
No LocalBusiness. No address. No geo. No openingHours.The hours are on the page for a reader. An assistant asked “is it open now?” has to parse prose to answer, on all 879 clinics.

The scorecard: four checks each, one they both pass, two neither does
Nine checks, the same method, both chains.
| Check | ATI | Athletico |
|---|---|---|
| Clinic pages carry a business listingThe LocalBusiness block a machine reads | ✓ | ✕ |
| Opening hours a machine can parseNot just printed on the page | ✓ | ✕ |
| Map coordinates in the page dataSo an assistant can place the clinic | ✓ | ✕ |
| Insurance named on the clinic pageThe plans that clinic actually takes | ✕ | ✓ |
| Location sitemap carries datesSo crawlers know what changed | ✕ | ✓ |
| Link previews for social and chatThe og: tags that build a card | ✕ | ✓ |
| Every page in the sitemap is aliveWe requested all 5,374 of them | ✓ | ✓ |
| A note written for AI enginesAn llms.txt on the domain | ✕ | ✕ |
| The finder lists clinics to a crawlerWithout running JavaScript | ✕ | ✕ |
Why this matters to a clinic
Two chains with about 1,700 clinics between them, and each one solved the half the other missed. Neither half is hard. Doing both is what gets a clinic named.
The work is the same either way: say it in plain words a patient can read, and put the same facts in the code an assistant reads. A single clinic can do both in an afternoon.
- We search for your clinic the way a patient would. Your city and your competitors, on Google and on the AI assistants.
- You get the gaps in plain sentences. One list you can hand to whoever runs your website.
- It takes a day. No commitment, no cost.
View the full teardown slides (PDF, 8 pages)
Download the slides (PDF, 570 KB)
Want a free AI visibility audit for your clinic?
Free, and it takes about a day. We check your city and your competitors the way a patient does, then send back every gap in plain sentences.
Get my free audit