See your numbersRoofing

Best Advertising for Roofing Companies: What Actually Works

Find out which roofing ad channels bring in real jobs, what leads cost on each one, and how to track which ads are paying off.

By Jonathan · October 22, 2026 · 13 min read

You're spending money on roofing ads. But you probably don't know which ones are actually bringing in jobs.

Most roofers I talk to throw money at Google, Facebook, maybe some yard signs after a storm. They get leads. Some turn into jobs. But here's the thing: they can't tell you which ads generated which jobs, so they keep doing what feels familiar instead of what actually works.

That's money walking out the door.

The best advertising for roofing isn't about being everywhere. It's about knowing exactly which channel brought in that roof replacement, then doubling down on it. This guide walks you through the channels that work, what you can realistically expect to pay for leads on each one, and how to track which ads are actually paying for themselves.

In This Article

  1. Why Most Roofing Advertising Wastes Money
  2. What Are the Best Advertising Channels for Roofing?
  3. How Does Google Advertising Work for Roofers?
  4. How Well Do Facebook and Social Media Ads Work for Roofing?
  5. Offline Advertising That Still Works for Roofing
  6. How Much Should a Roofing Company Spend on Advertising?
  7. How Do You Track Which Roofing Ads Are Actually Working?
  8. FAQ: Roofing Advertising Questions
  9. The Bottom Line

Why Most Roofing Advertising Wastes Money

You know the feeling: you run ads for three months, get a bunch of calls, close some jobs, and at the end you have no idea if the Google ads or the Facebook ads or the yard signs paid for themselves.

That's the core mistake. Most roofers pick advertising channels based on what they've heard works, not on what they can measure. Then they can't measure it anyway because they're not tracking which lead came from which ad.

Here's what happens: a homeowner calls your number. You don't ask how they found you. Or you ask and forget to write it down. Six months later, you've spent a few thousand dollars on ads and you have no idea whether you got a strong return or barely broke even.

Speed matters too. If you don't call that lead back within minutes, your conversion rate drops hard. A lead sitting in your inbox for an hour is worth a fraction of what it was when it came in hot. But if you're running ads without a system to respond fast, you're throwing away the leads you paid for.

The fix isn't complicated. You need three things: a way to track which ad brought in which lead, a way to know which leads turned into jobs, and a system to respond to leads before your competitor does.

What Are the Best Advertising Channels for Roofing?

Here's the ranked list. These are the channels that actually work for roofing contractors, with realistic cost-per-lead ranges based on what roofers are paying right now.

Google Local Services Ads (LSA) - $35 to $90 per lead

This is the highest-intent channel. Homeowners searching "roof replacement near me" or "emergency roof repair" are ready to talk to someone. Google vets you, you get a "Google Guaranteed" badge, and you only pay when someone actually contacts you. The leads are warm. Your close rate is higher than any other channel. If you can only pick one channel, pick this.

The catch: you need a background check, proof of licensing, and insurance documentation. Verification takes two to six weeks. So start now if you haven't already.

Google Search Ads (PPC) - $100 to $300 per lead

You bid on keywords like "roof repair" and "hail damage roof." You pay per click, not per lead, so your actual cost per lead depends on your landing page and how good your sales process is. In competitive markets, the cost per click can climb fast, which means your cost per lead follows. But if you're good at closing, the return is there.

Facebook and Instagram Ads - $40 to $120 per lead

Facebook is better for awareness and storm-chasing than for high-intent replacement jobs. You're reaching people who may not be actively looking yet, so your close rate is lower than Google. But the cost per lead is lower, and if you're running ads right after a hail storm in a specific zip code, you can catch people while the damage is fresh in their minds. Video ads - before/after roof footage - outperform static images.

Yard Signs and Neighborhood Saturation - $3 to $8 per sign

After you finish a roof job, put a handful of signs in the neighborhood. You'll get calls from neighbors who saw the work. Cost per lead is pennies. Close rate is high because they saw your work in person. This is one of the most underrated channels in the business.

