GUIDE · ROOFING MARKETING

How Much Should a Roofing Company Spend on Marketing?

A straight-talk look at 2026 roofing marketing budgets: the percentage-of-revenue math, what leads actually cost by channel, and how to split the money between storm chasing and steady retail work.

Be Seen, Contractors!10 min readUpdated 2026

The short answer

Most established roofing companies spend between 7 percent and 12 percent of revenue on marketing. A shop running $2M in top-line sales lands around $140,000 to $240,000 a year, or roughly $12,000 to $20,000 a month across all channels. Newer shops fighting to get known spend higher, sometimes 15 percent or more, while a roofer with a full referral pipeline and strong local rankings can hold near 5 percent. The right number depends on how much of your work is retail versus insurance, how competitive your market is, and how fast you want to grow.

What percentage of revenue should a roofer spend on marketing?

The blunt rule of thumb across home-service trades is 5 to 15 percent of gross revenue. Roofing sits in the middle of that band for most owners, but the number moves for real reasons, not vibes.

If you are a known name in your county with a review moat and a full crew calendar, you can defend a low number, 5 to 7 percent, because word of mouth and repeat storm work carry you. If you are three years in, unranked on "roof replacement near me," and buying every lead you can find, you are probably at 12 to 15 percent and it hurts. That is normal. Getting found is expensive until it is not, and the goal is to shift spend from rented leads (aggregators, paid clicks) to owned channels (your site, your map listing, your reviews) that keep working after you stop paying.

Here is a rough map by revenue, assuming a growth posture, not coasting:

Annual revenueMarketing at 8%Marketing at 12%Monthly range
$1,000,000$80,000$120,000$6,700 - $10,000
$2,500,000$200,000$300,000$16,700 - $25,000
$5,000,000$400,000$600,000$33,300 - $50,000

Read the percentage as a decision, not a law. A single re-roof ticket can top $15,000, so one extra booked job a month can cover a serious chunk of your budget. The question is never "what does everyone spend," it is "what does it cost to book a job I want, and how many of those do I need."

One caution on the percentage math: it is a floor for the mature shop and a ceiling for the panicked one. Owners who cut marketing hard the moment a slow quarter hits usually pay for it two seasons later, when the pages that would have ranked never got built and the map listing slid out of the top 3. Marketing spend in roofing behaves like roof maintenance: skip it in the good years and the bill comes due, larger, in the bad ones. Set a percentage you can hold through a slow stretch, not one that only survives a busy one.

What does a roofing lead actually cost by channel?

Cost per lead is where roofers get burned, because the cheap-looking number often hides the worst close rate. A $30 shared aggregator lead that six roofers also bought is not cheaper than a $200 lead that calls you first and books. Judge channels on cost per booked job, not cost per phone number.

Rough 2026 ranges we see across roofing markets, wide because storms and metro size swing everything:

ChannelCost per leadWho owns the leadNotes
Lead aggregators (shared)$25 - $75They doSold to multiple roofers, race to call first
Google Ads / LSAs$75 - $300+You doHigh intent, storm season spikes bids
Local SEO / map packLow over timeYou doSlow to build, compounds, top-3 is the prize
Organic SEO (your site)Low over timeYou do4-9 months for competitive terms, then durable
Referrals / repeatNear zeroYou doBest close rate, capped by past volume

The pattern is simple: rented channels bill you every month forever and the lead quality is what it is. Owned channels cost more up front in time and build, then keep producing. A roofer who only ever buys leads is renting a business. A roofer who builds a ranked site, a top-3 map listing, and a review engine owns one.

There is a second trap: the seasonal price swing. Google Ads and Local Services Ads for roofing terms cost more the week claims open after a storm, because every roofer in the metro is bidding at once. A click that runs $12 in a quiet month can run $40 the week after hail. If your whole strategy is paid clicks, storm season is exactly when your cost per lead is worst and your competition is heaviest. That is the case for owned channels in one sentence: the traffic you rank for organically does not surge-price on you when demand spikes.

Aggregators deserve their own warning. A shared lead is sold to several roofers, so speed to first call decides everything, and the homeowner has already told the same story four times before you dial. Close rates on shared leads run a fraction of what organic and referral leads close at. They are a fine way to fill an empty calendar this week. They are a terrible foundation for a business, because you never own the customer, the relationship, or the pricing, and the rate can rise anytime.

We teach the mechanics of paid roofing traffic in the Google Ads and lead-generation guides. Here the point is budget allocation, not campaign setup.

How should storm work versus retail change the budget?

