The four line items that make up a real budget
“Marketing cost” isn't one bill. It's usually four separate lines, and contractors who budget for only one or two of them are the ones who end up with a fast site and no rankings, or great rankings and a site that doesn't convert the traffic once it arrives.
- Website (one-time, then light upkeep). The foundation everything else points to. A custom-coded site built to convert (clear calls, fast load, structured for AI-search citation) is a project cost, not a monthly one, though hosting and occasional updates continue after launch.
- SEO and content (monthly, compounding). Organic rankings for your service and city terms. This is the slowest-starting, longest-lasting line. It builds pages, authority, and structured content that both Google and AI-search answer engines can cite.
- Local SEO / Google Business Profile / map pack (monthly, often bundled with SEO). Getting into the top 3 map results when someone searches “[service] near me.” For most home-service trades, this is where a large share of ready-to-call traffic actually converts.
- Paid ads: Google Ads and Local Services Ads (monthly, plus ad spend on top of management fee). The lever for immediate volume. Turns on fast, turns off fast, and stops producing the moment you stop paying for it.
AI-search visibility (showing up when someone asks ChatGPT, Gemini, or an AI Overview “who's a good roofer near me”) isn't a separate line item so much as a byproduct of doing SEO, local SEO, and website structure correctly. It rides on the same structured, authoritative content those channels already require. Contractors trying to buy it as a standalone service are usually being sold something that doesn't exist yet as its own discipline.
Most established contractors run all four lines at once, in different proportions depending on goals. A contractor with strong existing rankings might run light SEO upkeep and heavier paid ads to fill a capacity gap fast. A contractor starting from page three of Google runs the opposite mix: heavier SEO and local investment, lighter ads, because there's more ground to make up organically before ads alone can carry the volume.
What a custom contractor website actually costs
Website cost varies more by scope and platform than almost anything else in this budget. A templated site thrown together on a page builder costs less upfront and costs more over time in lost conversions, slow load, and rebuilds every time you need something changed. A custom-coded site (no WordPress, no page-builder lock-in) costs more upfront and stops bleeding money on hosting fees, plugin conflicts, and “call your web guy and wait two weeks” delays.
What drives the price inside that range:
- Number of service and location pages. A single-service contractor in one city needs far less than a multi-trade company covering a 12-town service area. Page count is often the single biggest cost driver, because each page needs to be genuinely useful, not duplicated boilerplate with the city name swapped.
- Whether it replaces or rebuilds on an existing site. Sometimes an existing site has enough SEO equity that a rebuild on top of the current architecture is faster and cheaper than starting over. Sometimes the old site is holding you back structurally and a clean rebuild is the faster path. An audit tells you which, not a guess.
- Integrations. Booking calendars, financing widgets, review-display feeds, and CRM connections all add scope. A contractor who needs the site to actually schedule jobs, not just collect a phone number, is buying more than a brochure.
What doesn't move the price much: how “fancy” you want it to look. Flashy animation and stock photography don't cost more to build well; they cost more when they're built badly and have to be redone. The real cost drivers are structure, page count, and integrations, not aesthetics. A site built once, correctly, on your own domain and hosting (no proprietary platform lock-in) is a cost you pay once and maintain lightly for years, not a recurring subscription you're stuck renting forever.
SEO and local SEO: the monthly range and why it varies so much
SEO pricing spreads wider than any other line because “SEO” for a plumber alone in a small county and “SEO” for an HVAC company fighting five national franchises in a metro area are not the same job, even though both get called the same thing.
| Market competitiveness | Typical monthly range | What it's buying |
|---|---|---|
| Low competition (small city, few established competitors) | Lower end of the market | Core service/location pages, Google Business Profile management, basic citation cleanup, steady content additions |
| Moderate competition (mid-size metro, several established competitors) | Middle of the market | Broader page coverage across service area, more frequent content, review generation program, ongoing technical fixes |
| High competition (major metro, franchise/national competitors, storm-driven roofing markets) | Upper end of the market | Full cluster of service and location pages, aggressive local SEO, link and citation building, faster content cadence to keep pace |
Timeline matters as much as price here. Local SEO and map pack movement tends to show up in 30-90 days. Organic rankings for competitive service-area terms typically take 4-9 months to build. Anyone quoting a flat “$X gets you page one in 30 days” for a genuinely competitive term is either lying or planning to use tactics that get penalized later, and you inherit that risk, not them.
The other thing that changes the number: whether you're catching up or maintaining. A contractor with a decade of reviews and rankings already in place can often maintain position for less than a contractor starting from zero trying to close the same gap in a single year. Rebuilding lost ground costs more than holding ground you already own, which is the same math that shows up in the budget-percentage side of this conversation.
Google Ads and Local Services Ads: management fee versus ad spend
Paid ads have two separate costs that get confused constantly: the management fee (what an agency charges to build, run, and optimize the campaigns) and the ad spend itself (what you pay Google directly for clicks and calls). Both need budgeting, and a contractor who only asks about the management fee is missing half the number.
Ad spend for home-service trades varies enormously by cost-per-click in your specific market and service. A cost-per-click that looks expensive for a service call can be a bargain for a job worth tens of thousands of dollars, and a cost-per-click that looks cheap can still be a bad deal if the traffic never converts. Judge ad spend by cost per booked job, not cost per click, or you'll make the wrong call every time. Two contractors in the same city can pay wildly different amounts per click and both be right, because one is chasing $300 service calls and the other is chasing $25,000 remodels.
- Local Services Ads (Google Guaranteed) charge per lead, not per click, and put your business at the very top with a trust badge. Often a strong starting point for emergency-call trades (HVAC, plumbing, electrical) because it matches how people search when they need someone today, and the per-lead pricing makes the math easier to track against jobs actually booked.
- Google Ads (search campaigns) charge per click regardless of whether it converts, need ongoing negative-keyword and bid management to avoid wasted spend, and work well for higher-consideration trades (remodeling, roofing replacement) where the searcher is comparing a few options before calling anyone.
A reasonable rule of thumb: don't run paid ads as your only channel. Ads produce volume exactly as long as the spend runs and stop the day it doesn't. Contractors who lean entirely on ads and skip SEO end up rebuying the same traffic forever instead of building an asset that keeps producing after the campaign budget tightens in a slow month. The contractors who get the most out of paid spend are usually the ones already ranking well organically, because the ad and the organic listing reinforce the same brand impression in the same search results page.
Budget tiers: what a starter, growth, and aggressive month looks like
Rather than one number, think in tiers based on what you're trying to accomplish this year.
| Tier | Who it fits | What's in the mix |
|---|---|---|
| Starter / hold steady | Established reputation, quiet-to-moderate competition, mostly protecting position | Website upkeep, core SEO/local SEO maintenance, light or no paid ads |
| Growth | Adding a crew or territory, needs more volume than organic alone produces yet | Full SEO/local SEO program, meaningful Google Ads or Local Services Ads spend, active review generation |
| Aggressive / catch-up | New location, new trade line, or clawing back share from a competitor who out-marketed you | Heaviest content and local SEO push, front-loaded paid spend, website rebuild if the current site is holding things back |
Most contractors move between tiers over a few years, not stay in one forever. A company that spends a year in the aggressive tier building rankings and reviews from a cold start often drops back to growth or starter once that foundation exists and just needs upkeep. Treat the tier as a phase, not a permanent budget line.
Where contractors overspend, and where they underspend
Two patterns show up constantly, and they cost contractors money in opposite directions.
Overspending: Paying premium ad spend to drive traffic to a website that doesn't convert it. A slow-loading, cluttered site with no clear call-to-action turns expensive clicks into wasted budget. If your site takes several seconds to load or buries the phone number, fixing the site is usually a better use of the next dollar than buying more traffic to send at it. Sites should load in under 2 seconds; slower than that and you're paying to lose visitors before they see anything. The math is simple and brutal: a $60 click that bounces off a slow homepage is a worse buy than a $30 click that lands on a page built to convert, and no amount of extra ad budget fixes a conversion problem.
Underspending: Treating the website as a one-time 2019 expense and never touching SEO, local SEO, or AI-search structure again. Search engines and AI-search answer engines both reward freshness and depth. A site that hasn't been meaningfully updated in years slowly loses ground to competitors who keep adding pages, reviews, and structured content, even if nothing about your service changed. The company doesn't feel it happening month to month. It shows up eighteen months later as fewer calls and a puzzled owner asking why the phone got quiet.
A third, quieter pattern: budgeting for acquisition and forgetting reputation. Every dollar spent getting a new visitor to the site is partly wasted if there's no active plan for turning finished jobs into fresh Google reviews. Review count and recency feed both the map pack algorithm and the trust signal a homeowner reads before calling. It costs almost nothing beyond a consistent ask, and skipping it quietly taxes every other line in this budget.
The honest middle: budget for the website as a real investment (not a favor from a nephew who knows HTML), then budget monthly for the ongoing work that keeps you visible after launch. A free visibility audit is the fastest way to see which side of that line you're currently on before committing new spend either direction.
Costs contractors forget to budget for
Beyond the four headline lines, a handful of smaller costs get left out of the plan and then show up as surprises.
- Photography and video. Stock photography reads as generic and hurts trust; real jobsite photos of your crew and finished work do more for conversion than most copy changes. This is often a modest, occasional cost, not a monthly line, but it's rarely zero for a contractor serious about the site.
- Review generation tools or process. Whether it's a simple text-after-job habit or a dedicated tool, getting a steady flow of fresh Google reviews takes either a process or a paid tool. Skipping it doesn't save money so much as defer a cost into slower map pack movement later.
- Ongoing hosting and domain. Small relative to everything else, but a custom-coded site on your own hosting and domain has a real, modest annual cost that a “free” templated builder tries to hide inside a bigger monthly subscription instead.
- Seasonal spend spikes. Storm-driven roofing markets, spring landscaping rushes, and summer HVAC emergency calls all see real cost-per-click increases during peak demand windows. A flat monthly ad budget that doesn't flex for season either overspends in slow months or underspends exactly when demand (and competitor spend) peaks.
- The cost of doing nothing. Hardest to put a number on and easiest to ignore: every month a competitor invests in SEO, reviews, and AI-search structure while you don't is a month they compound and you don't. That gap doesn't show up on an invoice. It shows up in the map pack.
None of these need to break a budget. They need a line item, even a small one, so they don't get discovered the hard way when a competitor's site starts outranking yours for reasons that turn out to be photography, freshness, and reviews rather than anything exotic.