What percentage of revenue should a contractor actually spend?
The 7-12% range isn't a made-up rule of thumb, it's roughly what shows up across marketing-spend benchmarks for service businesses trying to grow share, adjusted down for how referral-heavy trades tend to be. A roofer running from storm work and word of mouth can survive on 3-5%. A newer HVAC shop trying to take a top 3 map pack spot away from three established competitors is going to spend closer to 10-12% for a stretch, then dial back once rankings hold.
The number moves with three things: how much of your book is repeat and referral already, how competitive your metro is for your trade, and whether you're defending share or taking it. Defending is cheaper than taking. If you're the shop that's been ranked #1 for "emergency plumber [city]" for three years, your job is maintenance. If you're the new shop trying to unseat that guy, budget like it.
Trade also shifts the number, not just size. A plumber or electrician doing a lot of emergency and repeat work leans harder on being found fast in the moment, which pulls budget toward local SEO and the map pack. A remodeler or roofer selling bigger tickets with longer decision cycles leans harder on the website and organic content doing the convincing over weeks, since nobody hires a kitchen remodel off a five-minute search. Same range, different internal split.
Here's a rough sizing table by annual revenue, assuming a contractor that wants to actively grow, not just tread water:
| Annual revenue | Marketing budget (7-12%) | Typical monthly range |
|---|---|---|
| $500K | $35K - $60K | $3K - $5K/mo |
| $1M | $70K - $120K | $6K - $10K/mo |
| $2.5M | $175K - $300K | $15K - $25K/mo |
| $5M+ | $350K+ | $29K+/mo |
Two flags worth naming. If you're spending under 3% and wondering why growth has stalled, that's usually the answer, not bad luck. If you're spending over 15% and revenue isn't moving, the problem probably isn't the budget, it's the mix or the vendor. More money into a broken funnel just breaks faster. Before adding a dollar, know which of those two problems you actually have.
Where does the budget actually go? The channel mix that works
Total budget only matters once it's split correctly. Home-service marketing breaks into five buckets, and they aren't interchangeable, they're sequential. A website is the asset everything else points traffic at. Organic SEO and local SEO earn free traffic over months. AI search visibility is the newer layer, showing up in AI Overviews and tools like ChatGPT when someone asks a question instead of typing a keyword. Paid ads (Google Ads, Local Services Ads) buy traffic immediately, at a price, for as long as you keep paying.
A workable starting split for a contractor spending in the middle of the ranges above:
- Website (build + hosting): one-time or annual cost, not a monthly grind. This is the foundation everything else sends traffic to.
- SEO (on-site rankings, content): roughly 25-35% of ongoing spend. Slow to start, compounds, gets cheaper per lead over time.
- Local SEO (map pack, GBP, service areas): roughly 15-25%. Usually the fastest-moving piece for a contractor because most searches with local intent hit the map pack first.
- AI search visibility (AI Overviews, GEO/AEO): a newer and currently smaller line, but growing. Most shops in most trades haven't touched this yet, which is exactly why it's cheap ground to take right now.
- Paid ads (Google Ads, LSA, Google Guaranteed): the flexible, turn-on-turn-off piece. Scale it up when you need volume fast, scale it down once organic is doing more of the work.
The order matters more than the percentages. Spend on ads before the website converts and you're paying to send strangers to a leaky bucket. Spend on SEO before the site exists and there's nothing to rank. Get the foundation built, then decide how much paid traffic to layer on top based on how fast you need volume.
Each of these five channels has its own mechanics, its own timeline, and its own way to waste money if it's run wrong. That's on purpose, and it's why this guide stops at the mix and doesn't try to teach you how to run a Google Ads account or write a service page that ranks. Get the split right here, then go deep on the channel that matters most to you right now.
Agency, DIY, or in-house: what changes the number
The same channel mix costs differently depending on who's running it, and this is where a lot of contractors misjudge their own budget. DIY looks free on the invoice and usually isn't, once you count the owner's or office manager's hours learning SEO, wrestling with a website builder, or babysitting an ad account nights and weekends. In-house marketing hires solve the time problem but add payroll, benefits, and turnover risk, and one person rarely covers web, SEO, local, AI search, and ads all at a competent level.
Run the math honestly before deciding. If DIY costs the owner ten hours a week that could otherwise be spent estimating jobs or running crews, put a dollar figure on those hours at what the owner's time is actually worth to the business, not what a marketing hire would cost. Most contractors are surprised how fast that number catches up to a retainer, and it doesn't even count the learning curve of doing something outside your trade for the first time.
An agency (a specialized one, not a generalist) folds most of that into a monthly retainer, which is why the ranges above tend to land there. The tradeoff is real: you're paying margin for expertise and time you don't have to spend. Whether that trade is worth it depends on how much your hour is worth doing the work you're actually licensed and good at, versus fighting with a CMS.
Watch for the generalist trap here specifically. A marketing shop that serves restaurants, retail, and contractors on the same roster is splitting its attention across businesses that get found completely differently. A contractor's buyer searches with local, urgent intent and increasingly asks AI tools direct questions before ever hitting a search results page. A shop that only does home-service marketing has already built the playbook for that. A generalist is building it on your dime.
This decision deserves its own answer, not a shortcut here: see Is a Contractor Marketing Agency Worth It, or Should You DIY? for the full comparison, including where DIY genuinely makes sense and where it quietly costs more than it looks like it saves.
One flag regardless of who does the work: if a vendor (agency or freelancer) won't tell you the dollar split across channels, walk. A contractor should always know how much of the retainer is going to the website, how much to SEO, how much to ads spend versus management fee. Opaque bundles are where budgets get wasted, and they're also where it's easiest to hide a mix that's wrong for a contractor even if it would work fine for a different kind of business.
What to cut first when the budget is tight
Cash gets tight in this business, seasonally and otherwise. When it does, the instinct is to cut marketing first because it's the line item that doesn't scream when you touch it. That instinct is usually backwards, but there's a right order to trim if you have to.
Separate sunk cost from recurring cost before you touch anything. Money already spent building rankings or a site doesn't come back whether you keep paying or not, so it shouldn't drive the decision. The only real question is what happens to the next dollar if you stop spending it, and that answer is different for every channel below.
- Cut paid ad spend last-in, first-out. It's the most flexible line, turn it down or off without losing anything you've built. This is the safest place to trim for a month or two.
- Don't cut the website. It's usually a smaller ongoing cost than the traffic channels anyway, and it's the asset every other dollar points at. Killing it to save a few hundred dollars a month undermines everything else you're still paying for.
- Don't cut SEO and local SEO mid-campaign. These are compounding investments. Pausing them for three months doesn't just pause progress, it often loses rankings you already paid to earn, and re-earning them costs more than holding the line would have.
- Renegotiate scope before you cancel a channel entirely. A good agency would rather narrow the trade or service area you're targeting than lose the account. Ask before you cut.
The pattern to watch for: contractors who cut marketing hard in a slow month, then wonder six months later why the phone isn't ringing when business picks back up. Marketing has lag in both directions. Cuts show up late, and so does the recovery.
There's a seasonal version of this worth planning for instead of reacting to. Trades with a hard slow season (landscaping in the north, some roofing markets in deep winter) can plan the SEO and local SEO spend to hold flat year-round while ad spend flexes with the season. That way the compounding piece never stalls, and the flexible piece does the job it's actually built for.
How to tell if your current budget is actually working
Spend without a way to measure it is just a hope. Every dollar in the mix above should trace to a number you can look at monthly: cost per lead by channel, close rate on those leads, and revenue per marketing dollar. If your agency or in-house team can't produce those three numbers on request, that's the real problem, not the budget size.
A few honest benchmarks for home-service trades: expect organic SEO and local SEO leads to take 4-9 months to show up in volume for competitive terms in a real metro, faster in a smaller or less contested market. Expect a rebuilt site to load in under 2 seconds, slower than that and you're paying for traffic that bounces before it converts. If you're running an audit to baseline where you stand before committing new budget, expect delivery in 1-3 business days, not a multi-week sales process.
The trap to avoid is judging a channel mix on 60 days of data. SEO and local SEO are compounding plays, the first quarter is foundation-laying, not payoff. Ads pay off immediately or they don't, so those you can and should judge fast. Mixing up the timelines is how contractors pull budget from the channel that was about to work and pour more into the one that already peaked.
Ask for cost per lead broken out by channel specifically, not blended across the whole retainer. A blended number can look fine while hiding a paid channel that's bleeding money and an organic channel that's quietly carrying the account. Separate the two and you'll know which lever to pull before the next budget conversation instead of guessing at it.
Close rate matters as much as lead volume, and it's the number contractors track least. A channel that sends fewer, better-qualified leads can beat a channel that floods the inbox with tire-kickers, even at a higher cost per lead. Judge every channel on cost per closed job, not cost per lead, or the budget conversation ends up optimizing for the wrong thing.
A simple way to size your own number this week
Skip the spreadsheet paralysis. Three questions get you close enough to start:
- What's your trailing 12-month revenue? That's your base for the 7-12% range above.
- Are you defending territory or taking it? Defending an established ranking and referral base, budget toward the lower end. Opening a new service area or chasing a competitor's map pack spot, budget toward the higher end.
- What's missing from the foundation? If you don't have a real website, that's a one-time or annual cost to handle before anything else. If the site exists but nobody can find it, SEO and local SEO come next. If the foundation's solid and you just need volume now, that's where ad spend earns its keep.
Run those three answers against the table above and you'll land within a reasonable range without needing six agency quotes to triangulate it. From there, the conversation with any agency worth hiring should be about the mix and the timeline, not just the total.
One more gut check before you commit a number: pull up your top three competitors in your service area and look at what you can see for free. Do they have a real website or a template with their logo dropped in. Are they showing up in the map pack for your core service terms. Does an AI Overview or a ChatGPT answer mention them when you ask a buying question a homeowner would actually type. That quick look tells you more about what you're competing against than any national benchmark, and it should shift your number up or down accordingly.
Since 2008, the trades that have won this haven't necessarily outspent everyone else, they've spent in the right order and stuck with the compounding channels long enough to let them work. That's the whole game. Get the mix right before you argue about the total.