Local SEO vs Google Ads:
Which Gets a Contractor More Calls?
A homeowner's water heater quits on a Saturday morning and they grab their phone. Whether your business gets that call comes down to two things competing for the same screen: local SEO, the work that earns your spot on Google's map and in the unpaid listings, and Google Ads, the paid slots at the top of the page. A local SEO campaign is built to win exactly those local searches, while Google Ads pays to jump straight to the front of the same page.
Which one gets you more calls depends on how fast you need them and what trade you are in. Google Ads gets your phone ringing this week but costs more per call, while local SEO takes 6 to 12 months to kick in and then produces calls that keep getting cheaper the longer it runs. The only way to know the right mix for your business is to run the numbers on your own market, so this article walks you through that math in plain terms, shows what each channel really costs per call, and tells you which one we turn on first.
The two channels answer two different questions
Local SEO and Google Ads both put you in front of someone searching for your service, but they run on different timelines and charge you in different ways.
Google Ads is a live auction. You set a budget, Google shows your ad, and you pay when someone clicks. It turns on in a day and turns off the moment the budget runs dry. Local Services Ads are also paid, but they charge you differently: Google bills Local Services Ads per lead instead of per click, and that lead can be a call, a text, or a booking request.
Local SEO is the work of earning placement Google will not sell you. Google is blunt about this: a business cannot request or pay for a better local ranking, and local results are ranked on relevance, distance, and prominence. Buying ads does not move it either. Google states that advertising with Google has no effect on a site's organic presence. So the two channels do not compete for the same slot. They compete for your budget.

