76-Page Family Dentistry WordPress Build in 130 Days — White-Label Delivery for a US Marketing Agency

A 76-page family dentistry build against a 96-row Screaming Frog crawl — 10 templates, 11 staff profiles, two QA backlogs closed, 57 hours, 130 days.

End client David Eskow, DDS Family Dentistry
Sector Healthcare
Engagement White-label delivery for a US marketing agency specialising in local-business websites
Timeline 130 calendar days
57h across 130 days
www.myolneydentist.com · desktop
www.myolneydentist.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.

The Craft of a Build

76 pages of a new Elementor build for a Maryland family dental practice, delivered against a 96-row Screaming Frog crawl — the live original was VPN-restricted, so the crawl served as the content-fidelity baseline for every page. The agency ran two parallel QA tracks and a 49-item launch checklist, all closed before the site went live on WP Engine.

The 96-row original-site crawl informed the build from the first issue; the two-track QA backlog structure — a separate SEO Issues track and an Account Manager Issues track — ensured both the agency’s technical requirements and its client-facing quality bar were met before the site went live.

Snapshot

Field Value
End-client industry Healthcare (Dental — Family and General Dentistry)
End-client David Eskow, DDS Family Dentistry (Olney, MD)
Engagement White-label WordPress build for a US marketing agency specialising in local-business websites
Project Type WordPress build with Elementor on WP Engine, with original-site crawl baseline and two-track QA
Scope 76 URLs — homepage, about, contact, 4 service landers, 24 service pages, 11 staff profile pages, blog lander, 17 blog posts, 7 blog category pages, 9 default template pages
Timeline 130 days (25 Feb – 5 Jul 2025), delivered on schedule
Effort 56.5 hours against a 57-hour estimate — no overrun
Team 5 specialists (41h dev · 7h content and fixes · 9h PM · 0h separate QA — QA folded into build and fix issues)
Templates 10 reusable templates — the agency’s standard dental library: About Us, Blog, Blog Category, Blog Lander, Contact Us, Default Template, Doctor Page, Homepage, Service Page, Services Lander
Tech Stack WordPress · Elementor · Gravity Forms · WP Engine · Screaming Frog · Site Checker ( QA plugin)
Delivered 76 URLs built across 10 templates, 14/14 Issues Backlog SEO closed as Completed, 14/14 AM Issues Backlog closed as Completed, 49-row launch checklist signed off
Engagement cadence 14 agency-raised issues · all closed by handoff (36-day active span, 2025-05-05 – 2025-06-09)
Review rounds ≈5 review rounds across the 130-day calendar window
Launch checklist 49 items, signed off before cutover

The Brief

A US marketing agency retained by David Eskow, DDS — an established family dental practice in Olney, MD offering cosmetic, preventive, restorative, and specialty services — handed over a Google Sheets workbook with a full URL map, a Screaming Frog crawl of the original site as a baseline tab, a templates catalogue, a launch checklist, and pre-populated QA backlogs. We worked inside the WP Engine setup they already owned, built the pages in Elementor, and routed every form through Gravity Forms. The workbook included an 8-tab structure with a dedicated Original Site Backup (SF) tab — a 96-row Screaming Frog export providing H1 text, meta data, and structural signals for every page on the existing site. The crawl tab was a pragmatic substitute: the original live site was region-restricted during development, meaning our team relied on this export rather than direct browser access as the primary reference for page-level content fidelity.

The ask: build 76 URLs across 10 standard templates, treating the Screaming Frog crawl as a content-fidelity baseline for each page, populate 11 staff profile pages from agency-provided content, migrate 17 blog posts to the new template structure, add agency-sourced content updates across service pages, and work down two separate QA backlogs — a technical SEO backlog and an Account Manager’s client-facing review backlog — until the agency accepted the site. And the whole way through: keep clear of the practice’s own channels, hand any unclear point back to the agency, and never freelance a call on copy, imagery, or how the menus were laid out.

Risk Context. When a family dental practice rebuilds on the same domain with the same URL structure, the risks are subtler than on a migration: there is no redirect map to close, but there is a content baseline to honour. The agency’s QA investment depends on the original pages being rebuilt accurately — correct H1 text, correct meta descriptions, correct service-page copy, correct staff listings. The build that passes a first-pass visual check but has quietly drifted from the Screaming Frog baseline requires the same rework as a build that missed pages entirely. Two parallel QA backlogs — one for the SEO layer, one for the account manager’s client-facing review — mean that both fidelity criteria close before the checklist does.

How We Did It

1. Ten templates, 76 pages, one build pipeline. David Eskow’s pages spread across the agency’s full dental template library: Homepage, About Us, Contact Us, Services Lander (4 pages — cosmetic, preventive, restorative, and specialty dentistry), Service Page (24 individual service pages), Doctor Page (11 staff profile pages covering doctors, hygienists, and support staff), Blog Lander, Blog (17 posts), Blog Category (7 category index pages), and a Default Template (9 supporting pages including patient resources, insurance, payment options, and privacy policy). The sitemap row told us which template each page belonged to, and that’s the template it got — not a single page was assembled by hand off-system.

2. Spec followed line-for-line — with the original-site crawl as content-fidelity baseline. Hours were budgeted row by row in the workbook for the core build issues — 41h on the primary build, 9h on project management, and separately tracked time for the content and fix rounds. Sitting alongside those numbers was an Original Site Backup (SF) tab: a 96-row Screaming Frog export holding the H1 text and meta data for every indexable page the existing site had. We read that tab as the target to hit — a rebuilt page’s H1 and meta description were expected to match the crawl unless the agency said otherwise. We chose to anchor each page against the crawl data rather than rebuilding from workbook descriptions alone — because on a same-domain build without URL migration, the primary risk is content drift that looks correct on visual first pass but surfaces weeks later during the agency’s QA reconciliation.