Roofing marketing does not behave like plumbing or HVAC, and the budget has to respect that. Your demand is spiky. A hail or wind event dumps a flood of homeowners into the market for a few weeks, then it flatlines. Retail re-roofs and repairs trickle in year round. How you split spend depends on which of those two engines you are building.

If your book leans insurance and storm restoration, your marketing has to be ready to catch a surge and go quiet between events. That means always-on visibility (a ranked site, a map listing homeowners find at 9pm the night of the storm) plus the ability to pour money into paid search the week claims open. Homeowners in crisis check reviews and drone footage, then call several roofers the same afternoon. Speed and proof win. Budget for a reserve you can deploy fast, not a flat monthly spend.

If your book leans retail replacement and repair, the game is steadier and cheaper per lead over time. Retail buyers plan, compare, and read. They reward strong organic content, financing pages, warranty clarity, and before-and-after galleries. You can run a leaner, more predictable budget and lean harder on SEO and reviews.

Most roofers are a blend. A workable split for a blended shop:

  • 40 to 50 percent to owned, always-on visibility: your site, local SEO, reviews, AI-search presence. This is the base load that catches storm traffic for free and feeds retail year round.
  • 30 to 40 percent to paid acquisition: Google Ads and LSAs, dialed up in storm season and after events, dialed down when the pipeline is full.
  • 10 to 20 percent to brand and retention: yard signs, truck wraps, past-customer touch, referral incentives.

The insurance angle matters here too. Supplement and claim intent ("does insurance cover roof replacement," "storm damage roof inspection") is high-value traffic a generalist agency ignores. Owning those searches is cheaper than bidding on them forever.

Where does the money go inside a real roofing budget?

"Marketing budget" is not one line item. When a roofer says they spend $15,000 a month and cannot tell where it goes, that is the problem, not the number. Break it into buckets so you can cut what is dead and feed what books jobs.

A representative monthly budget for a roofer around $2.5M in revenue, spending roughly 10 percent:

BucketMonthlyWhat it buys
Website + technical SEO$1,500 - $3,500Fast site, ranking pages, schema, hosting
Local SEO + map pack$1,000 - $2,500Map listing, citations, review engine
AI-search visibility$500 - $1,500Getting cited in ChatGPT / AI answers
Google Ads / LSAs$3,000 - $10,000+Media spend, storm-season surge
Content + reviews$500 - $1,500Blog, project pages, review requests
Brand + retention$500 - $2,000Wraps, signs, referral program

The paid-media line is the loudest and the easiest to over-fund. It is also the one that stops the day you stop paying. The site, the map listing, and the content are the lines that compound. A ranked roofing site can run 94 or more cluster pages covering every roof type, storm scenario, neighborhood, and insurance question a homeowner searches, and those pages keep pulling leads for years.

Notice what the table is really telling you. The bottom four buckets combined (local SEO, AI-search, content, brand) often cost less than the single paid-media line, and they are the ones that stay yours. A roofer who flips that ratio over two or three years, growing the owned lines and shrinking the rented one, ends up with a lower blended cost per job and a business that does not go dark the day an ad account gets suspended or an aggregator raises rates.

The AI-search line is new and easy to skip, and skipping it is a mistake in roofing. Homeowners in crisis increasingly ask an AI assistant "who does storm damage roof inspections near me" or "does insurance cover a roof replacement" before they ever open a search results page. Getting your shop cited in those answers is cheaper now, while few roofers are doing it, than it will be once the whole market catches on. It is the same land-grab logic that made early map-pack ranking so valuable.

The discipline is quarterly review. Pull the buckets, tag every booked job to its source, and move money toward whatever booked the jobs you actually wanted. Roofers who never do this end up funding a channel that stopped working two seasons ago.

How do you know if your roofing marketing budget is working?

Spend without measurement is just hope with a receipt. The number that matters is not leads, impressions, or clicks. It is cost per booked job and the value of that job. A roofer needs to know: for every dollar in, how many re-roofs and repairs came out, and from where.

Track these, at minimum, per channel:

  1. Cost per booked job. Total spend on a channel divided by jobs it actually closed. A channel with expensive leads that close beats a cheap channel that never books.
  2. Close rate by source. Referral and organic leads close far higher than shared aggregator leads. If you are not tagging source at intake, start today.
  3. Average ticket by source. Some channels bring $800 repairs, others bring $18,000 full replacements. Budget toward the tickets you want.
  4. Return on marketing spend. Revenue booked from marketing divided by marketing cost. A healthy roofing shop wants several dollars back for every dollar in, and more from owned channels than rented.

