Local SEO measurement: tracking GBP, calls, and the map pack
Local clients convert through the Google Business Profile and the phone, not just the website — so GA4 alone misses most of it. What to track for local, how to attribute GBP actions, and the local-rank reality.
TL;DR
For local clients, a huge share of conversions happen before the website — calls, direction requests, and clicks straight from the Google Business Profile (GBP) and the map pack — so GA4-on-the-website measures only part of the picture. Local measurement spans four sources: GBP performance (calls, direction requests, bookings, profile clicks), call tracking (the phone is often the main conversion), website conversions from local traffic, and local rank tracking (which is location-dependent — your rank differs a block away). Attribute GBP's website clicks by UTM-tagging the profile's website link, track calls carefully (mind NAP consistency), and report the actions that matter (calls, directions, visits) rather than vanity impressions. Below: the four sources and how to wire them.
Run measurement for a plumber, a dentist, or a multi-location retailer the way you'd run it for a SaaS site and you'll under-report their results by half — because the customer who finds them in the map pack and taps to call never touches the website GA4 is watching. Local measurement is its own discipline, and getting it right is often the difference between a local client who sees their value and one who churns.
Source 1 — GBP performance (the part GA4 can't see)
The Google Business Profile is the storefront for local, and it has its own performance data: how many people called, requested directions, messaged, booked, or clicked through — and which searches surfaced the profile. These actions happen on Google, not the client's site, so they're invisible to GA4 by default. Pull GBP's performance metrics (via the profile or the API) and treat calls, direction requests, and bookings as first-class conversions — for many local businesses they're the primary conversions, dwarfing web form-fills.
Source 2 — Call tracking (usually the main conversion)
Local = phone. Most local conversions are calls, and untracked calls make the whole account look weak. Apply call tracking so calls attribute to their source — but with a local-specific caution: NAP consistency (Name/Address/Phone) matters for local SEO, so don't let a tracked number fragment your citations. Use a setup that keeps the canonical business number as the public NAP (or use GBP's own call history) while still attributing campaign-driven calls. Gate on call duration so junk calls don't inflate the numbers.
Source 3 — Website conversions from local traffic
Some of the journey still lands on the site (contact forms, quote requests, store-locator use). Track these in GA4 as usual — but attribute the GBP-driven portion by UTM-tagging the website link in the Business Profile (e.g. utm_source=google&utm_medium=organic&utm_campaign=gbp). Without that tag, traffic from the profile blends into generic "organic" or even Unassigned, and you can't separate "found us on Maps" from broader organic — apply your UTM convention here too.
Source 4 — Local rank tracking (and why it's weird)
Local rankings are not a single number — they depend on the searcher's physical location. A client can rank #1 from their storefront and #7 from across town, so a standard rank tracker (which checks from one location) misleads. Local rank tracking uses a grid of points around the business to show how visibility varies by location — that geographic spread is the insight (where you're strong, where a competitor owns the pack). Report the grid, not a vanity single position.
Put the four together and report what matters
The local picture only makes sense assembled: GBP actions + tracked calls + local web conversions + grid rankings. The reporting discipline is to lead with the actions that have business value — calls, direction requests, bookings, store visits — not impressions or a flattering single rank. Define these per client in the measurement plan just like any other conversion, and verify the call tracking and UTM tagging actually work rather than assuming the GBP data is complete.
Where this fits
Local measurement spans GBP, the phone system, the website, and a location-aware rank tracker — four sources that don't naturally combine, which is exactly why local reporting so often misses the calls and directions that are the real wins. Phloz models that multi-source local stack per client — the GBP actions, the call tracking, the local web conversions — as part of the tracking-infrastructure map with a health state, so "are we capturing this local client's calls and directions, or just their website?" is a view you can act on. The CRM for SEO agencies and pricing pages cover the workflow — but the core correction is simple: for local clients, the conversion usually happens on Google and the phone, so measure there, not just on the site.