A roofing contractor was paying $345 for every lead, and much of the budget went to people who were never going to replace a roof.
The Client and the Problem
A regional residential roofing contractor wanted more roof replacement jobs from Google Search. Clicks on this account were costing $11.08 each, so every wasted click hurt.
Four things were working against it:
- Money spent on the wrong searches. Broad keyword matching showed their ads for minor shingle repairs, commercial flat roofs and DIY roofing tutorials, none of which become a residential replacement.
- Tracking that could not be trusted. Tag Manager triggers were misconfigured, so form fills, phone calls and real sales opportunities were not being counted correctly, and Google’s bidding was learning from the wrong signals.
- A landing page that lost people. It had no local trust signals, no easy way to get an estimate and a weak mobile experience. Fewer than 5 in every 100 paid visitors asked for an estimate or called.
- A cost per lead of $345.63 that the business could not grow on.
1. Fix the Tracking
We rebuilt the Google Tag Manager setup so that every real lead was counted once: quote forms, click-to-call and inline estimate requests. Then we checked the data inside Google Ads, so automated bidding would chase residential replacement leads instead of casual clicks around the site.
Google Ads now bids on real replacement leads
2. Rebuild the Landing Page
We rebuilt the campaign landing page around what a homeowner needs before asking for an estimate:
- Local trust badges, warranty details, verified reviews and clear financing options
- A simple quote calculator
- A prominent click-to-call button on mobile
Conversion rate doubled, from 4.93% to 9.92%
3. Stop Paying for the Wrong Searches
- Filtered out bad searches: a full search-term audit, then negative keywords that block commercial repair and low-budget queries
- Regrouped the keywords: tight ad groups around searches like “roof replacement estimate” and “asphalt shingle replacement contractor”
- Matched the ads to the search: rewrote the ads to say exactly what each homeowner was looking for, which raised quality scores
Cost per click down 35%, click-through rate up 25.6%
The Results
The month after the changes, compared with the month before, on a lower monthly ad budget:
| Metric | Before | After | Change |
|---|---|---|---|
| Cost per lead | $345.63 | $111.64 | -67.7% |
| Conversion rate | 4.93% | 9.92% | +101% |
| Click-through rate | 7.86% | 9.87% | +25.6% |
| Cost per click | $11.08 | $7.20 | -35.0% |
Leads rose 85.7% over the same period, and search impression share climbed to 41.53%: better quality scores won the ads more placements even as the budget went down.
Key Takeaway
More budget was not the answer. Once the tracking counted real leads, the landing page made asking for an estimate easy and the ads stopped showing for the wrong searches. The same market then produced 85.7% more leads at about a third of the cost per lead, on a smaller budget.
More on how we work as a home services marketing agency.
Paying too much for leads that never become jobs?