Taylor Croonquist and Camille Holden teach people PowerPoint, and Google knows it: 47.5 million search impressions over sixteen months, with 960 of their top 1,000 queries ranking on page one. Almost nobody clicked. The blended click rate was 0.35%. I rebuilt the site on Next.js and Supabase, and within a month a domain that had never recorded a single "good" URL in Google's field data hit 180 of 180 on desktop. Clicks are still down year over year, and I will get to that, because it is the more interesting half.
Twelve years of sediment
The site had been online since May 2014. Twelve years of plugins stacked on plugins, which is what WordPress does if you let it run.
I asked Camille to inventory the main site. She sent back sixteen plugins. Three of the entries read like this:
"Elementor Pro - additional features (I forget what exactly we needed this for...)"
The other two said "not sure." That is not a complaint, which is what makes it useful. A co-founder cannot say what three of her own plugins do, and that is normal, and it is what twelve years of sediment looks like from the inside.
Underneath, things were quietly broken. The XML sitemap had returned "couldn't fetch" to Google since March 2020. Six years, and nobody was looking, because nothing visibly failed. The server took 2.7 seconds to begin answering a mobile request. Google's Core Web Vitals report showed zero good URLs on either device across the entire history of the property.
The work of publishing was worse than the infrastructure. Taylor described the image markups in his tutorials as the thing that always takes him forever. Camille was more specific when I asked what she would change:
"The worst part of WordPress is definitely the image management system and the conflicting formatting."
She also told me they very rarely go back and update published articles. That is the real cost. The friction had trained two people who publish for a living to stop touching what they had published.
What I built
Next.js on the App Router, Supabase for data, Vercel for hosting. A custom CMS I called Grand Central, built on TipTap, that replaces the editing stack rather than sitting on top of it. Popups, countdown timers, opt-in forms, cookie consent, tutorial CTAs, redirects, and page duplication got rebuilt as site features instead of separate subscriptions. ActiveCampaign, Google Calendar booking, and Google Tag Manager connect through their APIs.
Deposit landed April 6. The site went live July 3. I had quoted three to four weeks, so it took longer than I said it would. Taylor's response was to text me mid-slip and prepay the next phase.
Migration was its own job. 169 tutorials came across, and 154 arrived without a featured image, so sharing those pages produced a blank card. The old fallback image was a dead link. I set all 154 and wrote alt text for each, plus 461 site-wide images that had none.
The numbers
Speed first, measured on real users through Chrome's field data, not a lab score:
| Measure | Before (Jul 3, 2026) | After (Aug 3, 2026) |
|---|---|---|
| Mobile time to first byte | 2.7s | 0.8s |
| Mobile largest contentful paint | 4.8s | 2.9s |
| Mobile interaction latency | 215ms | 88ms |
| Desktop Core Web Vitals | Failed | Passed |
| "Good" URLs, desktop (Search Console) | 0 | 180 of 180 |
| "Poor" URLs, mobile (Search Console) | ~190 | 0 |
Zero poor mobile URLs is a first for this domain, as is desktop passing outright. All of it comes from Google Search Console and PageSpeed Insights origin data, captured weekly from launch through August 3.
Now the half that does not flatter me. Same week, one year apart:
| Measure | Aug 2025 | Aug 2026 |
|---|---|---|
| Impressions | 551,048 | 566,743 |
| Average position | 11.0 | 8.0 |
| Clicks | 2,355 | 1,264 |
| Click rate | 0.43% | 0.22% |
The same number of people see the site. It ranks three spots higher. Half as many click.
About 22% of those impressions now happen inside Google's AI Overviews, and Google reports zero clicks on them. Strip those out and the click rate is 0.29% against a 0.41% pre-rebuild baseline. So AI answering how-to questions on the results page explains a chunk of the drop, and not all of it. Every site publishing how-to content is living through this. Weekly clicks bottomed out near 1,020 in mid-July and have climbed since, still under the roughly 2,200 before the move.
I report that number to Taylor and Camille every Monday. It would be strange to hide it here.
What actually changed
Taylor, on the launch call:
"I'm already glad I left WordPress."
He also said he had not been excited to make a blog post in forever. Two weeks later Camille was running a 168-article SEO update program off a spreadsheet, by herself, without asking me anything. She is the one who told me they very rarely go back and update published articles.
It was not frictionless. Taylor got stuck on the draft-versus-published edit flow eleven days in, and Camille hit a timeout on the image generator. Both were bugs, both fixed the same day.
If you own a service business
The lesson is not "get off WordPress." It is that the compounding cost of a platform stays invisible until you measure it. Nobody knew the sitemap had been dead six years, because nothing looked wrong. Nobody had priced the fact that publishing hurt, because you cannot see the tutorials that never got written.
Two things worth checking this week. Open Google Search Console and look at Core Web Vitals and your sitemap status. Five minutes, free. Then ask whoever publishes your content what the worst part of their week is. That answer is usually a number, and usually a big one.
And reach is not revenue. Ranking was never the problem here. The gap between showing up and getting clicked is where the money was sitting, and AI Overviews are widening that gap for everyone who publishes how-to content. Speed and structure are table stakes now. The next fight is giving someone a reason to click when Google already answered their question.
If you are staring at a platform that has quietly become the thing slowing you down, that is the conversation I have all day. Work with me.




