Work / Rebuild / Pediatric Dental Rebuild — Canonical, Portland

Pediatric Dental Rebuild — Canonical, Portland

Pediatric dental site rebuilt to agency spec in Portland — 26 hours, trailing-slash canonicalization enforced, blog subdirectory preserved, GTM integrated.

Industry Healthcare (Pediatric Dentistry)
Engagement White-label · US marketing agency
Delivered 8 calendar days · on schedule
26h across 8 days
pinetreepediatricdentistry.com · desktop
pinetreepediatricdentistry.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

Rebuild the site on a new stack. Implement the spec. Don't improvise. Hand it back ready for cutover.

Client (end user): Pine Tree Pediatric Dentistry — solo-pediatric dental practice, Portland, OR
Engagement: White-label development for a US marketing agency
Delivered: January–February 2025 · core build ~8 days · 26 hours · on schedule, no overrun

The Craft of a Rebuild

A solo-pediatric dental site in Portland rebuilt from a single Issues-Backlog spreadsheet — no separate sitemap — where the gating requirement was URL canonicalization, not page structure. Every page had to enforce a trailing-slash redirect, and the practice blog, housed under /portland-pediatric-dental-blog/, had to preserve its three-segment path. Without both disciplines, search engines would index duplicate versions of every URL and returning parents would land on broken paths.

This case study is a record of one such rebuild — a solo-pediatric dental practice in Portland, OR — in which the agency owned the strategy and we owned the execution.

Snapshot

Field Value
End-client industry Healthcare — Pediatric Dentistry
End-client Pine Tree Pediatric Dentistry (solo-pediatric dental practice, Portland, OR)
Engagement White-label WordPress build for a US marketing agency specialising in local-business websites
Project Type WordPress rebuild on WP Engine
Scope Full site rebuild — pediatric dental services, patient resources, blog, contact forms, GTM integration
Timeline ~8 days core build (Jan 23–30, 2025); backlog fixes resolved through Feb 27, 2025
Effort 26 hours against estimate — no overrun
Team 3 specialists (~20h dev · 4h QA · 2h PM)
Tech Stack WordPress · Elementor Pro · Gravity Forms · WP Engine · Yoast · Header Footer Code Manager · Site Checker ( QA plugin)
Content parity check Original-vs-rebuild content diff cleared before handoff — no missing copy, no broken internal links, no structural drift
Delivered Full site rebuilt to spec; trailing-slash canonical redirect applied site-wide; blog subdirectory paths preserved; GTM integration deployed via Header Footer Code Manager; all backlog items closed before agency sign-off
Review rounds ≈4 review rounds across the 8-day calendar window
Per-ticket effort 5 internal Redmine tickets · median 26h / P75 26h per ticket

The Brief

A US marketing agency retained by Pine Tree Pediatric Dentistry — a solo-pediatric dental practice in Portland, OR — brought us in to rebuild the existing site on Elementor Pro. The practice serves children exclusively, with a single-track service structure covering preventive care, restorative work, sedation dentistry, special-needs pediatric dentistry, post-operative instructions, and first-visit guidance. Unlike pediatric practices that run parallel orthodontics and pediatric dentistry ladders, this practice operates a single patient journey — the parent books an appointment for their child, navigates to one service track, and follows one set of contact forms. That simplicity in service architecture made the technical requirements sharper, not looser: every URL had to behave identically, every internal link had to resolve cleanly, and the tracking infrastructure had to be in place from the first page load after cutover.

The ask was precise. Work from the agency’s spec and Issues Backlog; implement each row as written; stay outside the client-facing loop throughout. The agency’s specification was delivered as a single-spreadsheet Issues Backlog — no separate sitemap, template map, or page inventory accompanied it. The full page structure had to be reconstructed from the backlog issues and chat threads rather than verified against a formal workbook, which was a constraint of how the project was briefed rather than a process choice. The staging environment ran on WP Engine. The risk the agency was hedging against was a set of URL canonicalization failures specific to this rebuild: the practice’s blog posts sat under a three-segment path (/portland-pediatric-dental-blog/), and every URL on the site needed to enforce a trailing-slash redirect — without both disciplines in place, crawlers would index two versions of the same page, and parents navigating older bookmarked links would land on unresolved paths.

Risk context. A solo-pediatric dental site in a local market serves parents who are looking for a dentist for their child — often under time pressure. The site’s URL structure is part of the local-search footprint: a practice blog housed under /portland-pediatric-dental-blog/ has posts that accumulate links and bookmarks over time. A rebuild that migrates the content correctly but allows both example.com/page and example.com/page/ to resolve as separate URLs hands search engines a duplicate-content signal and hands returning visitors an inconsistent experience. The failure is invisible in a staging walk-through — both paths load a page — but present in every crawl after go-live. Resolving this before cutover, not after, was the gating requirement.

How We Did It

1. Template-first build across the pediatric service structure. The site’s service architecture followed the solo-pediatric pattern: a Services Lander feeding individual Service Pages for each clinical offering (preventive dental care, restorative dentistry, sedation dentistry, special-needs pediatric dentistry, post-operative care), alongside the practice’s first-visit and patient-forms pages. Each Service Page carried consistent structure — procedure description, parent-facing guidance, and a contact form routed to the practice. The blog, housed under the practice-specific /portland-pediatric-dental-blog/ subdirectory, was rebuilt with matching path structure to preserve any links in place from prior publications.

