Work / Build / 38-Page Dental WordPress Build

38-Page Dental WordPress Build

A 38-page dental WordPress build delivered in 40 days against a custom design — 57 hours, 68 redirects reconciled, 45 issues closed, no overrun.

End client 38-Page Dental WordPress Build
Sector Healthcare (Dental)
Engagement White-label delivery for a US marketing agency specialising in local-business websites
Timeline 40 calendar days
57h across 40 days
www.sanjosedentist.com · desktop
www.sanjosedentist.com · mobile

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 →

— The brief

Build the URLs across the agency's templates, wire the conversion primitive, then work the QA backlogs to closure.

Client (end user): Center for Advanced Dentistry — San Jose, CA
Engagement: White-label development for a US marketing agency
Delivered: Jan – Mar 2025 · 40 days · 57 hours across build + fix-and-feedback tail

The Craft of a Build

38 pages of a dental practice website built to a single custom design — no template-library shortcut. Mid-stream, the agency added 68 blog-post redirects to the scope; the build absorbed the expansion without extending the 40-day timeline or the 57-hour budget. A 40-item issues backlog was worked down in parallel across 4 review rounds, with 45 agency-raised issues closed before handoff.

This case study is a record of such a build — a 38-page dental practice site delivered against a custom design, with a blog-redirect reconciliation tail that ran parallel to the fix-and-feedback stretch.

Snapshot

Field Value
End-client industry Healthcare — Dental
End-client Center for Advanced Dentistry (San Jose, CA)
Engagement White-label WordPress build for a US marketing agency specialising in local-business websites
Project Type WordPress build with Elementor on Plesk-managed hosting, followed by a fix-and-feedback reconciliation tail
Scope 38 URLs — homepage, about, services lander, 17 service pages, 3 doctor/staff pages, patient resources, smile gallery, blog lander, plus 12 supporting pages
Timeline 40 days (20 Jan – 2 Mar 2025), delivered on schedule
Effort 57 hours against a 57-hour estimate — no overrun
Team 4 specialists (dev-heavy build; PM share appropriate for a single-phase engagement with a feedback tail)
Templates 1 custom design template — the agency’s Original Design applied to every page
Tech Stack WordPress · Elementor · Plesk-managed hosting · Screaming Frog · Site Checker ( QA plugin)
Delivered 38 URLs built, 68 blog redirect pairs reconciled, checklist signed off across Design / Functionality / Content / SEO / Responsive, 40-item Issues Backlog closed as Completed
Engagement cadence 45 agency-raised issues · all closed by handoff (16-day active span, 2025-02-03 – 2025-02-18)
Review rounds ≈4 review rounds across the 40-day calendar window
Per-ticket effort 7 internal Redmine tickets · median 1.9h / P75 53h per ticket
Launch checklist 58 items, signed off before cutover

The Brief

A US marketing agency retained by Center for Advanced Dentistry — a San Jose-based general and cosmetic dental practice — handed us a Google Sheets workbook with a full URL map, a custom design specification, a launch checklist, and a pre-populated issues backlog. The build sat on the agency’s Plesk-managed hosting environment; the page builder was Elementor. The design source was the agency’s own Original Design, not a template library.

The ask: build all 38 pages against the custom design, migrate 25 blog posts, reconcile 68 blog-post redirects to service and lander pages, wire menus and contact forms, and work down the Issues Backlog and the Account Manager’s staging-review feedback until the agency accepted the site. Throughout, remain outside the end-client-facing loop; surface ambiguity back to the agency; do not improvise design, navigation, or CTA decisions.

Risk Context. A custom-design build is not a template fill-in. The agency’s design is the contract, and every page must match it. The risk is not in building pages quickly; it is in building pages that drift from the design source — a hero image positioned two pixels lower, a tile size off by a margin, a mobile menu that doesn’t close cleanly. On a 38-page dental site, those deltas compound. The agency’s risk is a dev partner who sees “pages built” as “design matched”, when the two are different jobs. Predictability over cleverness.

How We Did It

1. One custom design, 38 pages, one build pipeline. Center for Advanced Dentistry’s pages were all built on the agency’s Original Design template: Homepage, About Us, Services Lander, 17 individual Service Pages (from preventive dentistry to All-on-4 implants), three doctor/staff pages (Meet the Dentists, Dr. Lim, Dr. Perez, Meet the Team), Smile Gallery, Blog Lander, patient resources (For Patients, Post-Op Instructions, FAQ, Refer a Patient), and 12 supporting pages (Contact, Reviews, Video Testimonials, Sitemap, Privacy Policy, and others). Each page was built against the design row in the sitemap; no page was hand-rolled outside the design system.

2. Spec followed line-for-line — including the per-page Hours Estimated column. The agency’s 38-row sitemap workbook carried an Hours Estimated value for every row. We implemented against that value. Where the Homepage carried 22 hours and a standard service page carried 0.2–0.8 hours, that was our budget for the row, and the aggregate came in at the agreed 57 hours for the project.

