61-Page Dental WordPress Rebuild
A 61-page dental WordPress rebuild: 56 redirects implemented, 52 meta records reconciled, 8 templates, 69 hours, shipped in 29 days with no scope creep.
Screenshots captured by automated tooling — some elements may not have loaded fully or may layer on top of each other. For the most accurate view, visit the live site →
Rebuild the site on a new stack. Implement the spec. Don't improvise. Hand it back ready for cutover.
Client (end user): Naylor Family Dental — Dr. Naylor DDS, Las Vegas, NV
Engagement: White-label development for a US marketing agency
Delivered: July 2025 · 29 days · 69 hours · all agency-scoped issues closed before cutover
The Craft of a Rebuild
61 URLs of a dental practice rebuild, collapsed into 8 Elementor Pro templates against an eight-tab Google Sheets spec — sitemap, template assignments, meta-data backup, launch checklist. The agency owned the strategy and the URL map; we owned the per-page execution and the migration verification across 29 days and 69 hours.
This case study is a record of one such rebuild, in which the agency owned the strategy and we owned the execution.
Snapshot
| Field | Value |
|---|---|
| End-client industry | Healthcare (Dental) |
| End-client | Naylor Family Dental (Dr. Naylor DDS, Las Vegas, NV) |
| Engagement | White-label WordPress build for a US marketing agency specialising in local-business websites |
| Project Type | WordPress rebuild with Elementor Pro on WP Engine |
| Scope | 61 URLs migrated across 8 reusable templates, with service hierarchy, patient resources, and blog archive |
| Timeline | 29 days (19 June – 17 July 2025) |
| Effort | 69 hours — no scope creep on original spec |
| Team | 4 specialists (38h dev · 15h PM · 10h QA · 6h fixes) |
| Tech Stack | WordPress · Elementor Pro · Gravity Forms · WP Engine · Yoast · Screaming Frog · Site Checker (xaverPRO QA plugin) |
| Content parity check | Original-vs-rebuild content diff cleared before handoff — no missing copy, no broken internal links, no structural drift |
| Delivered | Spec followed line-for-line — 56 redirects, 52 meta records reconciled, 8 templates, 35 launch checklist items |
| Retained engagement | 4 further refinement rounds across the next 6 weeks — backlog review, page hiding, SEO task implementation, final review — each delivered in additive sprints inside the same agency relationship |
| Engagement cadence | 85 agency-raised issues · all closed by handoff |
| Review rounds | ≈5 review rounds |
| Per-ticket effort | 7 internal Redmine tickets · median 3.7h / P75 15h per ticket |
| Launch checklist | 39 items, signed off before cutover |
The Brief
Naylor Family Dental operated an existing WordPress site with a deep service hierarchy — cosmetic dentistry, family dentistry, oral surgery, dental implants, and restorative care — each with parent landers and child service pages. The agency had already mapped the full URL migration, designed the template system, and audited the meta data. Our job was to rebuild the site on WP Engine, template-for-template and URL-for-URL, without introducing visual drift or breaking the service architecture.
The spec we received was a Google Sheets workbook with eight tabs: a complete sitemap with current and target URLs, template assignments, a meta-data backup, an AI content map, a settings reference, a split issues backlog (SEO and CX), and a 35-item launch checklist. We were asked to stay outside the client-facing loop, implement every SEO decision as written, and deliver inside the quoted hours. The agency stayed the visible vendor; our team remained invisible to the end client throughout cutover and migration.
The risk the agency was hedging against was not SEO collapse — they had that handled. It was the dev shop that would quietly improvise around the brief: misassign a template on a service page, miss a redirect on a blog post, or reinterpret the spacing on a widget. On a site with eight templates and sixty-one URLs, one small deviation propagates fast.
Risk context. The agency’s migration plan restructured Naylor’s entire service namespace: 34 pages moved from a flat
/services/taxonomy into five category hierarchies (/cosmetic-dentistry/,/family-dentistry/,/dental-implants-center/,/oral-surgery/,/restorative-dentistry/), each with its own redirect chain — so a single service page filed into the wrong category would silently break both the redirect and the new URL architecture simultaneously. The risk is template drift: one misassigned template propagates across every service page, every blog post, every landing page. On a dental site with patient-specific widgets and multi-level service hierarchies, that drift is visible to visitors before it is visible to analytics. The agency hired us because the rebuild had to be pixel-accurate, not just functional.
How We Did It
1. Template-first build. Rather than rebuilding 61 pages one by one, we collapsed them into 8 reusable templates and fit every page into them:
- Homepage — hero, service overview, and trust signals
- Services Lander — parent-level category introduction with child-page navigation
- Service Page — individual treatment detail with structured content blocks
- About Us — practice story and team presentation
- Contact Us — location, form, and booking integration
- Blog Lander — article archive with category filtering
- Blog — individual post template with author and date meta
- Default Template — generic pages (privacy policy, patient resources)
- Smile Gallery — visual case-study presentation for before/after patient work
9 templates, whole site delivered. Future edits on the agency’s side live in one place per page type.
2. Spec followed line-for-line, from the agency’s sheet. The agency handed us a Google Sheets workbook: every URL to migrate with its target path, every meta title and description to port, every template assignment, every client-specific integration (CallRail script, reCAPTCHA on forms, social media links, favicon verification). We implemented each row as written. Where the sheet had a value, that value landed on the new site. Where it didn’t, we flagged it back to the agency. No “creative interpretations” shipped. The workbook also listed several pages that had template assignments and target URLs but no client-supplied copy — the issues backlog flagged these as content-side gaps (assigned to the agency’s content team, not our development scope). We tracked them back to the agency rather than writing placeholder text, which would have created a downstream editorial liability beyond the rebuild’s spec-fidelity contract.
The principle behind this is simple: on a rebuild, the spec is the contract between the agency and its client. A dev team’s job is to protect that contract, not to edit it. All decisions on URL preservation and redirect strategy belonged to the agency; our role was implementation fidelity to the spec they delivered.
3. Crawl-based verification, not “looks fine to me”. Before DNS cutover, we ran Screaming Frog on the old production site and the staging rebuild side-by-side. Status codes, broken links, redirect chains, meta-tag differences — every delta reconciled against the agency’s spec. A second crawl after go-live confirmed every internal link resolved on the live domain.
4. 35 launch checklist items, closed before handoff. Seven categories: Design, Functionality, Content, SEO & Analytics, Responsive, client-specific integrations, and a 7-step Domain & DNS migration to WP Engine. Nothing shipped until each line was signed off. Cross-device QA on Chrome / Firefox / Safari / Edge and six viewports (1920 / 1280 / 1024 / iPad / mobile portrait / mobile landscape).
The flat /services/ taxonomy migrating into five category hierarchies — /cosmetic-dentistry/, /family-dentistry/, /dental-implants-center/, /oral-surgery/, /restorative-dentistry/ — was the tension the build had to resolve first. Each parent needed its own redirect chain and its child pages filed into the right hierarchy before any visual verification could run.
Results
| Metric | Outcome |
|---|---|
| Spec fidelity — redirects | 56 / 61 content URLs redirected, as specified |
| Spec fidelity — meta data | 52 / 52 meta records reconciled against original site crawl — missing or 404 pages flagged back to the agency |
| Spec fidelity — templates | 8 / 8 templates built and applied site-wide |
| Launch checklist | 35 / 35 items signed off before cutover |
| Timeline | 29 days, core build completed |
| Effort | 69h — no scope creep on original spec |
| Responsive verification | Zero layout issues across 4 browsers × 6 viewports |
| Internal QA | All agency-scoped issues closed before handoff (90 of 90 flagged; 0 remaining) |
| Handoff | Site live on WP Engine, no downtime |
| Site status, one year later | naylorfamilydental.com still live, still indexed by Google |
| Retained engagement | 4 further refinement rounds across the next 6 weeks — backlog review, page hiding, SEO task implementation, final review — each delivered in additive sprints inside the same agency relationship |
The outcome, restated plainly: the agency’s spec was implemented as written, inside the quoted hours, with all agency-scoped issues closed. Nine months on, the build remains in production.
Operational Integrity at handoff
Pre-handoff QA ran a side-by-side content parity diff — original production against the staging rebuild — and caught a broken internal link on /dental-implants-center/implant-preparation/ caused by a missing slash in the href; the same pass flagged pages carrying a placeholder notice (“This page is missing main content.”) which were set to draft before cutover. Pre-handoff QA ran through Site Checker — see our QA discipline for the categories and the fail-zero gate. The agency’s own QA layer — their tools, their process — ran post-handoff and surfaced issues into the shared backlog for our fix loop until they signed off.
Process
| Phase | Duration | Outcome |
|---|---|---|
| Brief & estimation | 1 day | Agency spec reviewed; 69h quoted and agreed |
| Development | ~20 days | Full site rebuilt across 8 templates |
| Internal QA & review | ~6 days | 90 issues logged; all agency-scoped work closed |
| Spec verification | 1 day | Meta and redirect matches reconciled against sheet |
| Delivery & DNS cutover | 1 day | Site live on WP Engine, no downtime |
Phases overlap (QA ran alongside late development), which is why the calendar timeline is 29 days rather than the sum of individual phases.
Team
Delivery team
- Pavel Sazhin — lead developer (full site build and template system)
- Nikita Tumasevic — developer (team coordination on this engagement)
- Natalia Bogatel — QA fixes and meta-data implementation
- Anton Hersun, xaverPRO — project lead (estimation, agency-side communication, sign-off)
Agency-side project management and SEO strategy remained with the partner agency throughout. Our team was invisible to the end client.
For agencies considering a white-label WordPress build
First engagement is a calibration batch — two or three pages at fixed hours, QA evidence at handoff, then scale if it lands clean. For agencies managing multi-specialty dental sites with deep service hierarchies, send a sitemap and a sample template assignment; we will estimate the hours per template and flag any namespace decisions that need resolving before build starts.
Don't have a spec yet? Send a one-paragraph description — we'll come back with the questions worth asking. Send a description →
Site Checker runs before the agency sees anything.
Before handoff, every staging build runs through Site Checker — the WordPress QA plugin we built and maintain. It is a fail-zero gate: nothing goes to the agency with an open failure. Warnings are reviewed and judged non-blocking; the agency gets a clean slate to run their own QA layer against, not a staging site with known issues in the queue.