Vehicle Wraps - one-time cost, lasting several years

A full wrap on your truck generates a huge number of impressions every month just from your normal driving routes. You're not paying per lead; you're paying for visibility. It works best as a complement to other channels, not as your only ad.

Direct Mail - $0.50 to $1.20 per piece

Send postcards to post-hail zip codes or neighborhoods with older roofs. Response rates are modest, but it works. Pair it with a clear call to action ("Free storm damage inspection") and a phone number with call tracking so you know which mailers are pulling.

Here's a quick comparison:

Channel Avg Cost Per Lead Lead Quality Best For
Google LSA $35–$90 Very high Primary channel for most roofers
Google Search Ads $100–$300 High Competitive markets, high close rate
Facebook Ads $40–$120 Medium Storm response, retargeting
Yard Signs $3–$8 Very high After completed jobs
Vehicle Wraps Low CPM Low intent Brand awareness, long-term
Direct Mail $40–$120 per 1K Medium Post-storm targeting

How Does Google Advertising Work for Roofers?

Google has two main ad products for roofers: Local Services Ads and Search Ads. They work differently, and you should understand both.

Local Services Ads (LSA) show up at the very top of Google search results with a "Google Guaranteed" badge. You only pay when someone calls or messages you. Google handles the lead delivery. You don't manage keywords or bids the way you do with Search Ads.

Google Search Ads are the traditional pay-per-click ads. You bid on keywords, write ad copy, send people to a landing page, and pay every time someone clicks. You convert clicks into leads yourself.

For most roofers, LSA is the better starting point because the leads are pre-qualified and the cost per lead is lower. But if you're in a market where LSA isn't available yet, or if you want to scale beyond what LSA can deliver, Search Ads are your next move.

Here's how to think about the math: say you put a reasonable monthly budget into Google LSA. If you're closing roughly a third of the leads you get, and your average roof replacement is a solid ticket, the return on that ad spend can be dramatic. The math works - but only if you respond to leads fast. Call people back after an hour and your close rate drops significantly. Wait until the next day and you might barely break even on the leads you paid for.

To set up LSA:

You need a background check (done through a Google-approved provider), proof of your roofing license, and proof of insurance. The verification process takes two to six weeks. Once you're approved, you set a monthly budget and a service area. Google shows your ads to people searching for roofing in that area. You only pay when someone contacts you.

For Google Search Ads:

Focus on high-intent keywords: "roof replacement near me," "emergency roof repair," "hail damage roof," "roof leak repair." Avoid low-intent keywords like "how much does a roof cost" or "roof repair tips." You'll pay for clicks that don't convert.

Your landing page matters. If you send people to your homepage, they have to hunt for information. If you send them to a page that says "Free roof inspection" with a clear form or phone number, your conversion rate is higher and your cost per lead is lower.

Quality Score affects your cost per click. Google rewards ads with high click-through rates and landing pages that match the ad copy. If your Quality Score is low, you pay more per click for the same position. If it's high, you pay less.

When to hire an agency: If you're spending a meaningful amount each month on Google ads, it usually makes sense to bring in someone who knows roofing PPC. They'll optimize your keywords, landing pages, and bids so you're not leaving money on the table. If you're just getting started with a small budget, you can manage it yourself with some learning.

How Well Do Facebook and Social Media Ads Work for Roofing?

Facebook works differently than Google. On Google, people are actively searching for a roofer. On Facebook, you're interrupting their feed with an ad hoping they'll click.

That's why Facebook leads are cheaper but lower quality. Your close rate is lower. But the cost per lead is lower too, so the math can still work if you're strategic.

Facebook is best for two things: storm response and retargeting.

Storm response: Within a day or two of a hail storm, you can run geo-targeted Facebook ads to the zip codes that got hit. The ad says "Free hail damage inspection" with a before/after photo of a roof you repaired. People are worried and looking for help. Your close rate is high.