The principle behind this is simple: on a build with a pre-costed sitemap, the workbook is the contract. A dev team’s job is to deliver inside the row-level budgets, not to re-open the pricing conversation page by page.

3. Blog redirect reconciliation across 68 unique URL pairs. The practice’s legacy blog carried nearly 100 posts. The agency’s audit flagged 68 posts for removal and redirect to relevant service pages or the blog lander. We reconciled 68 unique URL-to-URL pairs in the RemoveRedirect Blogs workbook tab — each mapped from the legacy blog path to the final production target and verified against the redirect table. All rows closed before handoff.

3b. SEO metadata transferred manually — no SEO plugin was installed. The workbook’s checklist explicitly noted “No Yoast, RankMath”, so title tags and meta descriptions were copied from the live site into each new page by hand rather than pulled from a plugin database.

4. Two parallel QA loops, closed before launch. Issues were tracked in two parallel streams — the workbook Issues Backlog (46 rows, 40 closed as Completed) and the Account Manager’s staging-site review (tracked in a separate QA document and closed as resolved before handoff). The 52-row launch checklist — Design, Functionality, Content, SEO and Analytics, Responsive, and Domain & DNS columns — was signed off across the applicable categories before the site went live.

The 40-day calendar held because three streams ran in parallel — 38 pages against the custom design, 68-pair redirect reconciliation, and two-track Issues Backlog. Each closed independently against a shared 57-hour budget, so the fix-and-feedback tail absorbed the redirect expansion without pulling the timeline or reopening the estimate.

Results

Metric Outcome
URLs built 38 across 1 custom design template (1 Homepage · 1 About · 1 Services Lander · 17 Service Pages · 3 Doctor/Staff Pages · 1 Smile Gallery · 1 Blog Lander · 12 Supporting Pages)
Templates applied 1 / 1 — the agency’s Original Design applied to every page
Blog redirect pairs reconciled 68 unique pairs closed in the RemoveRedirect Blogs tab
Issues Backlog 40 / 46 closed as Completed; 5 To Do, 1 pending at data export
Account Manager QA backlog Closed as resolved — tracked in a separate staging-review document and worked to agency acceptance
Launch checklist 52 items signed off across Design (3/3) · Functionality (4/4) · Content (2/2) · SEO and Analytics (14/15) · Responsive (16/20)
Timeline 40 days (20 Jan – 2 Mar 2025), on schedule
Effort 57h / 57h estimate — no overrun, no scope creep
Handoff Site live on Plesk-managed hosting, https://www.sanjosedentist.com/ returning HTTP 200
Site status, verified 2026-04 Production live and serving 200 from a fresh curl check

The outcome, restated plainly: the agency’s 38-URL custom-design build shipped on the Plesk-managed WordPress environment, inside the 57-hour quoted budget. The Issues Backlog was worked down to agency-acceptance levels, the AM QA cycle closed, and the launch checklist signed off before cutover.

Operational Integrity at handoff

QA on this engagement carried two specific loads: the 68-pair redirect batch had been imported without leading slashes — sending /blog/highly-recommended-dental-treatments/ to a double-path 404 instead of /blog/ — and a metadata sweep found title tags, meta descriptions, and h-tags across the 38 pages not matching the live site; both fixed before the agency received staging. 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 week Workbook reviewed, row-level hours confirmed, 57h quoted and agreed
Build phase (pages + templates) ~3 weeks All 38 URLs built against the Original Design on staging; Issues Backlog opened
Blog redirect reconciliation ~1 week 68 unique blog redirect pairs mapped and closed
Reconciliation tail (Issues Backlog + AM QA) ~2 weeks Both backlogs worked in parallel through staging-feedback rounds; 40/46 Issues Backlog to Completed; AM QA closed
Launch checklist + delivery final week 52-item checklist signed off; production cutover

Phases overlap — the redirect-reconciliation work began before every build-phase QA item had closed, which is why the calendar is 40 days rather than the sum of individual phases.

Team

Delivery team

  • Nikita Tumasevic — lead developer across build and reconciliation phases
  • Anna Polunina — developer support on late-phase fix rounds and blog content wiring
  • Evgeniy Karpov — QA iterations and staging-review verification
  • Anton Hersun, — project lead (estimation, agency-side communication, sign-off)

Agency-side project management and client-facing communication remained with the partner agency throughout. Our team was invisible to the end client.

For agencies commissioning a white-label WordPress build

This engagement pattern fits agencies that deliver custom-design builds with a pre-costed sitemap — where each page has an agreed hour budget and the dev team is expected to absorb scope additions within the quoted total. If that is how you brief, send the sitemap and design source. We will price each row and flag any that carry hidden reconciliation work before you commit the hours.

Request a spec review →

Don't have a spec yet? Send a one-paragraph description — we'll come back with the questions worth asking. Send a description →


xaver.pro · 2026 · Case #30 White-label · Partner agency not named
Scroll to Top