Put plainly, on a same-domain build the crawl baseline binds us every bit as much as the hours figure does. Build the pages while ignoring the crawl and you get a site that photographs well and then fails the agency’s QA on content accuracy.

3. Staff profile corpus — 11 pages built from agency-provided content. The Doctor Page template was the deepest part of the team-roster build: 11 profiles covering doctors, hygienists, certified dental assistants, and the practice manager. Each profile required custom content supplied by the agency. Mid-engagement, new client images were received and integrated across the live site in a dedicated update task, requiring the homepage and several profile pages to be revisited after the initial QA pass.

4. Content updates and staging edits absorbed without schedule slip. Two separate content tasks arrived mid-engagement: a content update round that brought new copy for service pages against a Screaming Frog parity spreadsheet the agency assembled, and a staging-edits round covering minor text adjustments and layout fixes. Both were absorbed as standalone Redmine issues with tracked hours and worked down in parallel with the QA backlogs. The live-fix round — urgent post-launch corrections flagged by the client — was similarly contained and closed before the AM Issues Backlog was finalized.

5. Two-track QA, both closed before handoff. Issues were tracked in two separate agency-side backlog tabs: the Issues Backlog SEO (14 rows, all Completed before handoff) and the AM Issues Backlog (14 rows, all Completed before handoff). We signed off the 49-row launch checklist — covering Design (browser compatibility, favicon, images and videos), Functionality (broken links, navigation, forms, social media), and Content (page migration, meta, structured data, sitemap) columns — across both Pre-Migration and Post-Migration phases before the production go-live.

The 96-row Screaming Frog crawl was the fixed reference that held both QA tracks together. The original site was VPN-restricted during development — the crawl tab was the only reliable fidelity reference per page — so anchoring H1 text and meta descriptions to its output before either backlog opened meant both the SEO track and the AM track were reviewing against the same baseline, not against what the page happened to look like.

Results

Metric Outcome
URLs built 76 across 10 templates (1 Homepage · 1 About Us · 1 Contact Us · 4 Services Landers · 24 Service Pages · 11 Doctor Pages · 1 Blog Lander · 17 Blog Posts · 7 Blog Category Pages · 9 Default Template pages)
Templates applied 10 / 10 from the agency’s standard dental library
Issues Backlog SEO 14 / 14 closed as Completed
AM Issues Backlog 14 / 14 closed as Completed
Launch checklist 49-row checklist signed off across Design / Functionality / Content, Pre-Migration and Post-Migration phases
Content fidelity Original-site 96-row Screaming Frog crawl used as H1 and meta baseline throughout build
Timeline 130 days (25 Feb – 5 Jul 2025), on schedule
Effort 56.5h / 57h estimate — no overrun, no scope creep
Site status Live on WP Engine at https://www.myolneydentist.com/ — verified April 2026.

Operational Integrity at handoff

The QA load on this build ran across two parallel agency-side backlogs — 14 Issues Backlog SEO rows and 14 AM Issues Backlog rows — plus a 49-item launch checklist covering Design, Functionality, and Content across both Pre-Migration and Post-Migration phases. All three closed to zero before the site went live on WP Engine. Before any of that reached the agency, the build went through Site Checker on our side — how we run QA sets out the categories and the standard we keep: nothing leaves with a finding still open. Once it was in the agency’s hands, they ran their own review and logged findings into the shared backlog, which our fix loop cleared until sign-off.

Process

Phase Duration Outcome
Brief & estimation ~1 week Workbook reviewed, original-site crawl assessed, row-level hours confirmed, 57h quoted and agreed
Build phase (pages + templates) ~3 weeks All 76 URLs built across 10 templates on staging; both QA backlogs opened
Content updates + staging edits ~4 weeks (in parallel with QA) Service-page content received and integrated; staging edit rounds; new client images integrated across live site
QA reconciliation (SEO + AM backlogs) ~7 weeks Both backlogs worked down in parallel; live-fix round closed; AM review accepted
Launch checklist + delivery Final week 49-row checklist signed off; production go-live on WP Engine

The phases ran into one another: content updates and the live-fix round landed while both QA backlogs were still open. That overlap is why the calendar reads 130 days and not the figure you’d get by adding the phases up.

Team

Delivery team

  • Nikita Tumasevic — lead developer across build, content integration, and fix phases
  • Pavel Sazhin — project management and QA iterations
  • Anna Polunina — developer support on content updates, staging edits, and QA rounds
  • Evgeniy Karpov — developer support on live-fix round and image updates
  • Anton Hersun, — project lead (estimation, agency-side communication, sign-off)

Project management and every word that went to the client stayed on the agency’s side from start to finish. When the practice took delivery, it was the agency’s name on the work; our build team was nowhere in the handoff.

For agencies commissioning a white-label WordPress build

On a dental group build, the service-and-provider taxonomy defines more than navigation — it sets the URL architecture and the schema graph the agency’s reporting relies on. For this practice — a single-location general practice. For others — a DSO network consolidating multiple legacy brands under one domain. The risks are quiet ones. A new specialty line in month six won’t fit the URL pattern. Provider filter pages drop out of index after migration. The schema markup your audit dashboards depend on gets silently stripped on import.

The question to ask a dev partner before committing is not “can you build the pages?” — it is “how exactly will you build the taxonomy so the next specialty line fits without a migration?”

Send us a current build workbook, a draft sitemap, or your design files. We will trace the URL plan against your ranking inventory, map the spots that break when a new specialty line enters, and return a fixed-hours quote. Free review, fixed quote in 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 →

Curious if your engagement fits this pattern?

Scroll to Top