Roofing has some of the highest costs per lead in home services. Ask ten roofing contractors what they pay for a lead and you will hear numbers that would put an HVAC company out of business. Most owners accept it as the cost of the trade.
It is partly the trade. It is mostly the setup.
Roofing genuinely is expensive to advertise in, for reasons no account structure can fix. But in most roofing accounts we look at, somewhere between a third and half of the spend is going somewhere that will never produce a booked job. That part is fixable, usually in a few weeks.
Here is what is actually driving your cost per lead, and what to do about each.
Why roofing costs more than other trades to begin with
Three structural reasons, none of which are your fault.
The job is worth a lot, so everyone bids hard. A full roof replacement is worth ten to thirty times an HVAC service call. That job value gets priced into every click. Your competitors can afford to pay more for a click than a plumber can, and so can you, which pushes the whole market up.
Storm chasers flood the auction. After any significant weather event, out of town operators buy their way into your market for six weeks, bid without regard to long term economics, and leave. Your costs spike through no decision of yours.
Buying intent is lumpy. Nobody wakes up wanting a new roof. Demand arrives in bursts tied to weather, insurance cycles and the age of housing stock in your area. That makes steady, efficient spend harder than in trades with year round demand.
None of that is a reason to accept a bad number. It is a reason to be more disciplined than a contractor in an easier trade can afford to be.
Leak one: you are paying for people who will never hire you
This is the biggest and most common one, and it is close to free to fix.
Without a negative keyword list, your roofing ads show for searches like:
roofing jobs, roofer salary, roofing apprenticeship
how to fix a roof leak yourself, diy roof repair
roofing shingles for sale, roofing felt price, roofing nails
roof rack, roofing calculator, roofing course
Every one of those is a click you paid for and a person who was never going to book. In roofing the effect is worse than in other trades because so many of the highest volume searches are informational or material related.
The fix: open your search terms report, sort by cost, and read the actual queries people typed. Add anything irrelevant as a negative. Then do it again every week for a month, and monthly after that.
Most roofing accounts we audit have never had this done. It is usually the single largest recoverable chunk of wasted spend, and it takes an hour to start.
Leak two: repair and replacement are in the same campaign
Someone searching "roof leak repair" and someone searching "roof replacement cost" are two completely different buyers. Different urgency, different job value, different objections, different close rate.
Put them in one campaign and you are showing the same ad and the same landing page to both, which means it fits neither. You also lose the ability to see which one is actually profitable, because the numbers are averaged together.
The fix: separate campaigns for repair and replacement, at minimum. Separate ad copy, separate landing pages, separate budgets. Then look at cost per booked job for each. Most roofers find one of the two is carrying the other, and they had no idea.
Leak three: everything lands on your homepage
Your homepage has to introduce your company, list every service, cover your service area, show your reviews and offer three different next steps. That is the wrong job for an ad click.
Someone who searched "emergency roof leak repair" and clicked an ad about emergency roof leak repair should land on a page about emergency roof leak repair, with your phone number visible without scrolling and one obvious action to take.
The fix: one landing page per campaign. Headline matching the search, phone number above the fold, reviews and licensing visible immediately, a short form, and nothing else competing for attention. Strip the full site navigation.
This routinely moves conversion rate more than any change to the ads themselves. Your cost per lead is cost per click divided by conversion rate. Doubling the second one halves the first.
Leak four: you are not running Local Services Ads
Local Services Ads sit above everything else in search results with a Google Guaranteed badge, and you pay per lead rather than per click.
For roofing that pricing model matters more than in any other trade. Your clicks are expensive. Paying only when a qualified customer actually contacts you removes the entire category of "expensive click that went nowhere."
The fix: get verified and turn LSA on before you scale search ads. It usually should be the first paid channel running, not the last.
Leak five: the leads arrive and then sit
This is the one that costs the most and gets the least attention.
You can fix every problem above, get your cost per lead down, and still lose the money if a lead comes in at 4pm and gets a callback the next morning. Studies across service businesses consistently show that response speed is one of the strongest predictors of whether a lead converts, and the drop off is steep, measured in minutes rather than hours.
Roofing makes it worse because the buyer is usually collecting three quotes. Whoever responds first frames the comparison.
The fix: an automated response the moment a lead lands, even a text saying you have got it and will call shortly. Then a real follow up sequence over several days for anyone who does not book on the first contact. Most roofers have no second touch at all, which means every lead that does not answer the first call is simply gone.
This is covered properly in the lead generation guide, and it is the highest return fix on this page.
Leak six: you cannot tell which campaigns produce jobs
Most roofing leads come by phone. If you are not tracking calls back to the campaign, keyword and ad that produced them, you are optimising toward whatever generates cheap clicks rather than whatever generates signed contracts.
Those are frequently different things. The cheapest lead source in a roofing account is often the one with the worst close rate, because cheap clicks come from vague searches by people who are not ready.
The fix: call tracking, with the goal of reporting cost per booked job by campaign rather than cost per lead. Once you have that number, budget decisions stop being arguments.
Doing these in the right order
If you try all six at once you will not know what worked. The sequence that produces the fastest visible improvement:
Negative keywords. Free, immediate, usually the biggest single recovery.
Speed to lead and follow up. Costs almost nothing and raises the value of every lead you already have.
Landing pages. Split repair and replacement while you are at it.
Local Services Ads. Shifts spend to a pay per lead model.
Call tracking. Now you can see what is actually working.
Restructure and rebalance budget based on what step five tells you.
Notice that the first two cost nothing and are usually worth more than anything you could do with the ad account itself. That is normally true, and it is normally the last place contractors look.
What a healthy roofing account looks like
You will not hit a plumber's cost per lead, and you should not try. What you should be able to say:
You know your cost per booked job, not just cost per lead, by campaign
Repair and replacement are measured separately
Your search terms report has no obvious junk in the top twenty by spend
Every lead gets a response within minutes, automatically
Leads that do not book on the first contact get worked for several days
Local Services Ads is running alongside search
Get there and your cost per lead will come down, but more usefully, the number will start meaning something. Right now it is an average across traffic that was never going to convert and traffic that was.
For the full account structure, match types and bidding approach behind all of this, read Google Ads for Home Services.
About the author
Tom Hanafin
Principal at GastaIQ
Tom helps HVAC, plumbing, roofing and electrical businesses build marketing systems that produce booked jobs. Based in Tampa, working with contractors across Florida.
Connect on LinkedIn →Book your free consultation
We only work with home services businesses. Tell us where you are now and we'll map out exactly where your fastest wins are.
Book your free consultation
