Case Study // Visibility Practice

Three Trees Yoga: Fix the Measurement Before the Message

A 90-day audit, analytics build, page rebuild, and photography program for a Federal Way yoga studio. What I found, what I fixed, what I can prove, and what I am deliberately not claiming yet.

Rebuilt 200-hour Teacher Training page for Three Trees Yoga on desktop, showing the headline More Than a Certificate and two calls to action
The rebuilt Teacher Training page, live September 21, 2026.
90Day sprint
Jul 13 – Oct 4, 2026
1Highest-intent page rebuilt
6Faculty portraits, with metadata
75%of recorded GA4 users were bots
210+→0Failed emails per 30 days

The Situation

Three Trees Yoga is a Federal Way, Washington studio. Its 200-hour Teacher Training is the program that drives the most revenue, and the goal for the year was a full February 2027 cohort. When the sprint started on July 13, 2026, the page carrying that enrollment funnel was dated, its hero photo was tied to former ownership, and nobody could say with evidence how people found it or what they did next.

The starting state, in plain terms:

  • No analytics. Google Analytics 4 and Search Console had never been set up.
  • Ads with no feedback loop. The Meta pixel recorded page views only. Ads were running, and there was no way to tie any of them to an application.
  • Email failing quietly. Contact-form and system email was failing at 210+ failed sends in 30 days, so inquiries could vanish without anyone knowing.
  • Neglected plumbing. Out-of-date core software, hosting storage clogged with old backups, uncompressed images, and a site reachable at both www and non-www addresses, which splits search credit.
  • Photography working against the SEO. Marketing photos lived in a booking platform that shrinks every upload.

The job was not to make it prettier. It was to find out what was true, fix what was broken, and build the tracking so that any money spent afterward could be judged on evidence.

The Approach: Five Moves, In This Order

The sequence mattered more than any single task. Each step existed to make the next one trustworthy.

  1. Measure first.GA4 and Search Console went live in week one, with baselines captured before a single change was made. You cannot show improvement against a baseline you never took.
  2. Audit before touching anything.Full backup, then a complete inventory of WordPress, the MindBody booking platform, and the Meta pixel. Findings were logged before fixes began.
  3. Fix what silently loses leads.Email delivery, the duplicate site address, storage, and image weight. None of these are glamorous. All of them cost the studio inquiries or search visibility.
  4. Rebuild from the client’s own research.The studio owner had already run a student survey and built a messaging map and page mockup. The page structure was locked from her material, not mine.
  5. QA the tracking, then build campaign tracking before any spend.Verify that the numbers are right after launch, then wire the apply button to the ad platform so a future campaign can be judged on leads, not clicks.

The Timeline

Jul 13–19
GA4 configured with three key events. Search Console verified, sitemap submitted, both linked. Baselines captured.
Jul 20–26
Full backend audit. Core updates, PHP upgrade, unused plugins removed, storage cleaned, site standardized on www. Email repair begins.
Aug 4–19
Email authentication published with the studio’s IT vendor, sender address corrected, dead popup plugin removed, page structure locked from the client’s own research.
Aug 30 & Sep 6
Two faculty portrait sessions. Six portraits processed and uploaded with SEO filenames and metadata.
Sep 9
Rebuilt page sent to the owner for review.
Sep 21
Teacher Training page live at its existing URL. Search Console recrawl requested.
Sep 22–24
Bot-traffic finding isolated and filtered. Meta Lead event live and verified in Events Manager.
Sep 28–29
Post-launch QA. A duplicate-event bug found and fixed. Speed pass shipped.
Oct 4
Sprint window closes.

Finding One: The Analytics Were Lying

Once GA4 had data, the first reports described a site with a large audience and weak engagement. That picture was wrong.

