Home-service business owner at a desk reviewing printed monthly numbers with a laptop out of focus in a bright office
  1. Home
  2. Guides: Local SEO, Google Business Profile and AI Search Explained
  3. Local SEO ROI: Cost Per Lead, Booked Jobs and Net Profit (Not Rankings)
Guide · Local SEO ROI

Local SEO ROI: Cost Per Lead, Booked Jobs and Net Profit (Not Rankings)

Rankings are an input. Booked jobs at a cost you can sustain are the scoreboard.

  • Est. 2000
  • One client per market
  • Certified SEO Expert
  • Measured in profit, not positions

Local SEO ROI is not a ranking. It is the profit left after a booked job pays for the marketing that produced it. The honest way to measure it is cost per booked job against your job value and margin, tracked over time. Rankings and calls are inputs on the way to that number, and any agency that reports only rankings is measuring the wrong thing.

Why rankings are the wrong scoreboard

Ranking first for a keyword feels like winning. It is not the same as making money. A number-one position for a term nobody searches, or one that brings tire-kickers instead of buyers, produces nothing you can deposit. Search engine optimization (SEO) that ignores this can look successful on a report and starve a business at the same time.

The chain that actually matters runs in one direction: visibility produces calls, calls produce booked jobs, booked jobs produce net profit. Return on investment lives at the end of that chain, not the start. So the first question is never “where do we rank,” it is “what did a booked job from organic search cost, and did it beat what you pay today.”

The three numbers you need before you spend a dollar

  1. Customer acquisition cost

    What you pay today to get one new customer. If you spend $4,000 a month on pay-per-click and book 20 jobs, your customer acquisition cost is $200. That is the number local SEO has to beat over time, on a per-job basis, to be worth doing.

  2. Net profit per job

    Not revenue, profit. An HVAC company that installs a system at $8,000 with a 30% net margin clears $2,400 on that job. A drain cleaning at $300 with a 40% margin clears $120. Your SEO spend is easy to justify or reject once you know your own number.

  3. Lifetime value

    What a customer is worth across repeat work and referrals, not just the first ticket. A homeowner who calls you for a repair, then a replacement, then sends a neighbor, is worth several times the first job. This is the number that makes patient SEO pay off.

These are the same questions we ask at the start of every engagement. We cannot tell you whether an SEO budget is smart until we know what a customer costs you now and what one is worth. That framing is on our About page and it drives how we scope every program.

How to calculate local SEO ROI

The formula is simple once you track the inputs. Take the net profit from jobs that came from organic search and your Google Business Profile (GBP, the listing behind Google Maps) in a period, subtract what you paid for the SEO work in that period, and divide by that cost. The hard part is not the math. It is attributing the jobs honestly.

InputHow to capture it
Calls by sourceCall tracking that separates Maps, organic and paid, so you know which channel produced the phone call
Booked jobs, not leadsTie each call to whether it became work, because leads that never book are not ROI
Job value and marginYour own numbers per service line, so profit is real, not assumed
SEO cost in the periodThe retainer or project cost for the same window you are measuring
Track these four and the return on your local SEO stops being a guess.

When a roofing company books one extra job a week from better visibility, the cost per acquired job often falls well under $200 a month at the right retainer, and unlike paid ads it compounds. The pages and profile you build this quarter keep producing calls next year without paying again for each click. For how the retainer itself is priced, see the guide on what local SEO should cost.

Why SEO ROI compounds and paid ads do not

Paid search rents attention. Stop paying and the calls stop the same day. Local SEO builds an asset: a profile, a set of ranked pages, a citation and review base that keep answering searches after the work is done. Early on, paid ads usually win on speed and SEO looks slower. Over twelve to twenty-four months the lines cross, because the SEO cost per job keeps falling while the ad cost per job does not.

That same asset now feeds AI search. The content that ranks you is what Google’s AI Overviews and assistants like ChatGPT and Perplexity read to name you, so a dollar spent on a well-built page can return through the map pack, the organic results and the AI answer at once. That is covered on our local SEO and AI search pages.

The scoreboard is cost per booked job

Rankings are an input. Calls are a proxy. Booked jobs at a cost you can sustain is the scoreboard. Frank Apuzzo has run client engagements against that number since February 2000, and reports it plainly rather than hiding behind keyword charts.

Red flags that destroy ROI

  • Rank-number-one guarantees. No one controls Google’s algorithm, so a guarantee is either luck or a low-value keyword.
  • Reports that show only keyword positions with no line connecting them to booked jobs or revenue.
  • An agency that also works for your competitor, which quietly caps how hard anyone works for you.
  • Vanity traffic: sessions and impressions that never turn into calls in your service area.

A neglected website can also sink the return even when the SEO works. If visibility drives calls but the site does not convert them, the problem is the site, not the search. That distinction is worth checking before you blame the marketing.

See the numbers for your market

The free visibility audit shows where you stand, what each gap costs in missed jobs, and what a program would need to cover to pay for itself.

Questions owners ask about local SEO ROI

How long before local SEO pays for itself?

For an established company with a clean site, meaningful call growth usually appears within three to six months, with cost per booked job improving through the first year as the pages and profile mature. Competitive metros take longer than smaller markets.

What ROI should I expect from local SEO?

It depends on your job value and margin, so there is no single figure. The useful test is comparative: does a booked job from organic search cost less than one from your current channels, and does that gap widen over time. If it does, the program is working.

Should I measure leads or booked jobs?

Booked jobs. Leads flatter a report. A hundred leads that book five jobs is a worse outcome than forty leads that book fifteen, and only the booked-job number ties to profit.

The pricing side of this is on what local SEO should cost, and the underlying method is on our local SEO page.

(239) 248-6228 Free visibility audit