38-Page Dental WordPress Build in 40 Days — White-Label Delivery for a US Marketing Agency
A 38-page dental WordPress build delivered in 40 days against a custom design — 57 hours, 68 redirects reconciled, 45 issues closed, no overrun.
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 →
Build the URLs across the agency's templates, wire the conversion primitive, then work the QA backlogs to closure.
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.
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 (xaverPRO 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 |
| Launch checklist | 49 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). Every page took its layout from the design row assigned to it in the sitemap, and nothing was assembled freehand outside that design system.
2. Spec followed line-for-line, within the hours we scoped. We scoped all 38 sitemap rows in hours ourselves before the build and coded to those figures. Where the Homepage carried 22 hours and a standard service page 0.2–0.8, that was our budget for the row, and the aggregate came in at the agreed 57 hours for the project.
The reasoning here is straightforward: once the sitemap is scoped row by row, that scope stands in for the contract. The developer’s remit is to ship within each row’s hour budget, not to relitigate the price one page at a time.
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 49-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 of 45 closed as Completed; 5 To Do |
| Account Manager QA backlog | Closed as resolved — tracked in a separate staging-review document and worked to agency acceptance |
| Launch checklist | 49 items signed off |
| Timeline | 40 days (20 Jan – 2 Mar 2025), on schedule |
| Effort | 57h / 57h estimate — no overrun, no scope creep |
| Site status | Live at https://www.sanjosedentist.com/ — verified April 2026. |
What it came to: 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 approach for the categories and the no-fail check. Once it was in their hands, the agency went over the site a second time on its own tooling, logging findings into the shared backlog for us to clear up to sign-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 | 49-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, xaverPRO — project lead (estimation, agency-side communication, sign-off)
Agency-side project management and client-facing communication remained with the partner agency throughout. Every email, status update, and sign-off Center for Advanced Dentistry received came under the agency’s name; the practice worked entirely with the agency and never knew a separate dev team had built the site.
For agencies commissioning a white-label WordPress build
On a multi-location dental build, the service and location taxonomy sets the URL structure, the schema graph, and the local rankings the agency delivers. For this practice — single-specialty with two locations; for others — a multi-specialty network with a shared patient intake funnel. The taxonomy is brittle: a new service line in month seven won’t fit the URL pattern, location schema drops from provider pages, and the patient filter breaks.
The question before committing is not “can you build service pages?” — it is “how exactly will you structure the taxonomy so the next specialty and location fit without a rebuild?”
Send us a current build workbook, a draft sitemap, or your design files. We will audit the URL taxonomy against your ranking inventory, flag the schema gaps that will cost you local pack positions, and return a fixed-hours quote. Free review, fixed quote in hours.
Don't have a spec yet? Send a one-paragraph description — we'll come back with the questions worth asking. Send a description →