Skip to content

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.

(971) 258-0257

Results at a glance

12xgrowth in organic search traffic
19months from the baseline to the end of the charted window
199automated workflows, up from about 10
$50typical cost per lead from paid search
Home page of the All Seasons Cleaning Services website after the rebuild
The site as it runs today. Roughly 28 service lines across 23 cities, generated from one structure rather than hand-built page by page.

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 2024
1,419Mar 2026

Organic keywords

84x since Aug 2024
2,262Mar 2026

View the numbers
MonthOrganic trafficOrganic keywords
Aug 202411927
Sep 202414829
Oct 202418533
Nov 202414860
Dec 202423695
Jan 2025214101
Feb 2025223118
Mar 2025294143
Apr 2025277166
May 2025396180
Jun 2025288184
Jul 2025410180
Aug 2025269220
Sep 2025320310
Oct 2025636327
Nov 2025426426
Dec 20251,108713
Jan 20261,3031,279
Feb 20261,2921,710
Mar 20261,4192,262
This charts the ramp, August 2024 through March 2026, and stops at the peak rather than running to today: traffic fell back over the summer that followed, the way it does for a trade that sells roof and gutter work. The dashed line in each panel holds the August 2024 starting value across the chart. Source: Semrush Domain Overview for seasonscleaningservices.com, worldwide, pulled July 31 2026, taking the median of each month's daily readings so a one-week estimator spike can't stand in for a month. These are a third-party tool's estimates rather than analytics sessions, which is exactly what makes them something you can go and check.

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.

Visit the site

Book a call

Tell me what's not working and you'll get a reply within one business day.

How should I get back to you?