The long sales cycle in roofing makes this harder. Insurance jobs run weeks while adjusters and mortgage checks clear, so a lead in January may not book revenue until March. Do not judge a channel on 30 days. Judge it on a full season, and keep the attribution honest, tag the lead source at first contact, before the job closes and everyone forgets where it came from.

Watch out for the vanity dashboard. Agencies love to report impressions, clicks, and "leads," because those numbers always go up and none of them pay for a truck. A form fill from a tire-kicker who wanted a $200 patch is not the same lead as a homeowner with a full hail claim and a mortgage-backed check on the way. If your reports never tie back to booked revenue and average ticket, you are being sold activity, not results. Ask for cost per booked job by channel, every quarter, in writing.

One more discipline: separate rented from owned in your reporting. If 80 percent of your bookings still come from paid leads after two years, your owned visibility is underfunded and you are exposed the day ad costs spike or an aggregator raises rates. The point of a roofing marketing budget is to keep buying yourself out of that dependency.

When should a roofer spend more, and when should they hold?

The budget is not a thermostat you set and forget. It flexes with the calendar, the market, and your crew capacity. Spending more when you cannot staff the work just books jobs you botch and reviews you regret.

Spend more when:

  • A storm just hit your market and claims are opening. This is the window. Homeowners are in-market for a few weeks, then gone. Have reserve to deploy inside 48 hours.
  • You have crew capacity and a thin pipeline. Empty trucks cost more than ad clicks.
  • A competitor is outranking you on the terms that book jobs. Ground you cede in the map pack and AI answers is expensive to take back later.
  • You are entering a new service area and nobody knows your name there yet.

Hold or cut when:

  • Your calendar is full and you are turning down good work. Buying more leads you cannot service is lighting money on fire.
  • A channel has not booked a job in a quarter. Kill it, do not "give it more time" out of sunk-cost habit.
  • Your close rate is dropping. That is a sales or capacity problem, and more leads will not fix it, they will just cost more.

The strategic move most roofers miss: use the slow season to build owned visibility, not to go dark. Ranking a site and a map listing takes months (4 to 9 for competitive terms), so the pages you build in the quiet stretch are the ones catching storm traffic for free when the next event hits. Roofers who only market during storms are always paying peak prices for peak-season clicks. Roofers who build in the quiet own the peak.

If you want a straight read on where your current spend is leaking and what it would take to shift from rented leads to owned visibility, that is exactly what a visibility audit shows. No pitch, just the map.

Key takeaways

  • Most established roofers spend 7 to 12 percent of revenue on marketing; newer shops run higher, referral-heavy shops run leaner.
  • Judge channels on cost per booked job, not cost per lead. A cheap shared lead with a bad close rate is not cheap.
  • Split spend by your mix: storm and insurance work needs deployable reserve; retail rewards steady SEO, reviews, and financing content.
  • Rented channels (aggregators, paid clicks) bill forever; owned channels (site, map pack, reviews) compound and keep producing.
  • Tag every lead source at first contact and review buckets quarterly, roofing's long sales cycle hides bad channels for weeks.
  • Build owned visibility in the slow season so it catches storm traffic for free when the next event hits.

STRAIGHT ANSWERS

Quick answers.

01Is 10 percent of revenue too much to spend on roofing marketing?

For a shop that is growing or fighting for rankings, 10 percent is normal and often well spent. For an established roofer with a full pipeline and strong local rankings, it may be more than you need. The right number depends on your growth goals and how much of your work already comes from owned channels versus paid leads.

02Should I buy roofing leads or invest in my own website and rankings?

Both, but shift the balance over time. Bought leads fill the pipeline today while your owned visibility builds. The goal is to reduce dependence on rented leads so you are not exposed when aggregator rates rise or ad costs spike in storm season. Owned channels cost more up front and then keep producing.

03How long before a roofing marketing budget pays off?

Paid channels can produce leads within days, though quality varies. Organic SEO and local rankings take 4 to 9 months for competitive terms, then hold for years. Because roofing sales cycles run weeks while claims and financing clear, judge results over a full season, not 30 days.

04Does marketing spend change during storm season?

It should. Demand spikes for a few weeks after a hail or wind event, then flatlines. Smart roofers hold a reserve they can deploy into paid search within 48 hours of a storm, and they build always-on visibility in the quiet months so the surge traffic finds them for free.

WANT THIS HANDLED FOR YOU?

Want to see where your budget is leaking?

We will run a free visibility audit and show you, channel by channel, where your roofing marketing dollars are working and where they are being wasted. No pitch, just the map. Call (407) 705-2452 or book a strategy call.

Start With the Free Audit
Call (407) 705-2452 Text