I had a free Sunday and an Extractly account I was tired of testing on the same five demo URLs. So I pointed the tool at every dental practice website I could find in the Phoenix metro and saved everything that came back.
There were 612 distinct practice sites after dedupe. Each one took the crawler somewhere between two and forty seconds depending on how big the site was. Total run time, about three hours of clock time while I made dinner and watched a movie. The credits cost me $11 on the Growth plan.
What follows are some things I noticed in the data. Some of it I expected. Some of it surprised me. None of it is going to change your life, but if you build for small businesses or sell to them, it might shift a few of your assumptions.
The websites are smaller than you'd think
The median dental practice in Phoenix has six pages on its website. Not six sections — six total pages.
A homepage, an About, a Services list, a Contact, a Meet the Team, and a Patient Info page. That's the template. About 70% of the 612 sites I crawled fit it almost exactly.
The other 30% split between two extremes. Roughly 18% had two or three pages — basically a digital business card, often hosted on Wix or Squarespace and clearly built in an afternoon. The remaining 12% were sprawling: ten or twenty service pages, blog archives going back to 2017, separate landing pages for emergency, cosmetic, and pediatric care. Those big sites are the ones serious about Google rankings, and you can tell by how clean their schema markup is.
| Site size | Share of practices |
|---|---|
| 1–3 pages (digital business card) | 18% |
| 4–8 pages (the typical clinic) | 70% |
| 9+ pages (serious about SEO) | 12% |
The small ones rank fine for branded searches ("Dr. Patel Phoenix") because Google indexes whatever's there. They get crushed for unbranded searches like "best pediatric dentist Phoenix" because there's nothing to crawl. The big sites win those.
Almost everyone publishes a phone number
99.4% of the sites had a phone number reachable in three clicks or fewer. Usually on the homepage in the header, often as a tel: link.
This isn't true in other industries I've poked at. SaaS companies hide their phone. Restaurants list it but bury it under a reservation widget. B2B agencies skip phone entirely and force you to a "Book a Call" form. Healthcare practices put the phone front and center because their patients are still calling, not booking online. That's interesting.
What did surprise me: only 47% of the sites have any online booking integration. The rest expect a phone call. For an industry that's been told for a decade that online booking is mandatory, that's a striking gap.
Emails are inconsistent
87% of the sites had at least one email address findable somewhere — usually info@, contact@, or appointments@ on the Contact page. So far so normal.
But only 38% had a specific person's email. Like sarah@brightsmiledental.com for Dr. Sarah Patel, the owner. The rest are the generic shared inboxes, which is fine if you're calling to book an appointment but useless if you're an SDR trying to get a meeting with the owner.
Of the practices that listed a doctor's direct email, here's what I noticed:
| Pattern | Share of practices with named-doctor emails |
|---|---|
firstname@ (e.g. sarah@) | 41% |
firstinitial.lastname@ (e.g. spatel@) | 23% |
firstname.lastname@ (e.g. sarah.patel@) | 19% |
dr.lastname@ (e.g. dr.patel@) | 11% |
| Other | 6% |
This is the kind of thing email-finder tools try to permute from a name. They're roughly right roughly 40% of the time, but you'd be better off just reading the website than guessing.
Cloudflare email obfuscation is everywhere
About 22% of the sites had at least one email hidden behind Cloudflare's email-protection scheme. That's the trick where the page shows [email protected] to humans and the real address is hex-encoded in a link. If your scraper doesn't decode it, you'll lose those.
We added a decoder a few weeks ago after running into this exact issue. Before the fix, our extraction hit rate for emails on Cloudflare-protected sites was about 65%. After the fix, it's 91%. The 9% gap is sites where Cloudflare is on but the address isn't published at all.
If you're building your own scraper, the algorithm is short and public. XOR each byte after the first with the first byte. Don't skip this — you'll silently lose a fifth of your contacts.
The team-page situation is messier than expected
I assumed every dental practice would list its dentists with photos and bios. Wrong.
- 64% of sites have a dedicated team or "Meet the Doctors" page
- 19% mention the doctors on the homepage or About page but no dedicated team page
- 17% don't name any specific person on the site at all
That last 17% is the surprising number. These are real practices with real licenses but no personal branding. Sometimes they're acquired into a larger DSO (dental support organization) that doesn't bother updating the local-clinic site. Sometimes they're just bare-bones single-doctor operations where the doctor doesn't see marketing value in being named publicly.
If you're trying to find decision-maker emails, this is the gap you can't paper over. There is no email for Dr. Smith on a site that doesn't mention Dr. Smith.
Specialty signals are reliable
This one I expected to be hard. Turns out it's easy.
The word "pediatric," "cosmetic," "orthodontic," "implant," or "emergency" appears prominently on a site in about 92% of cases where the practice actually offers that specialty. So if you're segmenting Phoenix dentists by what they specialize in, just reading the homepage hero text gets you most of the way there.
Distribution of specialty signals across the 612 sites:
| Specialty mentioned prominently | Share |
|---|---|
| General/family dentistry | 84% |
| Cosmetic | 51% |
| Pediatric | 22% |
| Implants | 38% |
| Orthodontics / Invisalign | 47% |
| Emergency | 19% |
| Sleep apnea / TMJ | 9% |
Practices clearly self-identify. Some run all of these in one practice; others are pure specialists.
Pricing is mostly not listed
I was curious if pricing transparency was creeping in. Roughly 24% of practices listed at least one specific price (usually for the new-patient exam-and-cleaning bundle, which lives around $99-$199). The rest leave pricing to the phone call, presumably so they can quote insurance or run a special.
Of the 24% who do publish:
- Cleaning + exam: median $149
- Whitening: median $399
- Crown: typically listed as "from $1,200"
- Invisalign: typically listed as "from $3,500-4,500"
These numbers will be more useful to people benchmarking against their own practice than to anyone selling to dentists.
What I'd build with this if I had a second weekend
A few ideas:
A list of every Phoenix practice without a website older than two years, scored by how stale their content looks. That's a marketing-agency lead list of practices likely shopping for a redesign.
A map of which practices use which patient-management software, inferred from the booking widgets they embed. Dentrix and Eaglesoft have distinct fingerprints. You could probably tell at scale which DSO owns which clinics from CSS bundles alone.
A weekly diff: which practices changed their team page this week. New hire? Departing doctor? Could be a useful signal for recruiters.
I might do some of these. I might not. The point is the raw data is there if you go look.
Caveats
This is one city, on one weekend, with one tool. The numbers above are descriptive of what I found in Phoenix dental sites in May 2026. They won't generalize to Boston restaurants or London law firms.
Also: I am the person who built the tool, so there's an obvious selection bias here. I picked Phoenix dentists because I knew the corpus already had a head start there from earlier testing. A genuinely cold city might give worse results.
But the macro pattern — that you can ask a question like "what do dental practice websites actually look like at scale" and get a thoughtful answer in three hours — that part is real, and it's available to anyone with an afternoon and curiosity.
If you want to try this on a vertical you actually care about, the free tier covers about 50 sites, which is plenty for a first look. Let me know what you find.