A traffic-quality check showed that about 75% of recorded GA4 users were automated traffic from Singapore, a market the studio does not serve. Across the full GA4 history, which begins in early July 2026, the real local audience was roughly 900 to 1,000 users. Reports that said “how many people visit your site” were counting machines, and the engagement metrics were being dragged down by visitors who were never going to engage.

What I did

Built a filtered comparison and confirmed the engagement picture changed sharply: 34% engagement unfiltered versus 66% excluding Singapore. Created a saved GA4 audience that excludes the traffic going forward. Confirmed Search Console data was unaffected, so search-performance baselines stayed clean.

The honest limitation: the exclusion is a country filter, which is a blunt tool. The saved audience only collects from the day it was created, so any comparison across the full baseline needs the country filter applied by hand. That caveat is written into the tracker so the next person does not forget it.

Why it matters: every downstream decision, which page to rebuild, whether ads are working, whether a change helped, sits on top of these numbers. If the base is wrong, everything built on it is guesswork with a chart attached.

What I Built and Fixed

Analytics

  • GA4 property with three key events
  • Search Console verified for the canonical www site, sitemap submitted, linked to GA4
  • Client holds her own administrator roles on both
  • Baselines captured before changes

Site Health

  • Full backup before any change
  • WordPress core update and PHP 8.2 → 8.4, tested in preview, with checkout and tracking verified after
  • Unused plugins removed, plus a dead popup plugin that had no recoverable account
  • Storage cleared without a hosting upgrade
  • Site standardized on www with a 301 redirect
  • Retired Universal Analytics tag removed
  • Booking-widget script loads consolidated, fonts and images tuned, video and map load on scroll

Email

  • Website mail connection restored
  • Contact-form subject lines and reply-to fixed
  • Sender address moved off a mailbox that did not exist
  • Email authentication (DKIM) published with the studio’s IT vendor, outdated key removed
  • Authentication reports routed to the owner
  • Changes verified with two independent tools

Teacher Training Page

  • Full rebuild: copy, layout, schedule, pricing presentation, testimonials
  • New hero replacing a photo tied to former ownership
  • “Learn More” button routed to info-session dates
  • Duplicate section, confusing navigation dropdown, and wrong day-of-week references fixed
  • Application form moved from a personal account to a studio-owned one
  • Existing URL kept so the page keeps its search history

Photography

  • Six faculty portraits across two sessions
  • SEO filenames and embedded metadata, retained through optimization
  • Hosted in WordPress, not the booking platform
  • Tap-to-reveal bios that work on desktop and mobile

Campaign Tracking

  • Meta Lead event fires on the page’s apply buttons, verified in Events Manager
  • UTM scheme so every ad and audience can be identified in GA4
  • Campaign plan with audiences, copy, and decision rules agreed before spend

The Page Rebuild: Built From the Client’s Own Words

The owner had already done the research most agencies bill for. She had surveyed past students, written a messaging map, and mocked up the page. Her students kept using the same ideas: community, belonging, all eight limbs of yoga rather than poses alone, and a program that fits a busy schedule. The rebuilt page leads with that language, because it is the language that already worked on the people who enrolled.

The build went to the owner as a draft on September 9, took a round of her revisions (faculty titles, sample schedule, hero, navigation), and went live September 21. The military-spouse funding video (MyCAA) was placed after the pricing section, where that question naturally arises. The rebuilt page was published at the existing address, so years of search history stayed attached to it.

The same Teacher Training page on a phone, showing the headline and two buttons stacked in one column
The same page on mobile, with the calls to action stacked in a single column.

Photography as a Search Asset

The audit turned up a quiet, expensive problem. The studio’s booking platform resizes every uploaded image to 200×200 pixels and does not preserve filenames or metadata. Any SEO work done on photos uploaded there is undone on arrival.

The Teacher Training page’s images lived in WordPress, where they could be controlled. So the six faculty portraits were shot against the studio’s existing ad-graphic style, processed with descriptive filenames and embedded metadata, and uploaded straight to WordPress. The optimizer was configured to compress and serve modern formats while keeping metadata intact, and I confirmed it stayed intact after optimization. In this project the photography was a build input, not decoration.

