Why Most Roofing Companies Bleed Money on Google Ads
If you’re running Google Ads for your roofing company and your cost per lead keeps climbing with no clear explanation, you’re not alone — and it’s not bad luck. It’s bad structure.
Roofing is one of the more expensive verticals to advertise in. WordStream Google Ads Benchmarks put the average cost per click for roofing keywords at $8.94. At a 6.84% average conversion rate for home services, that’s roughly $130 in ad spend to generate a single lead — before you account for wasted clicks from poor targeting.
That math gets ugly fast. Spend $3,000/month, generate 23 leads, close 30% — that’s 7 new jobs. If your average ticket is $900 (repairs and small replacements), you’re barely breaking even. If your average ticket is $12,000 (full replacements), you’re printing money. The point: your campaign structure determines which reality you live in.
The roofing market is saturated. The U.S. Bureau of Labor Statistics reports approximately 168,900 roofing workers employed nationwide — that’s a competitive market with dozens of contractors bidding on the same ZIP codes. Winning isn’t about spending more. It’s about spending smarter.
What Good Numbers Actually Look Like for Roofing Ads

Before you can fix your campaign, you need a benchmark. Most roofing companies we audit have no idea whether their $145 cost per lead is good, average, or a disaster. Here’s what the math should look like across job types.
| Job Type | Avg Ticket | Target CPL | Target Close Rate | Max Allowable CAC |
|---|---|---|---|---|
| Emergency Repair | $650–$1,200 | $55–$90 | 40–55% | $200 |
| Roof Replacement | $8,000–$18,000 | $90–$160 | 25–40% | $600 |
| Storm / Insurance | $12,000–$25,000 | $100–$175 | 20–35% | $875 |
| Commercial Roofing | $30,000–$100,000+ | $150–$300 | 15–25% | $2,000 |
The Max Allowable CAC column is the number that matters. That’s the most you can spend to acquire a customer and still run a profitable campaign. If your CPL is $160 and your close rate is 25%, your CAC is $640 — fine for storm jobs, a problem for repairs.
For a deeper look at how these benchmarks compare across other service verticals, see our breakdown of Google Ads benchmarks by vertical for HVAC, plumbing, chiro, and gyms.
The Campaign Structure That Actually Reduces Cost Per Lead
Most roofing campaigns are built wrong from day one. One campaign, one ad group, a handful of broad match keywords, and a generic landing page. That structure inflates your CPC, tanks your Quality Score, and bleeds budget on irrelevant searches.
Here’s what a tight structure looks like:
Separate campaigns by intent. Emergency repairs and roof replacements are different buying decisions with different search behavior. A homeowner searching “roof leak repair tonight” is ready to book now. Someone searching “roof replacement cost” is price-comparing. They need different ad copy, different landing pages, and different bidding strategies. Mix them together and you’re paying replacement-level CPCs for repair intent — or vice versa.
One theme per ad group. Google’s own guidance on Quality Score confirms that tightly themed ad groups with strong keyword-to-ad relevance earn higher scores — which directly lowers your cost per click. A Quality Score of 8 versus 5 on a $9 CPC keyword can cut your effective cost by 30–40%. That compounds across thousands of clicks.
Match types matter. Broad match without a maintained negative keyword list is where roofing budgets go to die. Search Engine Journal notes that broad match keywords without proper negative keyword lists are a leading cause of wasted ad spend — and in roofing, where a single click costs nearly $9, one irrelevant search term costs real money. Use phrase and exact match for your core intent keywords. Run broad match only in controlled discovery campaigns with aggressive negative lists.
Geo-targeting down to ZIP code or radius. If you serve a 30-mile radius, don’t bid statewide. Segment by your highest-value service areas and bid more aggressively there. Lower-value or more competitive ZIPs get lower bids or get excluded entirely.
Landing Pages Are Where Roofing Leads Actually Get Lost
Your ad gets the click. Your landing page either converts it or wastes it. Most roofing companies send paid traffic to their homepage — a page built for brand awareness, not lead capture.
A converting roofing landing page does four things: it matches the search intent of the ad that brought the visitor there, it loads in under 3 seconds on mobile, it has one clear call to action above the fold, and it establishes credibility fast (reviews, license numbers, photos of real jobs).
If you’re running a storm damage campaign and your landing page leads with “Family-Owned Since 1987,” you’re losing leads to the contractor whose page opens with “Insurance Claim? We Handle the Paperwork.” Intent match wins.
Call-only ads are underused in roofing. Emergency repair searches have massive phone intent — the homeowner has water coming through their ceiling. They’re not filling out a contact form. Run call-only ads for emergency and repair campaigns and track every inbound call as a conversion. If you’re not measuring calls, you’re underreporting your results and making bidding decisions on incomplete data.
The Negative Keyword List Every Roofing Campaign Needs
Before you optimize bids or rewrite ad copy, audit your search term report. If you’re running any form of broad or phrase match, you’re almost certainly paying for searches that will never convert.
Common wasted spend categories in roofing campaigns:
- DIY intent: “how to fix roof leak myself,” “roofing materials home depot,” “DIY shingles installation”
- Employment searches: “roofing jobs near me,” “roofing apprenticeship,” “roofing company hiring”
- Competitor brand names (unless you’re running a deliberate competitor campaign with separate budget)
- Out-of-area cities and states you don’t serve
- Informational queries: “how long does a roof last,” “types of roofing materials,” “roof replacement timeline”
A clean negative keyword list, maintained monthly, can reduce wasted spend by 20–35% on a typical roofing campaign. That’s money that goes back into buying leads, not subsidizing irrelevant traffic.
For a full breakdown of how to build and manage a Google Ads campaign the right way — from structure to bidding to what good results look like — read our authority guide to Google Ads for local service businesses.
What to Ask Before You Hire a Roofing Ads Agency
Most roofing companies overpay on Google Ads because they handed their account to an agency that optimizes for impressions and click volume — not booked jobs. If your monthly report leads with “we got you 18,000 impressions this month,” that agency is not running a revenue-first campaign.
The questions that matter:
- What is my cost per lead by campaign and job type?
- What is my cost per acquired customer (CAC)?
- What is my return on ad spend (ROAS) based on closed revenue — not leads?
- What percentage of my budget was spent on converting search terms versus wasted terms last month?
- Can you show me my Quality Scores and what you’re doing to improve them?
If an agency can’t answer those questions with specific numbers, they’re not running your campaign — they’re just collecting a management fee. See our full checklist of what to ask before hiring a Google Ads agency, including the red flags that cost contractors tens of thousands in wasted spend.
Simply Digital Marketing runs Google Ads for local service businesses with one standard: the campaigns pay for themselves. Our HVAC clients run at $47 CPL. Our chiro clients at $38 per new patient. If you’re a roofing company spending $2,000–$13,000/month on ads and you’re not sure if your numbers are good or bad, that’s exactly what a Revenue Decision Review is built for.
Ready to find out what your roofing ads should actually cost? Book a Revenue Decision Review — it’s a free 30-minute audit where we pull your current numbers, benchmark them against what we see across the industry, and show you exactly where your campaign is leaking money and what it would take to fix it. No pitch deck. Just the math.


Leave a Reply