Now optimizing for AI search , ChatGPT · Gemini · Perplexity · Google AI
✦ ROI · Measurement

How to Measure Local SEO ROI, Calls, and Qualified Leads

Short answer: Measure local SEO ROI by tracking outputs, not rankings: count every lead path (Google Business Profile calls, call-tracking numbers, website forms), separate qualified calls from tire-kickers, then run the jobs-won formula — revenue from SEO-booked jobs divided by your SEO spend. Add an intake question to catch AI-referred leads your analytics miss.

Your agency sends a report: rankings up, impressions up, traffic up. Your bank account says something quieter. Somewhere between those two stories is the only number that matters for a trade business: how many jobs did SEO put on the schedule, and what were they worth?

This is the measurement system that answers that question. It starts with tracking the right inputs, separates qualified calls from noise, runs the jobs-won formula on your own numbers (no borrowed benchmarks, no invented percentages), and ends with the intake question that catches the AI-referred leads your analytics cannot see.

Track The Right Inputs

ROI is outputs divided by spend, but you cannot compute outputs you never measured. Before the math, the plumbing: make sure every lead path is actually being counted.

  • Profile calls. Your Google Business Profile reports call volume in its performance data. Google's guidance on local ranking also explains why a complete profile earns more of these interactions in the first place.
  • Website calls via a tracking number. Use a call-tracking number on your website and ads only, and keep your real number identical everywhere public. Swap the number on your profile or directories and you trade attribution for rankings.
  • Form fills and quote requests. Every form should tag its source page. A "request a quote" from your drain-cleaning page is a different asset than one from your homepage.
  • Direction requests. Nobody asks for directions to a plumber for fun. Treat these as high-intent proxy leads in your monthly count.
  • Search Console queries. Google's SEO Starter Guide covers the measurement basics; use Search Console to confirm which queries actually bring visitors before you credit SEO for the calls.

Reconcile weekly: tracking-number rings plus profile call estimates plus form fills. That is your gross lead count. It is not ROI yet, because gross counts lie. Which brings us to the step everyone skips.

Separate Qualified Calls From Noise

A call is any ring. A qualified lead is a caller with a real job in your service area who can afford it. Price-shoppers, wrong numbers, vendors selling you something, and callers from towns you do not serve all inflate call counts without adding a dollar of revenue. Measuring ROI on raw calls overstates results, and it is how agencies make mediocre campaigns look good.

  • Log every call's outcome. Booked job, estimate scheduled, price-shopper, wrong number, out of area, vendor. Five seconds per call in a spreadsheet or CRM.
  • Define "qualified" in writing. Real job, inside your service area, within your price range. If it fails any of the three, it is not a lead.
  • Track your qualification rate. Qualified calls divided by total calls. Watch this number as closely as call volume; a rising call count with a falling qualification rate is a targeting problem.
  • Track close rate separately. Booked jobs divided by qualified calls. This is a sales number, not an SEO number, but SEO gets blamed for it constantly.

The discipline matters because of what comes next: the formula only works on qualified calls and booked jobs. Garbage in, fantasy out.

Jobs, not clicks

The only ROI formula a trade business needs: (jobs won × average job value) minus total SEO spend, divided by total SEO spend. Everything else is a vanity metric.

The Jobs-Won Formula

Here is the whole thing, with your numbers:

Revenue from SEO = jobs won from SEO × your average job value. Jobs won, not calls. Average job value, not the biggest job you ever sold. Be conservative: use the trailing three months.

ROI = (revenue from SEO − total SEO spend) ÷ total SEO spend. Total spend includes the retainer or agency fee, plus your own time valued honestly, plus any tools. If you spend ten hours a month on review follow-ups, that is ten hours of your billable rate, and hiding it flatters the math.

Two derived numbers run your decisions month to month:

  • Cost per qualified lead: total spend ÷ qualified leads. This tells you what each real opportunity costs.
  • Cost per booked job: total spend ÷ jobs won. This is the number to compare against your average job value. If cost per booked job is a small fraction of job value, your SEO is working, whatever the rankings report says.

Notice what is missing: no industry benchmarks, no "average contractor ROI". A $150 cost per lead is expensive for a $120 gutter cleaning and cheap for a $12,000 roof. Your numbers are the only ones that matter. If you want the spend side of the equation, our contractor pricing guide covers what each tier actually buys.

Not sure your SEO is earning its keep? Our free audit measures what your current setup produces in calls and AI visibility against the top 3 in your market, with the math done for you. Get the free audit →

Payback Timelines

