82-URL Dental WordPress Rebuild
A Webflow-to-WordPress dental rebuild — 82 URLs, 15 templates, 89 hours, 17 days. 59 path redirects, 27 QA items closed for a Pittsburgh practice.
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): South Hills Dental Arts — multi-location general, cosmetic & restorative dentistry, Pittsburgh, PA
Engagement: White-label development for a US marketing agency
Delivered: May 2025 · 17 days · 89 hours · on schedule, no overrun
The Craft of a Rebuild
82 URLs across 15 Elementor Pro templates, rebuilt from Webflow to WordPress for a multi-location Pittsburgh dental practice — 59 path changes redirected, 27 SEO QA items closed before handoff. The agency supplied the sitemap, the redirect map, and a per-URL hours budget; we supplied the cross-platform execution, the crawl-based verification, and the spec discipline. Delivered in 17 days at 89 hours, no overrun.
This case study is a record of one such rebuild, in which the agency owned the strategy and we owned the execution. It also records something rebuilds at this scale tend to surface: an engagement does not always end at cutover. After the site shipped, the agency retained us through six further rounds of post-launch refinement. The discipline of the build is what made that retention possible.
Snapshot
| Field | Value |
|---|---|
| End-client industry | Healthcare — General, Cosmetic & Restorative Dentistry |
| End-client | South Hills Dental Arts (multi-location practice across Pittsburgh’s South Hills: McMurray · Sewickley · Upper St. Clair) |
| Engagement | White-label WordPress build for a US marketing agency specialising in local-business websites |
| Project Type | Webflow → WordPress rebuild on WP Engine, Elementor Pro page-builder |
| Scope | The whole site — 15 templates spanning homepage, services, multi-location, 40-person Meet Our Team, blog, smile gallery, careers |
| Timeline | 17 days (29 Apr – 15 May 2025), on schedule for the rebuild delivery |
| Effort | 89 hours against an 89-hour estimate — no overrun on the rebuild phase |
| Team | 6 specialists (69h dev · 10h QA · 10h PM on the rebuild; further 24h across retained refinement rounds) |
| Tech Stack | WordPress · Elementor Pro · WP Engine · Screaming Frog · Header Footer Code Manager · 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 — 82 URLs migrated, 59 path changes redirected, 15 templates built, 27 SEO QA items closed before sign-off |
| Retained engagement | Six further refinement rounds across the next six months — homepage redesign, design-issue updates, menu restoration, template audit — each delivered in additive sprints inside the same agency relationship |
| Engagement cadence | 27 agency-raised issues · all closed by handoff (19-day active span, 2025-05-18 – 2025-06-05) |
| Review rounds | ≈9 review rounds |
| Per-ticket effort | 15 internal Redmine tickets · median 5h / P75 10h per ticket |
| Launch checklist | 38 items, signed off before cutover |
The Brief
The agency had a retained dental-practice client whose existing site was on Webflow and whose business had outgrown it: a multi-location practice across three Pittsburgh neighbourhoods, a forty-person Meet Our Team gallery, ten service pages, and a blog. The existing URL structure had been audited and a Google Sheets workbook prepared: every URL to migrate, every path change to redirect, the new template each URL belonged to, the meta titles to preserve, a launch checklist with pre- and post-migration columns, and an Hours Estimated value for each row so the build cost could be agreed line by line.
The ask was specific. Take the workbook as given; rebuild the site on Elementor Pro behind WP Engine; keep the URL story intact across the move from Webflow to WordPress; hand the site back ready for cutover. Remain outside the client-facing loop. Implement the SEO decisions as written. Deliver inside the quoted hours.
The risk here was structural, not just procedural. A multi-location practice with forty team-member bios and a cross-platform CMS migration has far more surface area for drift than a single-doctor, WordPress-to-WordPress rebuild. A path-change on one location page maps to a specific redirect in the workbook — if the redirect is omitted or the destination path is slightly wrong, the 301 the agency specified becomes a 404 the end client discovers. A bio page missing from the team template is a visible gap to a patient or a referral. The spec was dense; the tolerance for improvisation was zero.
Risk context. A cross-platform migration — Webflow to WordPress — carries a category of risk that a same-CMS rebuild does not: the two platforms handle URL structure, redirect chains, and internal-link resolution differently at the server level. The agency had mapped every path change and every redirect in the workbook. Our job was not to question the map; it was to ensure that when DNS cut over, every entry on the map resolved exactly as specified, with no redirect loops, no chain collisions, no trailing-slash duplicates left from the Webflow origin. The failure mode is not a crashed site — it is a subtly broken one that passes a casual review and surfaces in a crawl six weeks later.
How We Did It
1. Template-first build. Rather than rebuilding 82 URLs one by one, we collapsed them into 15 reusable templates and fit every URL into them:
- Homepage, About Us, Contact Us, and a Default fallback
- Services Lander + a single Service Page template powering 10 services (restorative, emergency, cosmetic Botox, clear aligners, implants, full-mouth reconstruction, gum recession, sedation, TMJ, veneers)
- Location Page template — a multi-location-specific layout powering three Pittsburgh-South-Hills locations
- Meet The Team template — the high-volume bio template carrying 40 individual team-member URLs
- Blog Lander + Blog templates carrying 17 posts
- Smile Gallery — the dental-specific before/after layout
- Careers, Privacy Policy, Sitemap, Doctor Page — first-class templates rather than Default-Template variants
Fifteen templates, whole site delivered. Future edits on the agency’s side live in one place per page type — particularly the team and location templates, where consistency across forty bios and three locations is the discipline.
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 to preserve, every template assignment, an Hours Estimated value per URL, a Settings tab with site URLs and sitemap reference, and a 6-category launch checklist. We implemented each row as written. Where the sheet had a value, that value landed on the new site. Where it didn’t — five team-member URLs that had been deprecated and were absent from the sheet — we flagged it back to the agency rather than improvising. No “creative interpretations” shipped.
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.
3. Crawl-based verification, not “looks fine to me”. Before DNS cutover, the launch checklist required a Screaming Frog crawl of the original Webflow site against the staging WordPress build. After cutover, a second post-migration crawl was filed back into the workbook as its own tab — 85 URLs scanned, 80 returning HTTP 200, three intentional 301 redirects, two 404s reconciled to known causes (a single legacy typo URL and one out-of-scope service page). Status codes, redirect chains, and meta-title differences were each accounted for against the spec. Internal-link cleanup followed: a www / non-www redirect chain corrected from a 307 + 301 hop to a single 301, a trailing-slash duplication issue resolved at the server level, a category-redirect remnant from Webflow removed.
4. 27 SEO QA items, all closed before handoff. The agency’s Issues Backlog tab began at 27 line items found during their staging review — H1 wording mismatches, a broken video on a blog post, layout width corrections at 1024 px and 1280 px, slider height behaviour on mobile, missing team members on /meet-our-team, and several Pittsburgh-specific SEO items. Nine items at High priority, eighteen at Medium, every single item closed and Completed before sign-off. Cross-device QA on Chrome / Firefox / Safari / Edge and four viewports (1920 / 1280 / 1024 / mobile portrait). The launch checklist itself ran across six pre-migration categories plus a 9-step Domain & DNS migration sub-checklist for the WP Engine cutover.
The discipline that held the 17-day sprint together was the crawl gate — not a visual review, but a Screaming Frog crawl of the Webflow origin before cutover and a second crawl of the live WordPress build filed back into the agency’s workbook after. That sequence was how 59 redirect chains and a trailing-slash duplication were verified as clean before sign-off, not discovered in a crawl six weeks later.
Results
| Metric | Outcome |
|---|---|
| Spec fidelity — URLs migrated | 82 / 82 URLs migrated from Webflow to WordPress, as specified |
| Spec fidelity — path changes redirected | 59 / 59 URL path changes implemented as 301 redirects |
| Spec fidelity — templates | 15 / 15 templates built and applied site-wide |
| SEO QA backlog | 27 / 27 items closed, status Completed (9 High, 18 Medium) |
| Post-migration crawl | 80 / 85 URLs at HTTP 200 on the live domain; 3 intentional 301s; 2 reconciled 404s (legacy typo + out-of-scope service) |
| Timeline (rebuild phase) | 17 days, delivered on schedule |
| Effort (rebuild phase) | 89h / 89h estimate — no overrun on the rebuild |
| Responsive verification | Slider + layout-width issues found at 1024 / 1280 / mobile resolved before sign-off |
| Internal QA | All 27 agency-scoped backlog items closed before handoff; AM-side backlog tab empty |
| Handoff | Site live on WP Engine on the scheduled cutover day, no downtime |
| Retained engagement | Six further refinement rounds across the next six months — homepage redesign, design-issue updates, menu restoration, template audit — 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, on the scheduled cutover day. The relationship continued because the build held its shape under post-launch attention, not because it was patched into shape after the fact.
Operational Integrity at handoff
Pre-handoff QA ran the parity diff before the agency saw staging — catching a missing space in the rebuilt H1 (‘Your Trusted LocalDentist’ vs the original ‘Your Trusted Local Dentist’), a global trailing-slash duplicate-URL issue that made every page accessible at two addresses, and a 307 redirect on the non-www root that should have been a single 301. 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 | 6 days | Workbook reviewed; per-URL Hours Estimated reconciled into a single 89h commitment |
| Development | ~10 days | 82 URLs rebuilt across 15 templates on WP Engine staging |
| Internal QA & review | 3 days | 27 SEO backlog items logged by the agency; all closed |
| Spec verification | 1 day | Pre- and post-migration Screaming Frog crawls; redirect-chain and trailing-slash corrections |
| Delivery & DNS cutover | 1 day | Site live on WP Engine, no downtime; post-migration crawl filed back to the workbook |
Phases overlap (QA ran alongside late development), which is why the calendar timeline is 17 days rather than the sum of individual phases.
Team
Delivery team
- Nikita Tumasevic — lead developer (full site build and template system)
- Lyudmila Travkina — developer (homepage and high-volume template work, retained refinements)
- Timur Arbaev — developer (homepage iteration and template audit, retained refinements)
- Pavel Sazhin — QA and post-launch fix implementation
- Anna Polunina — project coordination, scope confirmation against the workbook
- 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 remained invisible to the end client across the initial cutover and every retained refinement round that followed. Every decision about URL structure, redirect targets, and migration sequencing belonged to the agency — we implemented those decisions exactly as specified.
For agencies considering a white-label WordPress build
If you’ve commissioned a dev team to handle a CMS migration before and found the redirect map half-implemented at handoff, the inverse is the spec-first read: every workbook row confirmed before build starts, every path change verified by crawl before DNS cuts over. Send a current migration spec or a Webflow export with a redirect map — we will flag the rows most likely to break at cutover and return a fixed-hours quote. No cost. No obligation to proceed.
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.