It All Started With An Idea
Client project · Cosmetic and family dentistry · Scottsdale, AZ

Rescuing and rebuilding SEO for a Scottsdale dental practice website

Scottsdale Dental Aesthetics had a site that lived entirely inside a third-party builder account, with broken canonical tags and no tracking. We backed it up, moved it to Cloudflare Pages, and rebuilt its search setup page by page.

Scottsdale Dental Aesthetics on desktop
Scottsdale Dental Aesthetics on a phone
Client
Scottsdale Dental Aesthetics
Location
Scottsdale, AZ
Industry
Cosmetic and family dentistry
Built
Sept to Oct 2026
Our role
Rescue, migration and SEO rebuild
Stack
React, Vite, Tailwind, Cloudflare Pages, GTM, GA4
Service area
Scottsdale, Paradise Valley, Phoenix, Tempe, Fountain Hills, Cave Creek and Carefree

The challenge

The practice's site was a client-rendered React app built and hosted on Readdy.ai. The site, images, lead form and chat all sat inside a third-party account with no rollback. We did not design the original site; our job was to take it over safely and fix it.

Our audit found 21 issues. All 31 canonical tags pointed at a www host that returned an error. There was no analytics, so 54 booking links and 53 phone links went unmeasured. The sitemap had 19 URLs and left out all 12 service pages, 71 old WordPress URLs returned soft 404s, and crawlers without JavaScript saw only the homepage title.

Speed was the other problem. Mobile Lighthouse performance was 26, with a 55.5 second largest contentful paint and 12.6 MB of homepage images loaded from the builder's servers.

The work

What we did, step by step

  1. Back up the live siteWe took a byte-verified backup of the live site on Sept 2, 2026 and archived all 116 third-party images it loaded.
  2. Export the real sourceWe exported the React and TypeScript source from Readdy and confirmed the build reproduced the live stylesheet byte for byte.
  3. Audit and planWe wrote a site audit with 21 ranked findings and a plain-language fix guide for the practice.
  4. Move to Cloudflare PagesOn Sept 7, 2026 we moved scottsdaleda.com to Cloudflare Pages, served from a repository the practice controls. We fixed all 31 canonical tags and made the name, address and phone match on every page.
  5. Recover old URLsWe redirected 71 legacy WordPress URLs with 136 bulk redirect rules, and rebuilt the veneers, teeth whitening, dental implants and blog pages at their original addresses. Several articles came back from the Wayback Machine.
  6. Make every page crawlableWe prerendered every page to static HTML so crawlers see each page's own title, text and schema without running JavaScript.
  7. Rebuild structured dataWe added a Dentist entity, 2 dentist Person records, 19 MedicalProcedure treatments, FAQPage markup on 17 pages, breadcrumbs and BlogPosting markup.
  8. Add trackingWe built a Google Tag Manager container from scratch with GA4, single-page-app pageviews, and phone call and booking click conversions.
  9. Speed and new pagesWe self-hosted 223 images as WebP, split JavaScript per page (main bundle 971 KB to 382 KB) and deferred the chat widget. We added areas served, new patients, insurance and payment, and Spanish pages. In our own testing, mobile Lighthouse performance went from 26 to 98.

What's on it

  • Online booking hand-off to the practice's scheduling tool
  • Click-to-call and booking click conversion tracking
  • Chat receptionist loaded on first interaction
  • Patient financing link
  • Spanish-language page
  • Areas we serve, new patients, and insurance and payment pages
  • Pages for 19 services plus a blog
  • Open Graph share image on every page

Search and local setup

  • Fixed 31 canonical tags to the working host
  • Prerendered static HTML for every route
  • Dentist, Person, MedicalProcedure, FAQPage, BreadcrumbList and BlogPosting schema
  • sitemap.xml generated from the route table, now 49 URLs
  • robots.txt that explicitly allows AI search crawlers, plus llms.txt
  • 71 legacy URLs redirected to their new pages
  • Consistent name, address and phone across the site
  • GA4 and GTM conversion tracking for calls and bookings
Questions

Questions people ask about this work

Can you move a website off Readdy.ai or another AI site builder?

Yes. For this Scottsdale dental practice we exported the real React source from Readdy, checked that the build matched the live site byte for byte, and moved it to Cloudflare Pages. The practice now owns the code and can roll back any change.

Why was my dental website not showing up in Google?

On this site, every canonical tag pointed at a host that returned an error, the sitemap skipped all 12 service pages, and crawlers without JavaScript saw almost nothing. We fixed the canonicals, prerendered each page to HTML and regenerated the sitemap from the route table.

How do you keep rankings when old website URLs change?

We map every old URL to its closest new page. Here we redirected 71 legacy WordPress URLs with 136 rules, covering both trailing slash versions, and rebuilt key service pages at their original addresses.

Services in this project