How long until the formula turns positive? For trade businesses, the honest pattern: calls start lifting by month three, and top-three map-pack positions average around 90 days of consistent work. That is the investment period. After that, the curve compounds: reviews keep arriving, pages keep aging, and the same monthly spend buys more than it did at the start.

Payback speed depends mostly on job value. A plumber averaging $600 a job needs a handful of booked calls a month to break even on a typical retainer. A landscaper averaging $80 a job needs far more volume, which means the timeline stretches. This is why the "how long does it take" question has no universal answer, and our timeline guide breaks it down trade by trade.

One warning: expect compounding, not a spike. Local SEO is a flywheel, not a faucet. Anyone promising page-one paybacks in two weeks is selling the kind of guarantee Google itself warns against.

Catching AI-Referred Leads

Here is the measurement gap nobody talks about. When ChatGPT or Gemini recommends your business and the homeowner calls, your analytics see an untracked call. There is no referrer, no UTM, no label. AI-referred leads are invisible to every dashboard, which means businesses under-credit the fastest-growing lead source in local search.

  • Script the intake question. Every caller gets asked: "How did you hear about us?" Every form gets the same question.
  • Ask about AI specifically. "Did ChatGPT, Gemini, or another AI tool recommend us?" People answer this happily; you just have to ask.
  • Log "AI assistant" as a CRM source. Give it its own bucket, separate from Google search and referrals.
  • Review it monthly. The share of AI-sourced leads is the number that justifies your AI-visibility work, and it is growing.

This is low-tech on purpose. Call tracking cannot label a ChatGPT referral, but a human asking one question can. The businesses that measure AI leads are the ones that will keep investing in AI visibility while competitors argue about whether it exists.

The Monthly Scorecard

Infographic: Measure Local SEO ROI in 5 Steps
Five steps to measure local SEO ROI through calls and qualified leads.

Put it all on one page, once a month, and the ROI conversation with yourself (or your agency) gets very short. Five numbers:

  • Total calls + forms + direction requests. Gross lead volume, all sources measured above.
  • Qualified leads and qualification rate. The number that survives your definition.
  • Jobs won and revenue. Booked from SEO-attributed leads × average job value.
  • Cost per booked job vs. average job value. The single ratio that says "working" or "not working".
  • AI-sourced leads. Your intake-logged count, the growth line nobody else is watching.

Run it for three months and you will know more about your SEO's value than any rankings report ever told you. And if an agency ever pushes back on being measured this way, that tells you something too. Our agency autopsy shows what bad measurement has cost other shops.

LM

LeadingMaps

Local SEO exclusively for home-service trades, top-3 Google Maps rankings plus AI-search optimization, measured in calls and backed by a 90-day results guarantee. We only take 5 new clients per month.

FAQ

ROI Questions, Answered.

Most trade businesses see calls lift by month three, with top-three map-pack positions averaging around 90 days. Payback depends on your job value: a plumber averaging $600 a job needs far fewer booked calls to break even than a landscaper averaging $80. Track it monthly against your own spend, and expect compounding, not a spike.

A call is any ring; a qualified lead is a caller with a real job in your service area who can afford it. Price-shoppers, wrong numbers, vendors, and out-of-area callers inflate call counts without adding revenue. Measuring ROI on raw calls overstates results; measuring on qualified calls, then booked jobs, tells you what SEO actually earns.

Yes, with one rule: keep your real number consistent everywhere public, and use the tracking number only where you can control the display, like your website or ads. Your name, address, and phone number must stay identical across directories, or you will trade attribution for rankings. Reconcile weekly: tracking number rings plus profile call estimates.

Your analytics will not tell you, because AI referrals rarely arrive labeled. The practical system is intake scripting: every caller gets asked how they heard about you, and your CRM logs 'AI assistant' as a source. Ask specifically: 'Did ChatGPT, Gemini, or another AI tool recommend us?' The answers will surprise you.

There is no universal number, only your math: divide total SEO spend by qualified leads, then compare that cost per lead to your average job value times your close rate. A $150 cost per lead is expensive for a $120 gutter cleaning and cheap for a $12,000 roof. Benchmarks from other markets are noise; your own numbers are the signal.

Free audit · delivered in 48 hours

Measure Us The Same Way.

Profile, Maps rankings, citations, reviews, competitors, plus whether AI assistants recommend you. A prioritized action plan, free, no pitch.

  • AI visibility check, real homeowner prompts across ChatGPT, Perplexity, and AI Overviews, who gets named.
  • Proposal scorecard, what your current or prospective agency should be doing, item by item.
  • Competitor gap analysis, what the top 3 in your market are doing that you're not.

Get My Free SEO Audit

Delivered within 48 hours. Yours to keep.

We only take 5 new clients per month.