portfolio detail
pediatric therapy website design Vancouver
Web Development & SEO

Pediatric Therapy Website & SEO.

Pediatric therapy website design in Vancouver — 780 programmatic location pages, 90 blog posts, bilingual Chinese-English, generating form submissions by day two.

Next.jsHeadless CMSnext-intlTailwind CSSTransactional EmailVercel
Scroll to explore
780

Location Pages

90

Blog Posts

Day 2

Time to First Lead

Pediatric Therapy Website & SEO
(How We Built It)
01

Challenge

A pediatric therapy clinic stuck on WordPress with page-builder content blobs, no bilingual support, and 780 location pages that had zero portability.

02

Approach

Built a custom application with full Chinese/English localization, a headless CMS for content management, and a programmatic page generation system that creates 780 service-location combinations from structured data.

03

Results

The site was generating form submissions within 48 hours of launch. The clinic reported increased reviews. 780 location pages are now indexed and targeting long-tail local searches.

(Screenshots)
Pediatric Therapy Website & SEO screenshot 1
Pediatric Therapy Website & SEO

The full story behind Pediatric Therapy Website & SEO.

(Case Study)
01

The client needed patients, not a prettier website

The client is a Vancouver pediatric therapy clinic specializing in speech therapy, occupational therapy, and specialized services for children. They serve a diverse community — many of their families speak Mandarin as a first language.

Their WordPress site was doing almost nothing for them. The design was fine. The content was adequate. But it was not generating leads. It was not ranking for local searches. And it absolutely was not serving their Chinese-speaking families.

Here is what we inherited: 90 blog posts trapped in WordPress. 780 location pages built with a visual page builder — each one a heavy HTML blob with no clean text, no semantic structure, and no way to extract content programmatically. Team profiles scattered across pages with inconsistent formatting. And zero bilingual infrastructure.

The clinic's founder is a registered autism service provider and occupational therapist. She understood what her families needed: a site they could navigate in their own language, find the right service for their child, and book an appointment without friction. The old site could not do any of that.

02

780 pages, two languages, zero manual entry

The location page challenge was the hardest part of this build.

The clinic offers 52 service types across 15 Vancouver neighbourhoods. That is 780 unique combinations. On WordPress, each one was a manually created page-builder document — brittle, unscalable, and effectively impossible to update at scale.

We replaced all of it with a single content type parameterized by service and neighbourhood. All 780 pages are generated at build time. Each one has a unique title, unique meta description, service-specific content, neighbourhood-level geo schema, and cross-links to related services and locations.

The bilingual system was not an afterthought. Every route, every component, and every piece of metadata renders in both English and Chinese. We extracted the hardcoded English strings from the original codebase and moved them into properly structured translation files. Locale detection and routing are handled at the edge. Hreflang tags ensure Google indexes both language versions without duplicate content issues.

The content migration was the unglamorous half of the project. The source platform did not expose its SEO metadata cleanly, so we recovered titles, descriptions, social tags, and structured data from the rendered pages. Internal links stripped during the initial import were restored by re-parsing the original HTML. Inline blog images the source API failed to return were recovered, re-uploaded, and re-inserted at their original positions.

03

Security, performance, and the details that matter

Healthcare sites carry a higher standard. Parents trust you with information about their children. The site needs to earn that trust at every layer.

We hardened the entire application. A content security policy blocks unauthorized script execution. Encrypted connections are enforced. API routes validate request origin. Form submissions are rate-limited per client, and bot traffic is filtered without adding friction for real users.

Contact and newsletter forms deliver through a first-party transactional email pipeline — no third-party form handlers, no data leaving the controlled path. Every submission generates a formatted email to the clinic with all the context they need to follow up.

We also consolidated the analytics setup, which had accumulated several redundant tracking containers running simultaneously. It came down to one analytics property with clean event tracking.

Performance is where the technical decisions pay off. The site loads in under two seconds. Images serve through a CDN with automatic format negotiation. Static pages are pre-rendered and cached at the edge. There is no WordPress, no PHP, and no database query on every page load.

04

Day two: the forms started coming in

The site launched and the results were immediate.

Within 48 hours, the clinic received form submissions through the new contact system. Not test submissions. Real parents looking for therapy services for their children.

The clinic reported an increase in Google reviews following the launch — the kind of signal that compounds over time as review velocity feeds into local pack rankings.

780 location pages started appearing in Search Console within the first week. Long-tail queries like "speech therapy Kitsilano" and "occupational therapy Surrey" — the exact searches parents in those neighbourhoods are making — now have dedicated, optimized landing pages.

The bilingual capability opened a channel that did not exist before. Chinese-speaking families can now navigate the entire site, understand service offerings, and submit inquiries in a context that feels natural rather than translated-as-an-afterthought.

Team member pages sit at flat root-level URLs, maximizing their authority for name-based searches and reinforcing the clinic's experience and trust signals.

This project moved fast because it had to. The clinic needed patients, not a six-month development timeline. We delivered a production application with 780 pages, bilingual support, hardened security, and a content management system the team can operate independently — and it was generating business within 48 hours.

Want Something Like This?

Every project starts with a conversation. Tell me the problem — I'll show you the system that solves it.