Guide · Local SEO measurement
How to measure Local SEO by booked jobs, not rankings
Measure Local SEO by following the same enquiries from discovery to completion. Use rankings, impressions and profile actions to diagnose visibility, then reconcile calls and forms with your booking or job records. Report qualified enquiries, booked jobs, completed jobs and unknown attribution separately. A ranking can explain why demand changed, but it cannot prove that a call was answered or a job was booked.
By Ajay Dabhi, Local SEO specialist in Melbourne
Last updated: 22 July 2026
If you run a service business in Melbourne, rankings still matter. They just need to be connected to the enquiries you qualified and the work you booked and completed. That is how I approach Local SEO for Melbourne service businesses. Where the records do not connect, say so rather than filling the gap with an assumption.
Start with the measurement chain
I use one chain to follow a potential customer from search discovery to delivered work:
- 01
Visibility
Was the business discoverable for the right services and areas?
- 02
Profile or website action
Did somebody click through, request directions or use a call control?
- 03
Enquiry
Did a unique potential customer contact the business about buying a service?
- 04
Qualified enquiry
Was the request for a target service, inside the service area and suitable to quote or book?
- 05
Booked job
Was an appointment confirmed, a quote accepted or a job scheduled under the business's written booking rule?
- 06
Completed job
Was the work delivered or the appointment attended by the reporting cut-off?
Each stage answers its own question. The numbers will normally get smaller as you remove spam and duplicates, check each enquiry against your qualification rules, and update the booking and completion status.
Do not add unrelated upstream actions and call the result a customer total. One person might create an impression, click through to the website and press the call button. Rankings and impressions tell you about discoverability. Your business records tell you whether the enquiry qualified, booked or reached completion.
Sometimes the records will not let you join one stage to the next. Leave that connection unresolved. A report with a clear gap is more useful than a complete-looking report built on a guess.
Define each number before you report it
Set the definitions before you start reporting. Write them down and use the same rules each month. If a rule changes, record what changed and when in the change log. Otherwise, a month-to-month comparison can quietly stop meaning the same thing.
- Relevant non-brand impression
- An impression for an agreed service, problem or location query that does not depend on the business name. Use a consistent query/page filter and document material filter changes.
- Business Profile call-button click
- A click on the call control reported in Business Profile Performance. It is not automatically a connected call, answered call, valid enquiry or booked job.
- Website click
- A click from the profile's website link or a search result, depending on the labelled source. It is not automatically an enquiry.
- Valid enquiry
- A unique customer contact about potentially buying a service. Exclude spam, suppliers, recruitment messages, wrong numbers, test submissions and duplicates.
- Qualified enquiry
- A valid enquiry that matches the documented target service, service area and minimum fit rules, and that the business is prepared to quote or book.
- Booked job
- A qualified enquiry with a confirmed appointment, accepted quote or scheduled job according to the business's written booking rule. A tentative callback is not booked.
- Completed job
- A booked job delivered or an appointment attended by the report cut-off. Keep payment status separate where relevant.
- Cancelled/no-show
- A booked job that did not proceed. Do not count it as completed revenue.
- Open/scheduled
- A valid or booked record without a final outcome at the reporting cut-off.
- Attributable Local SEO enquiry
- A valid enquiry with evidence tying its source to unpaid website search, Business Profile discovery where distinguishable, or a documented unresolved Local SEO path. Do not include paid search.
- Unknown source
- No source can be established from the available record. Do not assign it proportionally to known channels.
- Booked job value
- The documented value of attributable jobs at booking. This is pipeline value, not cash received.
- Completed job revenue
- Actual recorded revenue for attributable completed jobs. Do not substitute quoted value.
What counts as qualified depends on the business. For example:
- Cleaners and pest control businesses: Record the target service, suburb, and whether the request is for recurring or one-off work.
- Tradies: Record the valid job type, service radius, and whether the work is urgent or planned.
- Clinics: Keep appointment requested, appointment booked and appointment attended as separate statuses. Do not expose patient details in the monthly report.
This scorecard is a reporting method, not legal advice, and it does not require call recording. If your wider tracking setup records calls or handles personal information, check the privacy, notice, access and storage obligations that apply to your business before you implement it.
Use the right source of truth for each stage
You will not find the full path from search visibility to a booked job in one dashboard. Use the record that can establish each stage, then be clear about what that record cannot prove by itself.
Scroll the table sideways to see every column.
| Stage | Primary source | What it can establish | What it cannot establish alone |
|---|---|---|---|
| Search visibility | Search Console and a relevant local visibility view | Impressions, clicks, page/query trends and geographic visibility trends | An answered call, qualified enquiry or booking |
| Business Profile actions | Google Business Profile Performance | Available profile actions such as call-button clicks, website clicks, directions and eligible booking activity | Whether a call connected, whether a website click enquired, or whether all activity was SEO |
| Website enquiries | Implemented analytics events plus form/booking records | That a configured action occurred and which tagged session preceded it where available | Whether the enquiry was valid, unique, qualified or ultimately booked |
| Phone enquiries | Phone logs or a properly configured call system | Connected/answered call evidence where available | Qualification or booking without a business status update |
| Qualified leads and bookings | CRM, booking platform or maintained job log | Service fit, location fit, quote/appointment and booked status | Completed or collected value unless the record is updated |
| Completed work and value | Job-management, invoice or finance records | Completion and actual recorded value | Perfect causal attribution to one search interaction |
Google's Business Profile Performance documentation explains that profile calls count clicks on the call button. That is an upstream action, not proof that a call connected or became a booked job. Available metrics also vary by profile and setup.
Business Profile performance may include paid activity as well as organic activity. Reconcile paid campaigns before crediting a profile total to Local SEO.
Apply four attribution rules
- 1. Use a documented source when it exists. Preserve the source captured by a tagged profile link, website session, call record or enquiry form.
- 2. Deduplicate one prospect's repeated actions. A phone click, a call and a later form from the same known prospect are not three leads. Deduplicate only when the records provide enough evidence.
- 3. Keep paid and organic reporting separate. Reconcile paid campaigns before crediting profile or website activity to Local SEO. Keep broader paid search measurement with the channel that generated it.
- 4. Keep an unknown bucket. If the source cannot be established, use
Unknown, explain the gap and do not distribute the result across channels by assumption.
Use the enquiry's original recorded source for source reporting unless the business has intentionally adopted and documented another attribution model.
For monthly funnel rates, cohort leads by the month they first enquired and update later outcomes as they mature. If it helps operations, show a separate count of all jobs booked or completed during the calendar month. Label it as a calendar-month operational count, not as the original enquiry cohort. Never mix the two bases in one rate or total without labels.
Reconcile the report every month
Run the reconciliation in the same order each month. That keeps search activity and business outcomes on a consistent basis:
- 1. Fix the reporting basis. Record the month, comparison period, attribution model and enquiry cohort before reviewing results.
- 2. Record the diagnostic metrics. Capture relevant non-brand impressions, organic clicks and available Business Profile actions. Keep them as diagnostic figures, not customer totals.
- 3. Build the valid-enquiry list. Bring together website forms, booking requests and phone records. Remove spam, tests, suppliers, recruitment contacts, wrong numbers and supported duplicates.
- 4. Preserve source evidence. Keep organic website, distinguishable Business Profile, unresolved Local SEO and unknown source in separate columns. Reconcile paid activity before assigning Local SEO credit.
- 5. Apply the qualification and booking rules. Update each valid enquiry with service fit, area fit, qualified status and booked status. Record a reason when an enquiry is excluded.
- 6. Update mature outcomes. Mark each record as completed, cancelled/no-show or still open/scheduled at the cut-off. Keep booked value separate from completed revenue.
- 7. Record context and gaps. Note missing source data, incomplete statuses, tracking changes, capacity, closed days, seasonality, pricing, promotions and service-area changes.
- 8. Calculate from raw counts. Use one cohort basis, apply the zero-denominator rules and round only the displayed result.
- 9. Write one decision summary. State what improved, the largest funnel drop, what remains unknown, any possible operational constraint and the next test with an owner and review date.
If the records cannot separate an organic website enquiry from a Business Profile enquiry, put it in the unresolved Local SEO column. If they cannot support Local SEO attribution at all, put it in the unknown-source column. Do not make the source sound more certain after the event.
Copy this monthly booked-job scorecard
Copy this template into a spreadsheet or document and fill it with figures you have actually observed. Use N/A when a metric is unavailable. Put missing records under Known data gaps, and leave empty cells empty rather than filling them with an invented benchmark.
A. Reporting details
Scroll the table sideways to see every column.
| Field | Entry |
|---|---|
| Reporting month | [Month YYYY] |
| Comparison period | [Previous month / same month last year / none] |
| Attribution model | [Original recorded source / other documented model] |
| Enquiry cohort basis | Leads first received during this month |
| Material changes | [Pages, profile changes, tracking changes, promotions, outages] |
| Business conditions | [Seasonality, capacity, closed days, pricing or service-area changes] |
| Known data gaps | [Missing call source, incomplete job statuses, unavailable profile metric] |
B. Diagnostic visibility, do not total these as customers
Scroll the table sideways to see every column.
| Metric | This month | Comparison | Change | What it tells us |
|---|---|---|---|---|
| Relevant non-brand impressions | [ ] | [ ] | [ ] | Search exposure for agreed commercial queries/pages |
| Relevant organic website clicks | [ ] | [ ] | [ ] | Visits from those search results |
| Business Profile call-button clicks | [ ] or N/A | [ ] or N/A | [ ] | Clicks on the profile call control, not verified calls |
| Business Profile website clicks | [ ] or N/A | [ ] or N/A | [ ] | Clicks to the listed site, not enquiries |
| Business Profile directions | [ ] or N/A | [ ] or N/A | [ ] | Direction requests, not visits or jobs |
| Local visibility note | [Service, suburb and observed direction of change] | Diagnostic context, not revenue |
C. Attributable enquiry cohort
Scroll the table sideways to see every column.
| Funnel stage | Organic website | Business Profile where distinguishable | Organic source unresolved between these two | Total attributable Local SEO | Unknown source, excluded from Local SEO total |
|---|---|---|---|---|---|
| Valid enquiries | [ ] | [ ] | [ ] | [sum] | [ ] |
| Qualified enquiries | [ ] | [ ] | [ ] | [sum] | [ ] |
| Booked jobs or appointments | [ ] | [ ] | [ ] | [sum] | [ ] |
| Completed jobs or attended appointments | [ ] | [ ] | [ ] | [sum] | [ ] |
| Cancelled/no-show | [ ] | [ ] | [ ] | [sum] | [ ] |
| Still open or scheduled at cut-off | [ ] | [ ] | [ ] | [sum] | [ ] |
Do not force a split between the website and Business Profile when the records cannot support it. Keep a Local SEO unresolved column and a separate unknown-source column. Profile and website actions in the diagnostic table are not added to this funnel.
D. Value and measurement quality
Scroll the table sideways to see every column.
| Metric | This month | Formula or entry rule |
|---|---|---|
| Qualification rate | [ ]% | Qualified attributable enquiries ÷ valid attributable enquiries × 100 |
| Booking rate | [ ]% | Booked attributable jobs ÷ qualified attributable enquiries × 100 |
| Completion rate | [ ]% | Completed attributable jobs ÷ booked attributable jobs × 100 |
| Booked job value | $[ ] | Sum of recorded value for attributable jobs booked from this enquiry cohort |
| Completed job revenue | $[ ] | Sum of actual recorded revenue for attributable completed jobs from this cohort |
| Average booked-job value | $[ ] | Booked job value ÷ booked attributable jobs |
| Unknown-source enquiry share | [ ]% | Unknown-source valid enquiries ÷ all valid enquiries across known and unknown source × 100 |
| Records with final status | [ ]% | Cohort enquiries with a documented final outcome ÷ valid attributable enquiries × 100 |
Do not make SEO ROI a required scorecard field. A valid profit-return calculation needs reliable attributable gross profit and an agreed investment scope, and many businesses will not have both. If those inputs are missing, report booked value, completed revenue and the data limitation instead of estimating return.
E. Change log
Scroll the table sideways to see every column.
| Date | SEO, tracking or business change | Expected effect | Metric to watch | Result at report cut-off |
|---|---|---|---|---|
| [DD/MM/YYYY] | [What changed] | [Specific hypothesis] | [Metric and segment] | [Observed / too early / no clear change] |
F. Decision summary
Scroll the table sideways to see every column.
| Prompt | Monthly answer |
|---|---|
| What improved? | [One evidence-led sentence] |
| Where is the largest funnel drop? | [Stage and count] |
| What is still unknown? | [Data gap] |
| What may be operational rather than SEO? | [Answering, qualification, capacity, price, follow-up or scheduling issue] |
| What is the next test? | [One change, owner and review date] |
Use these formulas and edge rules
Calculate from raw counts. Round displayed percentages to one decimal place only after the calculation.
Qualification rate (%) = qualified attributable enquiries / valid attributable enquiries × 100Booking rate (%) = booked attributable jobs / qualified attributable enquiries × 100Completion rate (%) = completed attributable jobs / booked attributable jobs × 100Average booked-job value ($) = booked job value / booked attributable jobsUnknown-source enquiry share (%) = unknown-source valid enquiries / (known-source valid enquiries + unknown-source valid enquiries) × 100Records with final status (%) = attributable cohort enquiries with documented final outcome / valid attributable enquiries × 100Period change (%) = (current period − comparison period) / comparison period × 100
A documented final outcome means the enquiry is recorded as not qualified and closed, qualified but not booked and closed, completed, or cancelled/no-show. Open records, enquiries awaiting qualification or a booking decision, and jobs still scheduled are not final. Do not treat a missing value as a final status.
Apply these rules every time:
- If a denominator is zero, display
N/A, never0%, infinity or an error. - If no comparison data exists, display
No comparison, not0% change. - Do not sum impressions, clicks, profile actions and enquiries into one conversion total.
- Do not calculate a rate across mixed cohort bases.
- Display counts as whole numbers, percentages to one decimal place and Australian dollar values with a dollar sign and thousands separator.
- Preserve negative period change when the current figure is lower.
How to read the scorecard
When two stages move in different directions, use this matrix to decide what to inspect and what to do next. The mismatch points you towards a question. It does not prove the cause.
Scroll the table sideways to see every column.
| What the scorecard shows | What to inspect | Next action |
|---|---|---|
| Visibility up, qualified enquiries flat | Query and service relevance, page intent, profile-to-site path, phone or form operation and local coverage | Review the highest-growth query, page or area against the service and enquiry records, then choose one supported path issue to test |
| Enquiries up, qualification rate down | Spam, wrong services, out-of-area demand, unclear service boundaries and duplicate records | Categorise unqualified records by reason and fix the largest supported source of mismatch |
| Qualified enquiries up, bookings flat | Response time, answered calls, quote follow-up, capacity, pricing and availability | Audit the status and follow-up of qualified enquiries before changing the SEO plan |
| Bookings up, completions flat | Cancellations, no-shows, scheduling and the reporting cut-off | Reconcile every booked record to completed, cancelled or still scheduled status |
| Profile actions up, verified enquiries flat | Whether calls connected and whether website visitors enquired | Match available action records to phone and form records without treating action counts as jobs |
| Unknown share rising | Missing source fields, broken tagging and inconsistent intake records | Repair the first missing source-capture point and keep unresolved records unknown |
Bookings can stall even while visibility and qualified enquiries improve. If the drop happens after qualification, check the operational side before deciding SEO is the problem.
A worked example with observed business data
Illustrative example only: These numbers are fictional and show how the scorecard works. They are not a benchmark, forecast or client result.
For this fictional month, the Local SEO enquiry cohort contains:
- 24 valid attributable Local SEO enquiries
- 18 qualified attributable enquiries
- 9 booked jobs
- 7 completed jobs by the reporting cut-off
- 1 cancelled job
- 1 job still scheduled
- $10,800 total booked job value
- $8,400 completed job revenue
- 6 additional valid enquiries with unknown source, excluded from the Local SEO total
- Previous comparable cohort: 15 qualified enquiries and 6 booked jobs
Using those records:
- Qualification rate:
18 ÷ 24 × 100 = 75.0% - Booking rate:
9 ÷ 18 × 100 = 50.0% - Completion rate at cut-off:
7 ÷ 9 × 100 = 77.8% - Average booked-job value:
$10,800 ÷ 9 = $1,200 - Unknown-source enquiry share:
6 ÷ (24 + 6) × 100 = 20.0% - Qualified-enquiry period change:
(18 − 15) ÷ 15 × 100 = 20.0% - Booked-job period change:
(9 − 6) ÷ 6 × 100 = 50.0%
This is a positive month-on-month observation for the fictional cohort. It is not a forecast or proof that one SEO change caused the increase. Two booked jobs have not reached completion at the cut-off, and one is cancelled, so booked value is not completed revenue. The six unknown-source enquiries stay outside the Local SEO total unless the records support attribution.
Keep the report privacy-safe
The scorecard only needs counts, status labels and enough business context to explain the month. Leave out names, phone numbers, email addresses, full addresses, call content, health information and other personal details.
- Use an internal record ID if a team needs to reconcile a row to a business system.
- Keep a public, printed or broadly shared summary aggregated.
- Limit access to underlying enquiry and job records to people who need it.
- Do not put patient details into a clinic report.
- Do not use this scorecard as a reason to record calls.
- If the business records calls or processes personal data for tracking, it must check its own privacy, notice, access and storage obligations before implementation. My privacy policy explains how this website handles personal information. This guide is not legal advice.
This page is a blank, static template. It does not need a form, account, download gate or client-side calculator, and the implemented page does not collect, store or transmit a reader's business figures. Copy the template into a controlled business document or spreadsheet and apply the organisation's own access and retention rules there.
What the monthly report should decide
Before you close the report, answer five questions:
- Which service and area produced the most qualified organic enquiries?
- Where did the largest funnel drop occur?
- Which records are still unknown or incomplete?
- What operational issue may be suppressing bookings?
- What one Local SEO or measurement change will be tested next month?
Use this monthly conclusion structure
Observed result: [One sentence describing the supported change in visibility, qualified enquiries, bookings or completions.]
Largest drop: [Name the funnel stage and the observed count, without assigning a cause yet.]
Attribution quality: [State the unknown share, unresolved Local SEO records and any material source gap.]
Business context: [Note capacity, closed days, seasonality, pricing, availability, tracking changes or other relevant conditions.]
Decision: [Name one SEO, measurement or operational change, the owner and the review date.]
A useful report ends with a decision, the evidence behind it and a date for checking what happened next. Keep the observed result separate from your explanation for it. Record that explanation as a hypothesis in the change log, then test it at the next cut-off.
Keep case-study evidence in its proper scope
A case study should not be used as an SEO-only benchmark unless the underlying records support that scope. My published case study covers a broader paid, website and AI system. It is not proof of an SEO-only result, so I have not used its figures as a benchmark, forecast or worked result in this guide.
Want me to connect Local SEO to the jobs you actually book?
I can check the path from search visibility into your enquiry and booking records, find the gaps, and tell you whether Local SEO is the right place to work next. You can read how I handle the wider work on my Local SEO for Melbourne service businesses page.