31-URL Dental Rebuild with Blog Path Migration
A 31-URL dental rebuild — 15 templates, 49 hours, 20 days. 12 blog posts migrated, 39-item checklist closed for a Sugar Land, TX family 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): Oasis Dental — Dr. Sagar Amin, DDS, Family Dentistry, Sugar Land, TX
Engagement: White-label development for a US marketing agency
Delivered: April–May 2025 · 20 days · 49 hours · on schedule, no overrun
The Craft of a Rebuild
31 URLs across 15 Elementor Pro templates, built to a Google Sheets spec that moved twelve blog posts from root paths to a /blog/ subdirectory — each old URL requiring a matching 301 redirect. The agency provided the URL map and the redirect list; we provided the per-template execution, the internal QA round, and the migration verification. Delivered in 20 days, 49 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.
Snapshot
| Field | Value |
|---|---|
| End-client industry | Healthcare — Family Dentistry |
| End-client | Oasis Dental (Dr. Sagar Amin, DDS, Sugar Land, TX) |
| Engagement | White-label WordPress rebuild for a US marketing agency specialising in local-business websites |
| Project Type | WordPress rebuild with Elementor Pro on WP Engine |
| Scope | Full site — homepage, about, meet the team, doctor bio, 7 service pages, blog (12 posts migrated to /blog/ path), contact, smile gallery, membership, new patient special, privacy policy |
| Timeline | 20 days (14 Apr – 4 May 2025), on schedule |
| Effort | 49 hours against a 49-hour estimate — no overrun |
| Team | 5 specialists |
| Tech Stack | WordPress · Elementor Pro · WP Engine · Yoast · TrustIndex (review widget) · 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 — 31 URLs across 15 templates, blog URL restructure, 39-item launch checklist |
| Engagement cadence | 13 agency-raised issues · all closed by handoff (16-day active span, 2025-05-01 – 2025-05-16) |
| Review rounds | ≈3 review rounds across the 20-day calendar window |
| Per-ticket effort | 5 internal Redmine tickets · median 14.5h / P75 20h per ticket |
| Launch checklist | 38 items, signed off before cutover |
The Brief
A US marketing agency had a retained dental client — a Sugar Land, TX family practice with a single principal dentist and a multi-service offering (cosmetic, general, implant, preventive, sedation, laser, emergency, and Invisalign) — whose existing WordPress site needed a rebuild on WP Engine. The agency had done the upstream work: a sitemap covering every existing URL and its target path, a template list, meta titles and descriptions for every page, and a launch checklist organised into design, functionality, content, and SEO review categories.
One structural choice in the workbook was more consequential than it first appeared. The practice’s existing blog posts lived at root-level paths (e.g. /expert-tips-for-preventing-cavities/, /how-to-avoid-gum-disease/, and so on). The rebuild spec moved all twelve of them into a /blog/ subdirectory. Each post’s old path needed a corresponding 301 redirect to its new /blog/slug/ destination. The blog lander itself and the /meet-the-doctor/ path were also flagged for URL correction in the spec. The original site’s responsive layout — particularly on mobile and tablet — had accumulated enough spacing and breakpoint degradation that preserving it was not viable; those viewports were rebuilt from scratch to the practice’s brand language rather than ported from the live originals.
Risk context. When a rebuild migrates a blog’s URL structure from root-level slugs to a
/blog/subdirectory, every existing external link, every bookmark, and every indexed path in search engines points to the old root URLs. A redirect that silently misfires — serving a 301 chain that double-hops through the homepage, or missing a trailing-slash normalisation — passes a visual check and shows up only in a crawl or a spike in 404s after launch. The spec covered the full migration list; our job was to close the gap between “spec says redirect” and “server delivers 301 to the correct destination.”
How We Did It
1. Template-first build. Rather than rebuilding 31 URLs one by one, we collapsed them into 15 reusable templates and fit every page into them:
- Homepage — the primary conversion surface, with embedded map, review widget placeholder, and address links
- About Us — practice story and values
- Meet The Team — team grid (URL restructured from a legacy hash-fragment path to the clean
/meet-the-team/) - Doctor Page — principal dentist bio (Dr. Sagar Amin, DDS)
- Services Lander — category entry point
- Service Page — single reusable template powering 7 individual service pages: Cosmetic Dentistry, Emergency Dental Care, General Dentistry, Implant Dentistry, Invisalign, Laser Dentistry, Preventative Dental Care, and Sedation Dentistry
- Blog Lander — archive index (
/blog/) - Blog — individual post template (12 posts, all migrated to
/blog/subdirectory) - Contact Us — contact page with contact form
- Smile Gallery — patient photo gallery (
/gallery/) - Membership page — membership plan overview
- New Patient Special — promotional page
- Privacy Policy — standard legal page
- Default Template — utility pages
Fifteen 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 new path, every meta title and description, every template assignment, and a Settings tab with site and staging URLs. We implemented each row as written. The blog migration in particular required precision: twelve post slugs each gained a /blog/ prefix, and the workbook’s Action column flagged each one as “URL Change.” We implemented the redirects exactly as specified — no interpretation, no re-routing.
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 handoff, we ran Screaming Frog on the staging rebuild. Every URL in the sitemap was checked against its expected status code. The blog migration was checked not just for redirect existence but for destination accuracy — each /old-slug redirect must resolve cleanly to /blog/old-slug, not chain through the homepage or drop to a 404. One post link in the rebuild was surfaced as pointing to a non-existent record during internal review and was corrected before the build was submitted to the agency. A post-handoff crawl confirmed all internal links resolved correctly on the live domain.
4. 39-item launch checklist, closed before handoff. Four categories: Design, Functionality, Content, and SEO & Analytics. Cross-device QA on Chrome, Firefox, Safari, and Edge across six viewports (1920 / 1280 / 1024 / iPad / mobile portrait / mobile landscape). The agency’s QA team ran a parallel review and surfaced a short backlog of additional items — H1 tag correction site-wide, sitemap inclusion of service pages in Rank Math, a Google Maps footer embed, and mobile whitespace — all of which were resolved in the fix round before the site went live.
5. Post-handoff fix round — TrustIndex integration. Following launch, the agency commissioned a single-issue addendum: implementation of a TrustIndex review section on the homepage and the New Patient Special page. The widget was integrated in a separate tracked issue and signed off within a week.
The blog URL migration was the order-setter: the redirect map had to be confirmed before the visual build could close, because a silent redirect failure passes a visual check and only surfaces in a crawl. Running Screaming Frog before handoff — not as a formality but against the full 31-URL spec — was the one verification that closed the gap between “spec says 301” and “server delivers it.”
Results
| Metric | Outcome |
|---|---|
| Spec fidelity — URLs migrated | 31 / 31 pages and posts migrated to specified paths |
| Spec fidelity — blog restructure | 12 blog posts migrated from root-level to /blog/ subdirectory with 301 redirects |
| Spec fidelity — templates | 15 / 15 templates built and applied site-wide |
| Launch checklist | 39 items reviewed and signed off before cutover |
| Agency QA backlog | 13 items tracked and resolved across the shared issues backlog (SEO + AM QA tabs) |
| Timeline | 20 days, delivered on schedule |
| Effort | 49h / 49h estimate — no overrun, no scope creep |
| Responsive verification | Zero layout issues across 4 browsers × 6 viewports |
| Post-launch addendum | TrustIndex review widget integrated on homepage and New Patient Special within 1 week |
| Handoff | Site live on WP Engine on the scheduled cutover day, no downtime |
| Site status | oasisdentaltx.com still live and indexed |
The outcome, restated plainly: the agency’s spec was implemented as written, the blog URL structure was migrated without broken paths, and the engagement closed on schedule inside the quoted hours.
Operational Integrity at handoff
Internal QA on the staging build caught one blog post pointing to a non-existent record during the 12-post root-to-/blog/ migration and flagged it before the build was submitted; the agency’s workbook review then surfaced H1-tag errors across all pages and five URL-path mismatches against the sitemap spec — all marked High priority and closed 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; 49h quoted and agreed |
| Development | ~14 days | Full site rebuilt across 15 templates on WP Engine staging |
| Internal QA & review | 3 days | Blog URL migration checked; agency QA backlog items addressed |
| Spec verification | 1 day | URL redirects reconciled against sheet; crawl confirmed |
| Delivery & DNS cutover | 1 day | Site live on WP Engine, no downtime |
| Post-launch addendum | ~1 week | TrustIndex widget integrated and signed off |
Phases overlap (QA ran alongside late development), which is why the calendar timeline is 20 days rather than the sum of individual phases.
Team
Delivery team
- Nikita Tumasevic — developer (post-launch TrustIndex integration)
- Pavel Sazhin — QA and agency-side communication
- Anna Polunina — implementation support and QA across the rebuilt pages
- Lyudmila Travkina — lead developer (full site build and template system)
- Anton Hersun, xaverPRO — project lead (estimation, sign-off)
The agency remained the visible vendor throughout; our team stayed invisible to the end client. URL architecture decisions — which paths to create, how to redirect blog slugs, which content to carry forward — belonged to the agency. We implemented those decisions exactly as specified.
For agencies considering a white-label WordPress build
If you’ve been burned by a dev partner who treated the redirect map as advisory — rerouting paths, skipping trailing-slash normalisation, or launching before the crawl confirmed — send us the migration spec. We will read it for redirect accuracy risk, flag the cases where “spec says redirect” can quietly fail at cutover, and return a fixed-hours quote within 24 hours. 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.