Cost per lead is easy to find and easy to misread. A $30 lead that never answers is more expensive than a $150 lead who signs. So I rank by three things:
| Rank | Channel | Cost per lead (2026 range) | Intent | Owned? |
|---|---|---|---|---|
| 1 | Referrals and repeat customers | Near zero, plus any referral bonus you pay | Very high | Yes |
| 2 | Google Business Profile and map pack | No per-lead fee; your time or an SEO fee | Very high | Yes |
| 3 | Organic SEO (service and town pages) | No per-lead fee; monthly SEO fee | High | Yes |
| 4 | Google Local Services Ads | Median about $123 per charged lead (99 Calls LSA estimator, Sept 2026) | Very high | No |
| 5 | Google search ads | About $124 average CPL; clicks about $15 to $70 (SearchLight Digital; industry CPC benchmarks) | High | No |
| 6 | Exclusive pay-per-lead sellers | About $40 to $550 (Service Hero Marketing) | Medium to high | No |
| 7 | Facebook and Instagram ads | About $30 to $80 (PipelineOn) | Low to medium | No |
| 8 | Shared lead platforms (Angi, HomeAdvisor, Thumbtack) | About $25 to $200, shared with several roofers (Service Hero Marketing) | Medium | No |
Why do shared leads rank last despite the low sticker price? Because you split each homeowner with other roofers, and per GhostRep's 2026 benchmark those leads close at roughly 10% to 18%. That pushes cost per job up. Facebook sits above them because the lead is yours, even if the homeowner is less ready.
Owned channels rank high but take months to build. Paid channels work this week. That's the trade-off every roofing marketing plan has to balance.
Ask the day the job finishes, when the homeowner is happiest. Make it concrete: a card, a text with your review link, and a clear referral thank-you. Referrals also feed your reviews, which feed rank 2.
This is where "roofer near me" calls come from. Right category, full services list, real photos of real roofs, and reviews that mention towns. I cover setup and reviews on local SEO for roofers.
A page for each service and each town you want work in, plus honest answers to cost and insurance questions. Slow to start, cheapest per job once it's running. More on where roofers get leads and how owned leads compare with bought ones.
Both catch homeowners who want a roofer now. LSA charges per lead; search ads charge per click, so a weak landing page wastes money fast. I break down the paid side in roofing advertising.
Useful to fill a gap or break into a new town. Track every lead to a signed job or a dead end, and cut what doesn't pay.
These are hard to measure, so I left them out of the ranking. Yard signs and wraps are cheap once paid for and help your brand searches. Door knocking after storms works for some crews, but homeowners are wary of storm chasers, so a local reputation matters. If you use mail, give it a separate phone number so you can count calls.
Here's how I'd split a modest budget for a roofer covering a few towns. Swap in your own numbers.
Every quarter, move money from the channel with the worst cost per job to the one with the best. Over a year, most roofers I talk to end up shifting from rented toward owned. Before storm season, make sure your pages rank; my page on storm damage roofing leads covers that timing.
Roofing demand isn't flat. Homeowners mostly look for a roofer when something goes wrong, which often means after a storm. Your marketing should follow that rhythm instead of spending the same amount every month.
Every channel on this list works better when the homeowner can see you are real. Someone is letting your crew onto their house, often for a five-figure job, so trust decides the call.
None of this costs much. It raises the close rate of every channel you pay for, which lowers cost per job across the board.
The ranking above only helps if you measure your own numbers. Use a separate call tracking number per paid channel, log the source of every lead, and once a month mark each one as signed, lost or junk. Divide each channel's spend by its signed jobs. After two or three months you will know which channels to feed and which to cut.
You need one if you don't have time to run these channels and track cost per job. Before you hire a roofing marketing agency, ask:
I'm a one-person shop focused on SEO, so I don't run your ads, but I'll tell you honestly whether you need them. I wrote more about roofing SEO agencies compared, and the full picture of roofer SEO lives on my roofing hub.
Referrals and a strong Google Business Profile usually give the lowest cost per job, followed by organic SEO. Google LSA and search ads are the best paid options when you need calls quickly.
There's no single right percentage. Start with what one signed job is worth to you, set a target cost per job, and fund the channels that beat it.
They can, especially after storms and for retargeting, but the homeowner is scrolling, not searching, so expect lower intent than Google.
Google Local Services Ads and search ads bring calls within days. Pair them with owned channels so you depend on them less over time.
Build owned channels before storm season, then raise paid budgets in the days after a storm in the towns that were hit.
I'll look at your site, profile and competition and tell you where your next dollar should go. Book a free 30-minute call, or ask for the free 24-hour audit.

I specialize in home services SEO: taking websites that sit invisible on page three and turning them into the business Google and ChatGPT recommend first. I started on the developer side, writing software and doing SEO on the side, until I saw how much home-service owners were overpaying for work that quietly hurt them. So I built a method that fixes the broken technical work and the outdated thinking behind it.
From garage door companies to plumbers, roofers, locksmiths and cleaning services, the playbook is the same: rank where your customers actually search, earn real reviews, and back it with a fast site that books the job. No PBNs, no bought reviews, no directory spam. Only work that survives Google’s next five updates. See exactly how it’s priced on the pricing page.
Free 30-minute strategy call
Send me your site and I’ll send back a free audit: what’s broken, what it’s costing you in calls, and the first three fixes.
No spam and no sales pitch. Just a clear look at what’s leaking leads.