Southern Shield Windows replaces windows in Cartersville, Georgia and the towns around it. Patrick, who runs it, had forty-five Google reviews at five stars, a ProVia dealership, and a website that was quietly working against him. When we started, he was running Google Ads into a landing page we'd inherited, and the honest reading of the numbers was that the ads were producing almost nothing.
The easy conclusion was that Google Ads doesn't work for window replacement in a market this size. The easy fix was to rewrite the ads, add keywords, and spend more. Neither held up once we looked at where the clicks were going.
What the numbers were actually saying
In August, the campaign sent about fifty clicks to the landing page and got one form fill back. The ad groups were fine. The keywords were fine. The page was not.
Google's own measurement of the site put the mobile paint time — how long before a visitor sees the main content — at over ten seconds. Nearly half the site's visitors were on phones. A page that takes ten seconds to show anything has lost most of the people who paid to get there before they read a word. The landing page's average session length was twenty seconds, and the thank-you page after the form was being reached by fewer than half the people who actually submitted it, because a slow page was failing to redirect before they gave up.
Two more things stood out. First, the site published no price. Window replacement is a category where almost nobody in that corridor says a number, and buyers know it; they expect to sit through a presentation to find out. Second, when we checked rankings, "replacement windows Cartersville" put Patrick second in the map results — but "window replacement Cartersville," same intent, same town, put him nowhere. Google was leaning on his business name. The phrase his customers actually use wasn't on the site in that order.
None of those is an ads problem. All three were being paid for by the ad budget.
What we did instead
Fixed the page before touching the campaign. Render-blocking font loading, images loading eagerly with no lazy-load, oversized files — the usual list, and it took the landing page from a very slow mobile load to a usable one. There is no ad copy that fixes a page nobody sees, so this came first.
Published a price. $1,050 per window, installed, for a standard white ProVia Endure double-hung at standard size, with a plain sentence underneath: that is the number, not a range, not a "starting at," and not something you have to sit through a presentation to hear. Other series available at other price points, and we'll show you those too. Patrick agreed to it because it is how he already sells. Putting it on the page just stopped the website from hiding it.
Then watched. After the page was fast and the price was live, the same campaign produced four leads in the test window — two calls, two forms — including a booked estimate. August, on the slow page with no price, had produced one. Same ads, same budget. The difference was the page.
At that point Patrick made a decision we'd have made with him anyway: turn the ads off for now and put the money into search. Cash flow was the reason, and it was a good one — the campaign was paused rather than deleted, with the evidence of what it does on a working page saved for when he wants it back. He moved to a twelve-month organic plan at about $450 a month less than the ads and management had been costing him.
Built the site the organic plan needed. The site had never had a real header or footer; it got both. Seven pages went live in the first month: a hub for window replacement in Cartersville, a cost page, a ProVia dealer page, and guides on single-hung versus double-hung, replacing wood with vinyl, and the best windows for Georgia heat. Every one of them carries the $1,050 pricing block or links to the page that does, because the number has value beyond the ad campaign — it is the kind of specific, verifiable fact that search engines and AI answers quote. The exact phrase "window replacement" went into every new page, the business profile description, and the services list. That change cost nothing and is probably the highest-leverage item in the plan.
Said no to two things. We did not mark up Patrick's five-star reviews as structured data on his own site, even though a competitor had; self-declared star ratings on your own pages violate Google's guidelines and are a manual action waiting to happen. And we told him in writing that we would not be chasing the map results in Kennesaw or Marietta. Distance is the rule in local search, and content doesn't beat it from a Cartersville address. Acworth is the realistic next town, and the plan says so.
What happened
Month one is early, and we told Patrick that before he signed: for the first three months the honest indicators are pages published, search impressions, keywords entering the top ten, and business-profile actions. Traffic becomes the headline in months four to six. Leads and booked estimates are what the plan gets judged on after that.
Against that frame, the first month did what a first month should. Whole-site search impressions went from 913 to 1,538 against the pre-engagement baseline, clicks ticked up, and eight of the thirty-five tracked keywords sat in the map pack. The seven pages, the navigation, the profile rewrite, and twelve weeks of profile posts all shipped. The landing page's PageSpeed performance score sits at 88 as of October 2026.
The lesson we keep handing to contractors who think their ads failed: before you decide the channel is wrong, find out whether the page was ever really there. A ten-second load and a missing price will make any campaign look broken. Fix those, and the question of ads versus SEO becomes a real choice about cash flow and timing, instead of a verdict on a channel that never got a fair test.