Retargeting: Someone visits your website but doesn't call. You can show them a Facebook ad later that day or the next week. They've already shown interest, so your close rate is higher than with cold audience ads - and retargeting costs noticeably less per conversion than cold ads.

Video ads outperform static images on Facebook. A short before/after clip of a roof repair gets more clicks and leads than a photo. But you don't need fancy production. A phone video of your last job works just fine.

Budget to start: A few hundred dollars a month is enough to test different ad creative, audiences, and messaging. Below that, Facebook's algorithm doesn't have enough data to optimize. Once you're getting real volume, you can see what's working and lean into it.

Offline Advertising That Still Works for Roofing

Most roofing marketing advice is all digital. But some of the best-performing channels are offline.

Yard signs are the simplest. After you finish a roof job, put signs in the neighborhood. You'll get calls from neighbors who saw the work. Those neighbors already know what you do - they saw it on their street - so your close rate is high. This is pure profit.

Vehicle wraps turn your truck into a moving billboard. A full wrap lasts years and generates impressions every single day just from your normal driving. You're not paying per lead; you're paying for visibility. It's best used alongside other channels, not as your only ad.

Door-to-door canvassing after a hail storm is one of the highest-converting tactics in roofing. Experienced canvassers can book a solid number of appointments per block, and close rates on those inspections are strong. Cost per acquired job is low. But check your state and local laws first - Texas, Colorado, and other states have restrictions on post-storm contractor solicitation.

Direct mail works if you target the right neighborhoods. Send postcards to zip codes that got hit by hail, or to neighborhoods with older roofs. The response rate is modest, but the cost per lead is reasonable if you're smart about targeting.

How Much Should a Roofing Company Spend on Advertising?

The industry benchmark is somewhere between five and ten percent of gross revenue.

Here's what that looks like by company size:

Smaller company: A few thousand dollars a month, depending on revenue.

Mid-size company: Enough to run Google, Facebook, and offline channels simultaneously without stretching thin.

Larger company: Budget grows with revenue, but the percentage stays roughly the same.

Most small roofing companies spend well below that benchmark. They're leaving money on the table because they're not generating enough leads to keep crews busy.

How to allocate your budget:

A reasonable split for most roofers looks something like this: put roughly half toward Google (LSA and Search Ads), about a quarter toward Facebook, and split the rest between offline tactics like yard signs and direct mail, and review generation or referral programs.

The split changes based on your market and season. In spring - peak roofing season - you might shift more to Google LSA because demand is high and you can close more leads. In winter, you might lean into Facebook storm-chasing and direct mail because you need to generate demand rather than just capture it.

The key rule: if you can't attribute leads to a channel, stop spending on it. If you don't know whether your Facebook ads are bringing in jobs, you can't optimize. You'll just keep throwing money at it hoping it works.

How Do You Track Which Roofing Ads Are Actually Working?

This is where most roofers fail. They run ads, get leads, close jobs, and have no idea which ads paid for which jobs.

You need three things: call tracking, UTM parameters, and CRM tagging.

Call tracking means giving each advertising channel its own phone number. When someone calls the Google number, you know it came from Google. When they call the Facebook number, you know it came from Facebook. Tools like CallRail handle this automatically for a modest monthly fee.

UTM parameters are tags you add to your website links. When you run a Google ad, the link includes a tag that tells your analytics where the visitor came from. When someone fills out a form on your website, you know which ad sent them there.

CRM tagging means writing down the source in your job management software. When you book an inspection, you tag it "Google LSA" or "Facebook" or "Yard Sign." When you close the job, you know which channel brought it in.

Here's the number that actually matters: profit per channel. Not leads. Not clicks. If you spent a certain amount on Google ads in October and can trace a handful of closed jobs back to those ads, you can calculate exactly what that channel returned. When you know that number, you can make smart decisions. If Google is returning a strong multiple and Facebook is returning a weak one, you shift budget to Google. If yard signs are returning an absurd multiple, you do more yard signs.

