Apna Dental Hospital: 3D Website with Live Google Reviews & Local SEO
Replaced a dated WordPress site with a fast, modern clinic website featuring an interactive 3D tooth-anatomy hero, the clinic's real 5.0★ Google rating (204 reviews) streamed live onto the page, spreadsheet-managed images, full local-SEO schema, and a clean two-domain migration — all on infrastructure that costs almost nothing to run.

The Challenge
A multi-doctor dental hospital was running on an old WordPress site that didn't reflect the quality of the practice: slow, dated, invisible in search beyond its name, and split across two domains (.in and .com) with no clear canonical. Their strongest asset — a 5.0-star Google rating across 200+ patient reviews — was buried on Google Maps where website visitors never saw it. Updating even a photo required a developer.
What We Built
We built a nine-page static site with a distinctive interactive 3D molar-anatomy hero (Three.js), deployed on Vercel. The clinic's live Google rating and latest reviews stream onto the homepage through a serverless proxy to the Google Places API — always current, never pasted. Every image on every page is managed from a Google Sheet, so the clinic updates photos without touching code. Local SEO got the full treatment: Dentist/LocalBusiness JSON-LD with NAP and hours, OG share images, a 48px-compliant favicon set, robots.txt + XML sitemap, Search Console verification for both domains, and a formal Change-of-Address migration consolidating the old .in domain onto the .com with path-preserving permanent redirects.
How It Works
The centrepiece is a Three.js scene of a molar with live-annotated anatomy — the arrows recompute per frame as the model rotates. It's the kind of detail patients remember, and it signals a modern practice before a word is read. Everything around it stays deliberately clinical and light: white space, royal-blue accents, fast loads.
Social proof was the biggest unlocked asset. The clinic had a 5.0 rating across 204 Google reviews that website visitors simply never saw. A serverless function proxies the Google Places API (keeping the API key off the client), caches the response, and feeds a floating review marquee — real reviewer names, real text, always current. No screenshots, no manual updates, no stale count.
Content management without a CMS: every image slot across all nine pages resolves through a Google Sheet mapping slot names to image URLs. The clinic uploads a photo, pastes a link in the Sheet, and the site updates. This one pattern removed the developer bottleneck that had kept their old WordPress site perpetually outdated.
The domain situation needed surgery. The practice owned both the .in (old site) and .com; we made the .com canonical, set path-preserving 308 redirects from every .in URL, verified both properties in Search Console, and filed a formal Change of Address so Google consolidates ranking signals instead of splitting them. Sitemap submission came back clean: all 20 URLs discovered.
Structured data does the local-SEO heavy lifting: a Dentist-typed LocalBusiness schema carries the exact NAP, opening hours, geo coordinates, and sameAs links to the clinic's real social profiles — correcting, among other things, a wrong Instagram association in their Google knowledge panel. GA4 was installed and verified firing (the old site had no analytics at all).
The whole stack — static site, serverless review proxy, Sheet-driven images — runs on Vercel's free tier with the Places API's negligible usage costs. For a local clinic, that means a permanently modern web presence with effectively zero hosting bill and zero developer dependency for day-to-day changes.


