Search demand for roofing barely moves across the year. Across six roofing keywords in WebFX's home services dataset, the busiest month runs about 56,400 searches and the quietest about 46,900. That is a swing of roughly 20%, the flattest of the four major home service trades.
Ad prices move more than that. Blended cost per click across the same six keywords runs about $0.79 in December and $1.02 in May, a spread of roughly 30% in the opposite direction from where every published roofing marketing calendar tells you to spend.
Which produces an answer most roofers will not like: the cheapest, most urgent roofing buyers of the year are available in the months you have been told are dead.
The short answer
Advertise roofing year round, and weight your budget toward November through February rather than away from it. Run urgent repair and inspection offers in the cold months when clicks are cheap and intent is high, run replacement and financing offers in the warm months when researchers are active, and keep a storm campaign built and dormant so it can go live in a day.
The month you should spend the least is May, which has the highest blended click price and the weakest urgency mix of the year.
The published roofing calendars contradict each other
Before trusting any of them, notice that they disagree. One widely ranking guide states that "most homeowners search for roofers in the spring, with demand peaking in March." Another says fall is the second-biggest roofing season. A third asserts spring accounts for 35% of annual roofing revenue. A fourth claims seasonal roofing marketing "captures 70% more storm leads," a figure with no method attached to it.
These cannot all be true, and the monthly search data supports none of the specific claims. March is not the peak. It is the sixth busiest month of twelve, and it is the lowest month of the year for storm damage roof repair searches.
The confusion has a cause. These articles conflate three different curves that happen to be called "season": when homeowners search, when crews can install, and when clicks are cheap. Those three peak at different times. Treating them as one number is what produces an upside-down budget.
Roofing is the flattest trade on the board
Here is the total monthly picture across the six roofing keywords WebFX tracked, alongside the volume-weighted blended click price for that month.
| Month | Total searches | Blended CPC | Urgent-to-research ratio |
|---|---|---|---|
| January | 54,351 | $0.83 | 1.79 |
| February | 46,937 | $0.95 | 1.32 |
| March | 52,484 | $0.93 | 1.42 |
| April | 52,750 | $0.97 | 1.30 |
| May | 49,138 | $1.02 | 1.12 |
| June | 50,075 | $0.98 | 1.22 |
| July | 55,192 | $0.98 | 1.26 |
| August | 56,394 | $0.93 | 1.41 |
| September | 53,960 | $0.89 | 1.46 |
| October | 52,515 | $0.89 | 1.33 |
| November | 49,820 | $0.81 | 1.66 |
| December | 50,614 | $0.79 | 1.64 |
Urgent-to-research is the ratio of searches for repair, leak and emergency terms against searches for replacement cost, inspection and storm damage terms. It is a rough proxy for how much of the month's demand needs a roofer this week rather than a quote next spring.
Read the columns together and the pattern is clear. Volume is nearly flat. Price and urgency both move against the conventional calendar. December is the cheapest month and the second most urgent. May is the most expensive month and the least urgent.
By the numbers
Roofing volume swings 20% peak to valley. HVAC keywords in the same dataset swing far harder, which is why HVAC advice about buying six weeks ahead of the turn does not transfer cleanly to roofing. We wrote that calendar separately in best time to advertise HVAC.
The two curves run in opposite directions
The flat total hides the real story. Individual roofing keywords are volatile, but they cancel each other out.
| Keyword | Peak month | Valley month | Variance | Cost per click |
|---|---|---|---|---|
| Roof repair near me | September (20,235) | February (16,307) | 24% | $0.30 |
| Emergency roof repair | December (4,071) | February (2,393) | 70% | $0.50 |
| Roof replacement cost | July (13,349) | December (8,595) | 55% | $3.00 |
| Roof leak repair | January (10,926) | June (6,472) | 69% | $0.15 |
| Storm damage roof repair | August (1,409) | March (876) | 61% | $3.00 |
| Roof inspection | October (10,282) | January (8,002) | 28% | $0.15 |
Look at the two extremes. Roof replacement cost peaks in July and bottoms in December. Roof leak repair does the exact reverse. One costs $3.00 a click. The other costs $0.15.
That is a twentyfold price difference between the search that dominates summer and the search that dominates winter. When you advertise in July you are buying a larger share of the most expensive, least committed traffic in the category: people typing a price question who have not yet decided to do anything. When you advertise in January you are buying people with water coming through a ceiling.
Both are worth having. They are not worth the same price, and no roofing calendar currently ranking makes this distinction.
What "slow season" actually means
It does not mean demand disappears. It means supply leaves before demand does, which is a different thing entirely and much better for you.
A project manager at a $3 million roofing company described the shape plainly on r/Roofing: the company runs "10-12 jobs a week during winter and 20-25 during summer." Winter is roughly half of summer, not zero. Meanwhile a homeowner in Quebec posted in November with an active ceiling leak that "all roofing companies are already out for the season," and the one contractor who would come out quoted $15,000 against a neighbourhood rate under $10,000.
That is the whole opportunity in one thread. Demand persisted. Capacity vanished. Price went up 50% for the operator who stayed reachable.
Watch out
Pulling your ads in November does not save money. It hands a market with roughly 92% of peak search volume to whichever competitor left theirs running, at the cheapest click prices of the year.
Most roofers budget marketing on gut feel about the season, then wonder why their cost per booked job doubles in spring. We build the calendar off your actual numbers: which months your close rate is strongest, which channels hold up in the cold, and what to spend where.
The 40 degree line is a sales asset, not a constraint
The reason roofers stop advertising in winter is that they expect the objection: can you even install this now? The answer is documented, and publishing it is a differentiator because almost nobody does.
The Asphalt Roofing Manufacturers Association and most shingle manufacturers put the practical line at about 40 degrees Fahrenheit. Above it, standard installation is fine. Below it, manufacturers generally require hand sealing each shingle with an approved adhesive, and skipping that step puts the warranty at risk. Manufacturers commonly want two full days above 40 degrees for the thermal seal to set.
Practitioners confirm the line. A New Jersey roofer answering a homeowner's December question about a full replacement: "Still doing installs. As long as its at least 40 degrees out you shouldn't have a problem with the shingles settling properly." Another added the real caveat, that shingles get brittle well below that and the crew has to be careful.
So the honest winter offer is not "we install in any weather." It is a three-part answer that closes:
- Above 40 degrees we install normally, and most winter days in your market clear that line at some point.
- Below it we hand seal to manufacturer spec, or we tarp and schedule you first in the spring queue.
- Sign now, install spring, price locked. The homeowner stops carrying risk today and you carry a booked backlog into your busy season.
That third option is the one to advertise hardest. It converts a cold month into signed contracts at a season when nobody is discounting against you, and it front-loads your spring schedule so April is not spent selling. Roofers who fight on price in the busy season are usually the ones who entered it with an empty calendar, which is the same failure pattern we unpack in how to stop competing on price for roofing jobs.
The claim window nobody is working
There is a second winter demand source that requires no ad spend at all.
Most homeowner policies require a hail or wind claim to be filed within one year of the date of loss, though the window varies by carrier and state, running as short as 30 days and as long as two years in states like Texas. The clock starts at the date of the storm, not the date the homeowner noticed the damage.
That produces a predictable, addressable list. Every hailstorm in your service area creates a cohort of homeowners whose filing window closes on a known date, and most of them did nothing at the time because the damage was not visible from the ground. Pull your storm dates for the past twelve months, map the affected postal codes, and run a free inspection offer against those addresses before their deadline, not during the next storm when every competitor is knocking.
This is outbound work driven off your CRM rather than an ad platform, and it is the single most underpriced roofing demand source in the calendar. It also explains why searches for storm damage roof repair peak in August rather than during spring hail season: the decision lags the weather by months.
What to advertise in each month
The calendar is not about whether to spend. It is about what offer matches the month's actual search mix.
| Window | What is actually being searched | Lead offer |
|---|---|---|
| November to February | Leaks, emergency repair, ice and storm damage | 24-hour leak response, free inspection, sign now install spring with locked pricing |
| March to April | Post-winter inspection, early replacement research | Free post-winter inspection, financing-led replacement quotes |
| May to July | Replacement cost research, peak competition | Reduce paid spend, lean on reviews and referrals, sell value not price |
| August to September | Highest total volume, storm damage claims surface | Storm response campaigns, insurance claim assistance, capacity-limited urgency |
| October | Roof inspection peaks for the year | Pre-winter inspection, gutter and flashing add-ons, winter readiness |
May through July is the only window where the honest advice is to spend less on paid acquisition. Not zero. Less. Your close rate is usually strong then and your capacity is full, so the marginal lead is worth less to you at exactly the moment it costs the most. That is the definition of a bad trade.
The storm overlay
Everything above describes the baseline year. A hailstorm overrides all of it.
Storm response is a separate mode with one requirement: it has to already exist. Searches for storm damage roof repair carry a $3.00 cost per click, the joint most expensive term in roofing, and they arrive in a window measured in days. If you are writing landing page copy and collecting review screenshots the week after the storm, you have already lost the window to the company that had the campaign paused and ready.
Build it in the slow season. A storm campaign is a landing page, three ad variants, a claims-process explainer, and a paused ad group with geographic targeting you can redraw in ten minutes. That is a January afternoon of work that pays out in August.
Speed matters more than budget once it fires. Storm leads are shopped hard and shared widely, and the operator who answers first usually wins regardless of price, which is the same dynamic covered in how fast you should respond to a lead.
Build your roofing ad calendar in five steps
- Split your keywords into urgent and research buckets. Leak, emergency and repair terms in one. Replacement cost, inspection and storm terms in the other. Bid them separately with different budgets and different landing pages.
- Invert your monthly budget curve. Whatever you currently spend in May, move a meaningful share of it to December and January. Same annual total, better mix.
- Publish your winter install policy. The 40 degree line, the hand sealing spec, the sign-now-install-spring option. Put it on your site as a page, not a paragraph.
- Build the storm campaign in January and pause it. Landing page, creative, claims explainer, geo targeting ready to redraw.
- Work the claim deadline list every quarter. Storm dates, affected postal codes, filing windows closing in the next 90 days.
Steps one, two and five all need numbers most roofing companies do not have in one place: cost per booked job by month, by channel, by offer. If your leads live in a spreadsheet and your jobs live in QuickBooks, the calendar cannot be built. That is the problem we solve first.
Three mistakes this calendar prevents
Budgeting on a flat monthly average. A plan that says "$3,000 a month on ads" will not describe any actual month. December buys roughly 30% more clicks per dollar than May, and those clicks convert at a higher rate because they are more urgent. Budget on the shape, not the mean.
Judging channels during the wrong month. If you test a lead source in June and it produces expensive, tyre-kicking leads, you may have tested the month rather than the channel. Test in a shoulder month or run the same test twice. The channel-by-channel economics are in what roofing leads actually cost.
Buying more leads to solve a winter revenue gap. If November is slow, the fix is usually a different offer, not more volume at the same offer. Shared and resold lead products get worse in slow months, not better, because fewer buyers means the vendor works the ones it has harder. The math on that is in exclusive versus shared roofing leads.
The underlying point
Every roofing marketing calendar you can currently find is written from the installer's point of view: when can we work, when are we busy, when do we rest. That is an operations calendar, and it is genuinely useful for scheduling crews.
It is the wrong calendar for buying attention. The advertising calendar runs on a different clock, driven by what homeowners search and what competitors bid, and on that clock the roofing year is remarkably flat with its best value concentrated in the months the operations calendar calls dead.
Roofing demand does not take the winter off. Your competitors do. That gap, not the season, is the thing worth building a budget around. Once the timing is right, the question becomes which channels to put the money into, which we rank by cost per closed deal in how to get more roofing leads.
Sources
- WebFX, Seasonal Search Shifts in Home Services Demand, monthly search volume and current cost per click for six roofing keywords, 2023 to 2024 series with a 12-month seasonality index. Monthly totals, blended CPC and the urgent-to-research ratio in this article are calculated from that dataset. webfx.com
- Asphalt Roofing Manufacturers Association, Recommendations for Installation of Asphalt Roofing Shingles in Cold Weather, on the 40 degree Fahrenheit line and hand sealing requirements. asphaltroofing.org
- PABCO Roofing, Can Asphalt Shingles Be Installed in Cold Weather, on manufacturer adhesive requirements and warranty risk below 40 degrees. pabcoroofing.com
- OneClick Code, How Long Do Homeowners Have to Claim Hail Damage on a Roof, on the one-year date-of-loss standard and carrier variation. oneclickcode.com
- Raizner Law, How Long Do You Have to File a Commercial Hail Damage Claim for Your Roof, on the two-year Texas window. raiznerlaw.com
- JobNimbus, Roofing Marketing Strategies: Timing Campaigns for Maximum Impact, source of the "demand peaking in March" claim assessed above. jobnimbus.com
- r/Roofing, project manager at a $3M roofing company on winter versus summer job volume. reddit.com
- r/Roofing, Quebec homeowner in November on contractors being "out for the season" and the resulting quote. reddit.com
- r/Roofing, New Jersey roofer and installers on winter shingle installation above 40 degrees. reddit.com