Most roofers don't know these numbers. So they can't optimize. They just keep doing what feels right.

The fix is simple: ask every lead "How did you hear about us?" and write it down. Use call tracking so you don't have to rely on memory. Tag every job in your CRM with the source. At the end of the month, you'll know which channels are working.

FAQ: Roofing Advertising Questions

How much does roofing advertising cost per lead?

Direct Answer: Roughly $35 to $300 per lead depending on the channel, with Google LSA at the low end and Google Search Ads at the high end.

Google Local Services Ads average $35 to $90 per lead. Google Search Ads run $100 to $300. Facebook is $40 to $120. Yard signs cost just a few dollars per sign and generate multiple leads from a single placement. The channel you choose depends on your budget and how much you want to pay per lead.

Are Google Ads or Facebook Ads better for roofing companies?

Direct Answer: Google Ads are better for immediate, high-intent leads. Facebook is better for storm response and retargeting.

Google Ads put you in front of people actively searching for a roofer. Your close rate is higher. Facebook reaches people who may not be looking yet, so your close rate is lower. But Facebook is cheaper per lead and works well for storm-chasing. Most roofers should do both, with Google as the primary channel.

How do I set up Google Local Services Ads for my roofing business?

Direct Answer: You need a background check, proof of license, and proof of insurance. The process takes two to six weeks.

Go to Google Local Services Ads, create an account, and submit your information. Google will verify your background through a third-party provider. You'll need to upload your roofing license and proof of insurance. Once approved, you set a monthly budget and service area. You only pay when someone contacts you.

What is a realistic ROI for roofing advertising?

Direct Answer: Strong returns are absolutely achievable - but only if you're tracking correctly and responding to leads fast.

The math works like this: if your Google LSA spend generates a steady stream of leads, you close a reasonable percentage of them, and your average job is a solid ticket, the return on your ad spend can be dramatic. But that math falls apart if you're calling people back hours later instead of minutes. Slow response cuts your close rate significantly, and suddenly a channel that should be printing money is barely breaking even. Speed and tracking are what separate roofers who win from those who wonder where their ad budget went.

Do roofing lead generation services like Angi actually work?

Direct Answer: They can work, but leads are shared with multiple contractors and lead quality varies by market.

Lead generation services generate leads and sell them to contractors. The problem is that the same lead often goes to several other roofers at the same time, so you're competing on price immediately. Some roofers make it work; others say it's a waste of money. Test it small before committing. Track which leads turn into jobs so you know if it's worth the cost.

What advertising works best after a hail storm?

Direct Answer: Geo-targeted Facebook ads and door-to-door canvassing in the affected zip codes within a day or two of the storm.

Within hours of a hail storm, you can run Facebook ads to the zip codes that got hit. People are worried and looking for help. Your close rate is high. You can also canvass door-to-door in the affected neighborhoods - experienced canvassers can book a solid number of appointments per block. But check your state and local laws first, since some states restrict post-storm contractor solicitation. Yard signs in the neighborhood after you complete a job also work well because neighbors see your actual work in person.

The Bottom Line

The best advertising for roofing isn't about being everywhere. It's about knowing which channel brings in jobs that make you money.

Start with Google Local Services Ads if you haven't already. The cost per lead is low, the leads are warm, and you can measure your return easily. While you're waiting for LSA verification, set up call tracking and start tagging leads in your CRM by source.

Once you know which channels work, double down on them. If Google is returning a strong multiple and Facebook is returning a weak one, shift budget to Google. If yard signs after a completed job are returning an absurd multiple, do more yard signs.

The roofers making the most money aren't the ones spending the most on ads. They're the ones who know exactly which ads are paying for themselves and which ones aren't. They respond to leads in minutes, not hours. They track everything.

If you want to stop guessing and start knowing your numbers, LocalRestart sets up this tracking for you so you can see which ads brought in which jobs without the spreadsheet work.