A dental clinic went from position #6 in the Map Pack to the top 3, and total calls grew 247% — 642 tracked calls in 90 days. High-intent calls went from 25 to 61 a month.

The work behind it was SEO plus email marketing. But a large part of the SEO half was technical, and it is the part developers control directly. Here is what mattered, in the order I would check it on any local-business site.

1. LocalBusiness schema that matches reality

The clinic's pages had no structured data tying the business to its services and location. Adding LocalBusiness JSON-LD with the real name, address, phone, opening hours, and service list gives Google a clean entity to attach rankings and Map Pack placement to. Then validate it with Google's Rich Results Test — invalid schema is worse than no schema, because it tells Google the markup cannot be trusted.

2. Click-to-call that actually works on mobile

Most of these calls come from phones. The phone number has to be a real tel: link, visible without scrolling, on every service page — not an image, not a form, not a number buried in the footer. Every extra tap between "I need a dentist" and the call is a lost patient. Test it on a real phone, not just in dev tools.

3. Speed on the pages that convert

Run PageSpeed Insights on the service pages, not just the homepage. A homepage that scores 90 while the "dental implant cost" page loads in six seconds on mobile is a fail — the slow page is the one the high-intent searcher lands on. Watch LCP and INP on those pages specifically.

4. One page per intent, one H1 per page

The queries that converted were specific: "toothache treatment", "dental implant cost". Each one needs its own page with one H1 that matches the query, not a generic services page trying to rank for everything. That is a content decision, but it is also a routing and template decision — the site structure has to support it.

5. Reviews need a page to land on

Map Pack placement leans on review signals, but a review only helps if the business it points to has a fast, working page behind it. The technical job is making sure the Google Business Profile, the site, and the schema all agree on the same name, address, and phone — and that nothing on the site 404s when a searcher clicks through.

What the code did not do

The email half — recall reminders and post-treatment follow-ups — reactivated dormant patients and drove recurring appointments. No amount of schema does that. The honest split is: the technical layer made the clinic findable and callable, and the follow-up system turned one-time searchers into returning patients.

The full breakdown, with the before-and-after numbers, is in the case study: Dental SEO Case Study: +247% Calls in 90 Days.