The challenge
The client is a 12-location dental group across two metros. Their web presence had grown the way most multi-location groups' do: by accretion. Several locations had their own one-off sites from whichever agency built them, on different platforms, with different booking widgets, different branding, and wildly different performance. The flagship location's site loaded its main content in 4.1 seconds on mobile, and the booking flow, the entire point of the site, leaked the majority of the people who started it.
For a dental group, online booking is the front door. Younger patients do not call; they book from their phone at 10 p.m. or they go to the next practice in the search results. The group was paying for that traffic and watching it bounce off a slow, inconsistent experience. They also had no one keeping the sites healthy, so things broke quietly and stayed broken until a patient complained.
What we found
Two problems surfaced, one obvious and one structural. The obvious one: the booking flow was too long, slow to load, and broke on mobile at the worst steps. The structural one, which mattered more, was that maintaining 12 bespoke sites was the real disease. Every change had to be made a dozen times, which meant changes mostly did not get made, which is why the sites had drifted so far apart and decayed.
The fix was not 12 better sites; it was one platform that renders 12 locations from shared templates, plus someone on the hook to keep it running.
What we built
A single Next.js platform, then an ongoing retainer to keep it sharp.
- One templated platform: A Next.js rebuild where all 12 locations run off shared, location-aware templates. Hours, address, providers, and services are data; the layout, performance budget, and booking flow are shared. A change ships once and lands everywhere. Pages are statically rendered for speed and SEO.
- A booking flow that converts: We cut the flow to the minimum steps, made it fast on mobile, and instrumented every step so we could see exactly where patients dropped, then closed those leaks instead of guessing.
- Performance as a first-class requirement: Image handling, deferred third-party scripts, and a strict budget pulled the flagship's mobile LCP from 4.1s to 1.4s, with the rest of the locations held to the same bar.
4.1s
Legacy one-off site, render-blocking scripts
1.4s
Static Next.js, deferred scripts, image budget
Results
(See the full headline-results grid at the top of this page.)
How the engagement ran
Audit + templating model
Inventoried all 12 sites and platforms. Designed the location-aware template model so one platform could render every location from shared code and per-location data.
Platform build + booking flow
Built the Next.js platform and the shortened, instrumented booking flow. Migrated the first three locations as the proving ground.
Roll out 12 locations + performance
Brought all 12 locations onto the platform, each held to the same LCP and accessibility budget. Closed the booking-flow drop-off points the instrumentation surfaced.
Cutover + retainer handoff
DNS cutover with redirect maps per location to protect existing rankings, then transitioned into the ongoing maintenance retainer.
The retainer
The build was half the value; the retainer is the other half. The group now runs on an ongoing maintenance cadence: we monitor uptime and Core Web Vitals across all 12 locations, ship content and provider updates as practices change, patch dependencies, and run a monthly review of booking-funnel performance. Because everything is one templated platform, a fix or improvement ships once and protects all 12 locations at once. Uptime since cutover sits at 99.95%, and the sites no longer quietly decay between agency engagements, because there is no longer a "between."
The numbers
Online bookings across the group more than doubled, 2.3× the old baseline, driven by the faster, shorter, mobile-first booking flow capturing traffic the old sites were bouncing. Mobile LCP on the flagship fell from 4.1s to 1.4s, with every location held to the same bar. Twelve locations now run on one platform instead of twelve, and the retainer keeps it at 99.95% uptime.
We used to maintain a dozen sites that all slowly fell apart. Now it's one platform, bookings have more than doubled, and someone is actually watching it. The retainer is the part I'd never go back without.
What we learned
For multi-location groups, the win is consolidation, not 12 prettier sites. One templated platform makes every improvement ship once and stops the decay that comes from maintaining bespoke sites no one owns. Pair the rebuild with a retainer and the conversion gains compound instead of eroding the month after launch.
Running multiple locations on duct-taped sites? Get a consolidation plan.