How I Measured It, and Where Measurement Stops

Google Analytics 4 Pages and screens report showing the first days of recorded data for the Three Trees Yoga website, ending July 9, 2026
GA4’s first recorded days, ending July 9, 2026: 18 views from 13 users, before any fixes. Baselines start here.
WhatHow it was capturedResult so far
Search baselineSearch Console, prior 12 months, before the rebuild346 clicks / 15,609 impressions sitewide. Old Teacher Training page: 38 clicks, 3,166 impressions, average position 22.4. “Yoga teacher training” ranked about 23rd.
Page weightPageSpeed Insights, before and after image optimization22.6 MB → 5.3 MB (−76%) from image optimization on 7/24, before the rebuild.
Page speedThree runs per page and device, median reportedTeacher Training mobile score 37 → 33, with load-blocking scripts as the remaining bottleneck.
Post-launch trafficGA4, bot traffic excluded37 sessions in the first post-launch week (US-only).
ApplicationsStudio-owned Cognito form, counted separately from GA4Baseline recorded before the campaign launches.

A bug I introduced, and caught

On September 28–29, QA showed the Teacher Training page-view event firing twice per visit. An on-page script was duplicating a rule already set up in GA4 during week one. It was introduced during the sprint and caught in QA, the script was removed on September 29, and I verified the event fires once per view. Instrumentation introduces its own errors. The fix is to test after every tag change.

Known measurement limits, stated up front:

  • The booking platform’s schedule runs in a frame GA4 cannot see into. Bookings come from the platform’s own reports, and a schedule-page view serves as a proxy.
  • The Meta Lead event counts a click on an apply button. It is not a submitted application.
  • Internal test visits are excluded from trend comparisons.

What I Learned

  • Audit the dashboard before you trust it. The first analytics read described a site that did not exist.
  • Platforms can silently undo your work. A booking platform’s image handling cancels SEO effort. Find out where an asset lives before you optimize it.
  • Ownership is infrastructure. An application form on a personal account and a theme license nobody could locate are risks the owner could not see.
  • Test every change you ship. My own tag duplicated an event. Only a post-launch QA pass found it.
  • Scope honestly. Deferring the deeper speed fix as its own project was the right call. Squeezing it in would have hidden it.
  • Start from the client’s research. Her survey and mockup shortened the build and kept the page in her students’ voice.

What This Case Study Does Not Claim

The page went live on September 21, so the sprint closed with roughly two weeks of post-launch data. The Meta campaign has not launched. This case study makes no claim about ad results, traffic growth, or enrollment, and it does not say any of this work caused any outcome. It describes what was built and what was measured. I will update it after the first campaign checkpoint, when there is real data to report.

What’s Next

The work continues into Q4 with a campaign for the February cohort. This page will be updated when results exist.

“Russell’s work on our webpage was exactly what was needed to jumpstart our marketing for our next teacher training. For a business owner who likes to know more details than most but also recognizes the value in engaging others with more expertise, Russell was the perfect partner. He explained the work he was doing in a way that I understood it and let me handle tasks that I felt I could, giving me step by step instructions, which also gave me just enough “behind the scenes” to understand the overall process and trust that Russell was putting us on the right path to success. Ultimately, I was able to say, “can you please just handle it” without hesitation, freeing me up to focus on the in person marketing. I am excited to see what results our new webpage brings in the coming months.”

Shawn Harju, owner of Three Trees Yoga— Shawn Harju, Owner, Three Trees Yoga

What This Means for Your Business

Most visibility problems are measurement problems first. If your analytics are unaudited, your ads cannot be judged, and your photography is not working as search infrastructure, you are making decisions on numbers nobody has checked. If that sounds familiar, let’s talk.

> Initiate a Commercial Deployment