12x organic traffic for an exterior home services company
All Seasons Cleaning Services runs roughly 28 service lines across 23 cities in Washington and Oregon, from roof and gutter cleaning through pressure washing, tree work, hardscape, and painting. I ran their marketing and their engineering: the site, the ad accounts, the tracking, and the automation underneath all of it. Here is what actually moved.
Results at a glance

Where it started
The business was already running and already had a website. That is worth saying plainly, because it changes what this is: not a company built from nothing, but one whose marketing was underperforming what the business could actually handle.
The site was on Webflow. It looked fine. It was slow to extend, the parts that matter for search sat behind the platform's abstractions, and it was not bringing in meaningful organic traffic. Roughly ten Zapier automations held the operational side together, which worked until any one of them needed to do something Zapier could not.
What I changed
Migrated Webflow to Next.js. Not for its own sake. Moving off the builder is what made everything after it possible: control over page structure and markup, pages that could be generated rather than hand-built, and speed that no longer degraded as the site grew.
Rebuilt the site around what people actually search. The old structure described the company. The new one answered queries: separate pages for separate services and separate areas, written for the way a homeowner phrases the problem rather than the way the trade names the service.
At the scale the business actually operates. This is a company with roughly 28 service lines working 23 cities. A single page cannot compete for "moss removal Camas" and "paver patio Lake Oswego" and "gutter cleaning Beaverton" at the same time. Building the structure that could is most of where that growth came from, and it is the same argument behind every service and service-area page I build for anyone else.
Wired tracking through to the job. CallRail on the calls, tracking on the forms, and both connected through to Jobber, so a booked job could be traced back to the campaign and the search that produced it. That is what turned "how many clicks did we get" into "which campaigns paid for themselves," and it is why the roughly $50 cost per lead is a number rather than a guess.
Replaced ten Zapier automations with 199 in n8n. Lead routing, CRM syncing, follow-up, review requests, and reporting, running without anyone remembering to run them. The count is not the point; what mattered was that operations stopped being the thing that capped how much work the business could take.
What happened
Organic search traffic grew 12x between August 2024 and March 2026, the window charted below. Same business, same services, same city, same crews. Over the same window the site went from ranking for 27 keywords to 2,262, which is 84x and is the number that explains the traffic rather than restating it.
Being straight about what that figure is: it is a growth rate from a modest starting point, not a claim that a regional cleaning company started pulling national traffic. For a business selling into one metro, the rate is the part that matters, because it is the difference between a site that produces work and a site that just exists. Traffic has also moved around since, the way it does for any seasonal trade.
The paid side ran alongside it at roughly $50 per lead, on Google Ads and Microsoft Ads, with every call attributed back to the campaign that created it.
Search growth, Aug 2024 to Mar 2026
Hover or focus either panel to read a month. Both panels move together.
Organic traffic
12x since Aug 2024Organic keywords
84x since Aug 2024View the numbersHide the numbers
| Month | Organic traffic | Organic keywords |
|---|---|---|
| Aug 2024 | 119 | 27 |
| Sep 2024 | 148 | 29 |
| Oct 2024 | 185 | 33 |
| Nov 2024 | 148 | 60 |
| Dec 2024 | 236 | 95 |
| Jan 2025 | 214 | 101 |
| Feb 2025 | 223 | 118 |
| Mar 2025 | 294 | 143 |
| Apr 2025 | 277 | 166 |
| May 2025 | 396 | 180 |
| Jun 2025 | 288 | 184 |
| Jul 2025 | 410 | 180 |
| Aug 2025 | 269 | 220 |
| Sep 2025 | 320 | 310 |
| Oct 2025 | 636 | 327 |
| Nov 2025 | 426 | 426 |
| Dec 2025 | 1,108 | 713 |
| Jan 2026 | 1,303 | 1,279 |
| Feb 2026 | 1,292 | 1,710 |
| Mar 2026 | 1,419 | 2,262 |
The same system, for your business
This is the work I do: the build, the search work, the ads, and the automation holding it together. None of it is specific to roof cleaning. All Seasons sold about 28 services at once, so the same structure had to carry pressure washing, tree work, hardscape and painting alongside the roofing and gutter work. It works the same way for any local service business whose customers find them by searching. The trade changes what you rank for, not how any of this gets built.