2. Trailing-slash canonicalization, applied site-wide. The agency’s spec required that all pages — static and dynamic — be accessible only with a trailing slash, and that all non-slash variants redirect to the canonical slash form. This was enforced through WordPress permalink settings and redirect rules, applied consistently across service pages, blog posts, and the blog archive. The treatment removed the dual-resolution problem before go-live and prevented downstream crawl artifacts.

3. Spec followed line-for-line, from the agency’s sheet. The agency’s Issues Backlog documented every content and functional gap against the original site. Incomplete content blocks — including a sedation-dentistry page missing sections from the original — were rebuilt to match. The post-operative instructions page, which carried a button for a PDF download that was not yet available in the original, was noted and escalated to the agency rather than silently bypassed. Services-page items that arrived without links to individual service pages were surfaced and fixed. No gap was closed by assumption.

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 infer around it.

4. GTM integration via Header Footer Code Manager, confirmed before handoff. The agency required the Google Tag Manager script to be ported from the original production site and installed via the Header Footer Code Manager plugin. The plugin had been provisioned on staging but the GTM script itself had not been wired — a gap that would have gone undetected in a visual QA pass but would have silently broken the practice’s tracking from the first session after cutover. The integration was verified functional before the build went to the agency review queue. We used Header Footer Code Manager over theme-template embedding because it centralises all third-party scripts — changes survive theme updates and the agency can review or modify placements without touching code.

The trailing-slash enforcement and the /portland-pediatric-dental-blog/ path had to be confirmed before handoff — both were invisible to a visual QA pass but would surface in every crawl and every returning parent’s bookmark after cutover. Resolving the duplicate-URL surface before go-live, and catching the staging hostname in the footer link before the agency ever saw it, was what the internal QA round was for.

Results

Metric Outcome
Spec fidelity — service structure Full pediatric service ladder rebuilt to spec; all service pages and patient-resource pages delivered
Spec fidelity — content parity Sedation-dentistry page rebuilt with missing sections restored; all other pages match original structure
Trailing-slash canonicalization Applied site-wide — service pages, blog posts, and blog archive all enforce trailing-slash redirect
Blog subdirectory /portland-pediatric-dental-blog/ path structure preserved in rebuild
GTM integration Google Tag Manager script deployed via Header Footer Code Manager, confirmed before handoff
Services linking Services-page items linked to individual service pages
Timeline Core build ~8 days (Jan 23–30, 2025); all backlog items resolved by Feb 27, 2025
Effort 26 hours against estimate — no overrun, no scope creep
Responsive verification Cross-device QA confirmed across desktop and mobile viewports
Handoff Site delivered on WP Engine staging, ready for DNS cutover on schedule
Site status pinetreepediatricdentistry.com live and returning HTTP 200

The outcome, restated plainly: the agency’s spec was implemented as written across the full pediatric service structure, inside the quoted hours, with all backlog items resolved before sign-off. The site remains live.

Operational Integrity at handoff

The internal link-check run (issue #159) caught a footer button pointing to the staging hostname instead of the live your-first-visit path — a broken URL that would have gone undetected in a visual pass — and the parity diff surfaced that every page resolved both with and without a trailing slash, the duplicate-content signal the agency’s spec was built to prevent; both were fixed before handoff. 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; 26h estimate quoted and agreed
Development ~8 days Full site rebuilt on WP Engine staging; single-track service structure implemented; trailing-slash rules applied
Internal QA & review 2 days Issues Backlog items worked through; services linking, sedation-dentistry content parity, GTM integration addressed
Spec verification 1 day Content parity and URL canonicalization confirmed against spec
Delivery & DNS cutover 1 day Site live on WP Engine, no downtime

Phases overlap (QA ran alongside late development), which is why the calendar timeline is approximately 35 days from project open to final backlog sign-off, while the core build completed in the first 8 days.

Team

Delivery team

  • Evgeniy Karpov — lead developer (full site build, template system, trailing-slash canonicalization)
  • Anna Polunina — backlog QA and services-page linking fix
  • Nikita Tumasevic — QA coordination and issue routing
  • Anton Hersun, — project lead (estimation, agency-side communication, sign-off)

The agency stayed the visible vendor; we stayed invisible to the end client throughout cutover and the post-handoff fix rounds. All decisions on URL structure, redirect strategy, and service-page architecture belonged to the agency; our role was implementation fidelity to the spec they delivered.

For agencies considering a white-label WordPress build

First engagement is a calibration batch — for a solo-practice site of this scope, typically a full rebuild at fixed hours, with QA evidence delivered before handoff. If that pace fits your pipeline, send a current spec or a URL inventory with your hosting choice. We will return a fixed-hours quote within 24 hours — no cost, no obligation to proceed.

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 →


— Pre-handoff QA gate

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.

Core settings verificationpass
Content & SEO surface auditpass
URL structure integritypass
Content-language sanitizationpass
Menus & widgets auditpass
Original-vs-rebuild content diffpass
Multi-resolution screenshot capturepass
xaver.pro · 2026 White-label · Agency not named
Scroll to Top