Your results page has four money spots, not two
Before you compare the two, look at what a customer sees when they search. A results page for something like "water heater repair" can show your business in four different places: Local Services Ads and regular Google Ads at the very top, which are both paid, the map with three businesses on it (often called the "map pack"), and the plain unpaid listings underneath. Ads buy the spots at the top. Local SEO is how you earn the map pack and the listings below it.
You may have read that most Google searches now end without anyone clicking a result. That is true across all searches, but it is mostly people asking questions, not people trying to hire someone. SparkToro found that about two out of three US searches ended with no click at all, because Google and AI now answer a lot of simple questions right there on the page. That is a problem for your blog, not for your phone. When someone types "AC repair near me," they are trying to hire someone today, and searches like that almost always end in a click on a map listing or an ad. So when you estimate how many calls a channel can bring in, start from the full number of local, ready-to-hire searches in your area. Do not shrink that number because of a no-click statistic that is really about people who only wanted information. (More on how AI is changing search in our breakdown of AI's effect on lead generation.)
When a click does happen on a local search, where does it go? The clearest picture we have comes from a study by BrightLocal, and it is old (2018), so treat it as the rough shape of the page, not today's exact numbers. On a page with no Local Services Ads, the map listings pulled about a third of the clicks and the unpaid listings below took about half. When Local Services Ads showed up at the top, the paid spots grabbed about a quarter of the clicks and everything below lost a little. The pattern is what matters: paid ads skim clicks off the top, the three map listings pull far more than you would expect for their size, and the unpaid listings still take the biggest share.
How to reverse-engineer leads from search demand
Saying "SEO is long-term and ads are fast" tells you nothing about your phone. To make it real, you need numbers. First, one definition so the rest makes sense: a lead means a real call or form fill from someone who wants the work, not just a click or a website visit. With that settled, here is the five-step chain that turns searches into calls:
- Demand. How many people search for your services in your area each month.
- Click share. Out of those searches, how many clicks you can realistically win in a given channel.
- Conversion. Out of those clicks, how many turn into a real call or form.
- Leads. Demand times click share times conversion.
- Cost per lead. What you spend that month divided by the leads it produced.
Step one comes from your own market, not a blog, and if your business has been around a year or more you already own the best tool for it: Google Search Console. It is free, it is almost certainly already connected to your site, and it shows the real searches you appeared for, how many times you appeared (impressions), how many clicks you got, and your average position, going back months. For a term like "plumber columbia sc," that impression count is a first-party read on the demand you are actually seeing, not a third party's estimate.
Two things to keep in mind. Search Console reports best on the terms you already show up for, so a service you rank well on gives you a solid demand read, while one you are buried on deep in the results or missing entirely will show few or no impressions. That gap is useful on its own: a service you know people search for, showing almost nothing in Search Console, is a flag that you are invisible there and leaving those calls on the table. Pull the last 12 months, filter to the queries that describe your services, and combine close variants so you are not counting "ac repair" and "air conditioning repair" as separate demand.
Keyword Planner and paid tools like Ahrefs earn their keep for the searches you do not appear for yet, or when you want to find services you are not targeting at all. Know the tradeoffs before you lean on them, though. Keyword Planner needs a Google Ads account with billing set up, which you may not have if you are still deciding whether to run ads, and Google warns that its figures are rounded and less accurate for small geographic areas, which is exactly the local level you care about. Ahrefs is up front that only Google has the exact counts and its own numbers are estimates. Use them to spot gaps and new opportunities, and trust your own Search Console numbers for the terms you already show up for. (If keyword research is new to you, start with how to pull your local keyword demand.)

A worked example on the same 1,000 searches
Say your Search Console data shows about 1,000 searches a month for your core service terms in your service area. That number is a stand-in so the math is easy to follow. Use your own figure when you run it. To compare the two fairly, line up a $1,550 monthly ad budget against a $1,550 monthly SEO retainer, then count what you actually pay to have each one run. The figures below are rounded and illustrative, pulled from current home-services benchmarks, not a promise for your business.
| What you pay for | Google Ads | Local SEO |
| Ad budget (goes to Google) | ~$1,550 | none, this is unpaid search |
| Fee to run it | ~$750 to manage the ads | ~$1,550 retainer, which is the work itself |
| Total you pay each month | ~$2,300 | ~$1,550 |
| What that buys | ~200 clicks (about $8 each) | ~275 clicks, once you rank |
| Turn into a call or form | 7.3% convert, so ~14 leads | 4.8% convert, so ~13 leads |
| Your real cost per lead | ~$160 | ~$120 |
| When the leads arrive | Within days, then capped by the budget | After 6 to 12 months, then the cost per lead keeps dropping |
Two things jump out, and both surprise people. First, the cost-per-lead benchmarks you see online, like that $91 average, count ad spend only. They leave out the fee to whoever runs the campaign, so your true cost for an ad lead is higher than the published number, closer to $160 here than $91. Second, once you count that fee, local SEO comes in lower per lead at maturity, around $120, because the whole cost is the retainer and none of it goes to a platform. What still separates the two most is timing and headroom: ads bring leads within days but stop when the budget stops and can be lumpy, while local SEO brings almost nothing for the first 6 to 12 months and then keeps getting cheaper as your rankings and lead count climb.
A few notes on where those numbers come from and how they move.
The paid side. LocaliQ's benchmark of more than 3,200 home-services search campaigns reported a $7.85 average cost per click, a 7.33 percent rate of clicks turning into leads, and an average cost per lead of $90.92 across home services, and WordStream's 2026 benchmark put Home and Home Improvement at $8.33 per click and the same $90.92 per lead. Those are ad-spend-only numbers, which is why the table adds a fee on top for someone to run the campaign. The $750 there is illustrative. Agencies usually bill ad management as either a percentage of your spend or a flat monthly minimum, so at a small budget like this one the fee looks like a big slice and then shrinks, as a share, the more you spend. However it is charged, leaving it out is how the paid channel ends up looking cheaper than it really is. Cost per click divided by conversion rate is the quick check on the ad-spend piece: $7.85 divided by 7.3 percent is about $107 a lead before management. Your trade swings that ad-spend number a lot:
| Home service category | Avg. cost per click | Click-to-lead rate | When the leads arrive | Local SEO |
| All home services (average) | ~$1,550 | When the leads arrive | When the leads arrive | none, this is unpaid search |
| Home & Home Improvement | ~$750 to manage the ads | When the leads arrive | When the leads arrive | ~$1,550 retainer, which is the work itself |
| Plumbing | ~$2,300 | When the leads arrive | When the leads arrive | ~$1,550 |
| Roofing & gutters | ~200 clicks (about $8 each) | When the leads arrive | When the leads arrive | ~275 clicks, once you rank |
Local Services Ads run on a separate meter. WordStream cites an average Local Services Ads cost per lead of about $60, though it does not publish the sample or trades behind that number, so treat it as a rough marker. One thing worth keeping straight: a Local Services Ads lead is a charged contact, not a booked job. WordStream warns plainly that an LSA lead is not necessarily work you won.
The bigger issue we have seen with Local Services Ads is that the leads do not show up on a schedule. We have had clients go a couple of weeks with barely a call, then burn through half a month's budget in two days. On the surface the listing looks fine, with solid impressions and a steady flow of reviews, but the calls arrive in bursts. That makes Local Services Ads hard to count on as a steady source of leads by themselves, even when the average cost per lead looks good on paper.
The SEO side. The 275 clicks come from capturing roughly a quarter to a third of the clicks on that 1,000-search pool once your listing earns a top map spot and a strong organic position, using BrightLocal's dated page shape as the guide. At the 4.8 percent conversion rate Ruler Analytics reported for organic traffic in Construction and Engineering, that is about 13 calls or forms. The $1,550 is a typical retainer: Ahrefs surveyed 439 providers and found an average local SEO price of $1,557 a month, with about 42 percent charging between $250 and $1,000. The catch is the timing in that last table row. In our experience, good local SEO usually takes 6 to 12 months to produce steady lead flow, so for much of that first year you are closer to zero leads while still paying the retainer. That is roughly $9,000 to $19,000 in retainer before the channel is reliably pulling its weight. Once it is, the fixed retainer starts dividing into a growing pile of leads, and that is what pulls the cost per lead down month after month while the ad number holds steady. That wait is the real price of local SEO, and it is the biggest reason we do not ask a contractor to lean on it alone while it ramps.
What each channel really costs you over time
The sticker prices hide the real difference, which is timing.
Google Ads bills every month you want leads, and the leads stop the day the budget stops. That is not a knock on the channel. It is measurable, fast, and honest: you pay $90 to $230 for a lead depending on your trade, and you get it now.
Local SEO front-loads the cost and delays the payoff. "SEO is free" is one of the most expensive misconceptions in this business. Google does not charge you to appear organically, but the work to get there is not free, and it is not instant. A poll of 3,680 SEO professionals put the typical expectation at three to six months, while Ahrefs cautioned there is no universal timeframe. That runs optimistic for local service work. In our experience it is closer to six to twelve months before good local SEO produces steady leads, and longer in a competitive trade or a crowded metro. Rankings also favor age. In Ahrefs' analysis of 1.3 million US keywords, 72.9 percent of top-ten pages were more than three years old and the average first-place page was five years old. SEO is also not a one-time setup. Rankings move as competitors work, so the retainer keeps buying maintenance, not just a one-time climb.
So the trade is real money on both sides: ads buy you speed at a fixed price per lead, and local SEO buys you a lower, falling cost per lead that you wait 6 to 12 months to start collecting. If your phone needs to ring this quarter to make payroll, that timing difference is the whole decision.
Which one we turn on first
For a contractor who needs calls now, we run Google Ads first, Local Services Ads included, and we start the local SEO work the same week underneath it.
The reason is not that ads are better. It is that the two channels feed each other, and the order matters. Ads produce calls in days while SEO is still invisible, so the phone rings while you wait. Just as useful, the ad account hands you real data: which search terms actually turn into calls in your market, at what cost. That data tells you exactly which service pages and map-pack signals your SEO should build first, so you are not guessing. We have watched a client book calls inside the first two weeks of turning ads on, while the local SEO we started for them the same week did not move the needle until months later. Once the organic leads start showing up, you can dial the ad budget back and let the cheaper channel carry more of the load.
If you want a partner to run that whole sequence, the Google Ads up front and the local SEO building underneath, and to report it back in calls and cost per lead instead of clicks, that is exactly what we do.
Run the numbers on your own market
Every figure above is a benchmark, and benchmarks are a starting point, not your business. The fastest way to be wrong is to average a plumbing cost per lead against a roofing conversion rate and call it "the industry." Keep them separate and replace them with your own numbers as soon as you have them.
That means tracking. You cannot compare channels you cannot measure, so you need every call and form tied back to the channel that produced it: call tracking, form tracking, Google Ads conversions, and your Google Business Profile insights. One more reason to measure the phone and not just the click: Invoca's 2026 benchmark found that 64 percent of businesses never asked the caller to book. A lead you paid for and then fumbled on the phone costs the same as one you closed.
Whichever way the math points for your trade and your city, the decision stops being a guess once you run demand through click share, conversion, and cost per lead for both channels. If you would rather hand that analysis to someone who does it every day, see how we build local SEO campaigns around calls and cost per lead, and we will show you the projected lead flow before you spend a dollar.