How to actually compare channels: cost per booked job, not cost per lead
Every channel has its own dashboard, and every dashboard is built to make that channel look good. Google Ads shows clicks and impressions. Your GBP shows views and calls. An SEO report shows keyword rankings. None of those numbers pay your crew. The only number that lets you compare a paid click to an organic ranking to an AI-search citation on equal footing is cost per booked job: total spend on that channel divided by jobs it actually put on your schedule.
That number forces an honest comparison because it accounts for the whole chain, not just the front end. A cheap click that never calls costs more than an expensive click that books. A GBP that shows up in the map pack but has three-star reviews sends calls that never convert. An AI Overview citation with no phone number visible on the page it links to sends a click that bounces. Cost per booked job is the great equalizer: it does not care how the lead arrived, only whether it turned into work.
Getting to that number takes basic tracking most shops skip. You need to know, per channel: how many calls or form fills came from it, how many of those were real (not wrong numbers, not other trades, not out of area), and how many booked. Call tracking numbers per channel, UTM tags on paid and organic links, and a habit of asking new customers how they found you get you most of the way there without expensive software.
| Channel | Typical payback speed | What it costs you | What happens if you stop |
|---|---|---|---|
| Local Services Ads | Days to weeks | Per lead, not per click | Leads stop that day |
| Google Search Ads | Days to weeks | Per click, whether it books or not | Leads stop that day |
| Google Business Profile / map pack | Weeks to a few months | Time (reviews, posts, photos) plus optional management | Slow fade, not a cliff |
| SEO / organic rankings | 4-9 months for competitive terms | Build cost plus ongoing content | Rankings hold for a while, then erode |
| AI search visibility | Rides the SEO timeline | Shares the SEO build | Fades with the underlying content |
With that frame set, here is what each channel actually does with your money.
Paid search and Local Services Ads: the fast dollar, rented not owned
Paid is the channel with the shortest, clearest feedback loop. You fund an account, ads start showing this week, and within days you have real cost-per-click and cost-per-lead numbers to judge. For a contractor who needs the phone ringing next Tuesday, nothing else moves that fast. That speed is the entire case for paid, and it is a real one.
Local Services Ads (LSA) and Search Ads pay back differently, and the difference matters for ROI math. LSA charges per lead, meaning a real call or message, not per click. You do not pay for a curious click that bounces. Search Ads charge per click regardless of outcome, so the ROI depends entirely on how well your landing page and intake convert that click into a call. Where LSA is available for your trade and market, it is usually the better paid dollar first, partly because the Google Guaranteed badge lifts trust and booking rate on the same lead.
The math that decides whether paid ROI is good or bad: cost per booked job against profit per job. A four-figure roofing or HVAC replacement job can absorb an expensive click and still profit. A thin-margin, one-off service call has a much harder time. Trades with bigger tickets get better paid ROI almost by default, because the job pays for more failed clicks along the way.
The catch that tanks paid ROI more than any market condition: paid is rent. The day you stop funding the account, the leads stop that day. There is no residual. Every dollar you put into paid this year buys zero leads next year unless you fund it again. That is not a flaw, it is the deal, and it is why paid should almost never be the only channel a contractor runs. It is the fast floor, not the foundation.
Common leaks that quietly wreck paid ROI: no negative keywords (you pay for DIY searches and job-seekers), ads pointed at a homepage instead of a dedicated landing page, and no call tracking so nobody can actually calculate cost per booked job. Fix those before blaming the channel.
Google Business Profile and the map pack: the cheapest ROI most contractors leave on the table
Dollar for dollar, a well-run Google Business Profile is usually the best ROI a contractor has access to, because the profile itself is free and the map pack sits right where local homeowners look first: top 3 spots above the organic results for any "near me" or city-plus-trade search. The catch is that "free" does not mean "no work." Ranking in the map pack takes consistent inputs: reviews (volume, recency, and how you respond to them), accurate categories and service areas, regular photos, and NAP consistency (name, address, phone matching everywhere you are listed).
The ROI clock on GBP sits between paid and full SEO. A profile that is claimed, filled out, and actively getting reviews can move in the map pack within weeks to a couple of months, faster than it takes competitive organic keywords to rank, because local pack ranking weighs proximity and review signals as heavily as it weighs the kind of content-and-links work that organic SEO requires. For a contractor who has been in business a while but never touched their profile, this is often the single highest-ROI hour of work available: claiming it, correcting categories, and starting a review ask habit costs nothing but time.
Where GBP ROI breaks down is neglect and inconsistency. A profile with old photos, no responses to reviews (especially the bad ones), or a service area that does not match where you actually work will underperform competitors who tend theirs weekly. This is also the channel most exposed to a bad review dragging down conversion even while rankings hold, because homeowners read the map pack before they click through.
The other reason GBP ROI matters beyond the map pack: it is now a primary source AI answers pull from when naming local contractors. A thin, stale, or inconsistent profile does not just cost you map pack position, it costs you the AI-search citation too. Treat it as infrastructure, not a checkbox, and the ROI compounds across both channels for the price of an hour a week.
SEO: the slowest payback, the only one that compounds
SEO is the channel contractors are most often sold wrong. It is pitched as fast, and it is not, and every contractor who was told it would rank in six weeks and did not is right to be skeptical. Honest timeline: 4-9 months for competitive terms to move meaningfully, longer in crowded metro markets, faster for a specific service-plus-suburb long-tail term than for a broad citywide head term. Anyone quoting weeks is either talking about the map pack (a different mechanism) or setting you up for a conversation where you feel cheated in month three.
What that time buys is the thing paid can never buy: a ranking that keeps producing calls without a recurring click charge. A page ranking on page one for "roof replacement [city]" keeps sending organic traffic in month fourteen the same way it did in month five, for the cost of maintaining it, not the cost of funding it fresh every month. Run the ROI math over a year or two instead of a quarter and SEO usually wins on total cost per booked job, even though it loses badly on speed.
SEO ROI for a contractor site is mostly a function of depth and specificity, not raw page count for its own sake. A site with real pages for each service in each service area, built around the actual questions homeowners ask, out-earns a five-page site every time, because it can rank for the long tail of specific searches ("emergency water heater replacement [suburb]") that a thin site never touches, and that long tail often converts better than the broad head term because the searcher already knows exactly what they need.
What SEO ROI is not: guaranteed, or instant, or independent of the rest of the business. A site that ranks well but has no phone number above the fold, no fast-loading pages (under 2 seconds load is the bar), or a broken quote form is spending months building traffic that leaks out the bottom. SEO earns the click. Everything after that click still has to convert it, same as paid.
The compounding case for SEO ROI: unlike paid, a page built well in year one keeps working in year three with light upkeep, while paid spend in year one buys nothing in year three unless refunded. That is the entire argument for building it even though it is slower.
AI search visibility: riding the SEO investment, not a separate line item
The newest channel in this comparison is not really a separate budget line: AI search visibility (showing up when a homeowner asks ChatGPT or reads a Google AI Overview "who should I call for X") draws from largely the same inputs as SEO and your GBP. Clear service pages, specific answers to specific questions, consistent business information, and a Google Business Profile that names you correctly all feed both the organic ranking and the AI citation at the same time. That means AI search ROI mostly shows up as a multiplier on work you would want to do anyway, not as its own separate spend.
Where AI search changes the ROI conversation is the traffic pattern. An AI Overview or a chatbot answer can name a contractor and never send a click at all: the homeowner gets the recommendation, sees the phone number, and calls, without ever landing on your site. Judging that channel by session counts in analytics undercounts it badly. The ROI signal to actually watch is direct calls and "how did you hear about us" answers that do not map to a tracked click, plus branded search volume for your company name, which tends to rise when AI answers are naming you consistently.
Because AI visibility rides the SEO and GBP build, its payback timeline tracks alongside them rather than running its own separate clock: pages built with clear, specific, structured answers earn both organic rankings and AI citations roughly together, and a stale or thin site loses both roughly together. There is no shortcut that gets AI visibility without the underlying content and profile work, no matter how the pitch is framed.
The practical ROI takeaway: do not budget for AI search as a fourth, separate line next to SEO, paid, and GBP. Budget for the content and profile work that earns SEO rankings, done to a standard specific enough to also earn AI citations, and treat the AI visibility as a return you get on top of the SEO spend rather than a new spend you have to fund separately.
The order that actually maximizes total ROI across channels
Channel ROI is not just about which one performs best in isolation, it is about the order you fund them in, because each channel changes what the next one costs. Get the sequence backward and you pay full price for lessons the cheaper channels would have taught you for free.
Start with the free and near-free infrastructure: a claimed, filled-out, actively-tended Google Business Profile, and a review-ask habit built into how every job closes out. This costs time, not budget, and it is the floor everything else stands on. A contractor who skips this and jumps straight to paid is buying clicks that land on a thin profile with old reviews, which lowers the booking rate on every dollar spent downstream.
Layer in paid next, specifically because it is fast and it teaches you something SEO cannot teach you quickly: which services and which service areas actually convert into booked jobs at a price you can live with. Run Local Services Ads first where your trade and market qualify for it, fill the gaps with Search Ads, and track cost per booked job by service and by area from week one. This is data, not just leads, and it is the cheapest market research you will ever buy because someone else's clicks are paying for the answer.
Point SEO and content at what paid just proved. Once you know which services and areas convert, that is where the 4-9 month organic build should go first, not a guess about what might rank. This turns the slowest channel into the one aimed most accurately, instead of a shot in the dark.
As pages start ranking and the GBP is dialed in, AI search visibility follows close behind on the same foundation, without a separate budget line. Then, and only then, trim paid spend on the terms where organic and AI visibility have taken over, and redirect that paid budget at the next gap: a new service, a new area, a slower season.
That order, infrastructure, then paid, then organic aimed by paid's data, then AI visibility riding along, is how a contractor gets the fast dollar this quarter and the compounding asset by next year, instead of choosing one and wondering why the other channel never got funded. It is also exactly the math we walk through, channel by channel and with your real numbers, on a strategy call.