
Local SEO Audit: The Diagnostic Sequence I Use to Find What Is Actually Broken
Search "local SEO audit" and you will find a lot of checklists. Some run to 150 points. They are thorough and they are mostly useless, for one reason: a checklist has no order of operations.
If a profile is suspended, nothing below that matters. If the primary category is wrong, your review strategy is fixing the wrong problem. If your rank tracking is checking a single point in the city centre, your entire picture of where you stand is wrong before you start.
A good audit is a diagnostic sequence, not an inventory. You work from the layer that can invalidate everything beneath it, down to the layers that only matter once the ones above are sound. And you stop when you find something that would make the rest of the findings meaningless.
That last part is the bit nobody does. Finishing a 150 point audit when you found a disqualifying problem at point four is not thoroughness. It is a way of producing a document that hides the answer inside 146 other observations.
The six layers, in order
- Eligibility. Can this business appear at all?
- Identity. Does the web agree on who and what this business is?
- Geography. Where does it actually rank, and where does it need to?
- Prominence. Is the business well known enough for the market it is in?
- Web layer. Does the website support the queries the profile cannot reach?
- Measurement. Do we believe the numbers we are looking at?
Each layer assumes the one above it is clean. Run them in order.
Layer 1: Eligibility
This layer answers a yes or no question. Is there anything preventing this business from appearing, regardless of quality?
Check, in this order:
Is the profile live and verified? Search the exact business name plus the city in a private window. Not visible means you are looking at a removal or a hard suspension. Then check the dashboard for editing restrictions, which indicate a soft suspension. If several locations went dark at once, you are dealing with an account level restriction rather than a listing problem. Working out whether the profile is suspended or restricted is the first thing to resolve, because nothing below Layer 1 can be assessed until it is.
Are there duplicates? Search Maps for the phone number, the address, and any previous business names. Old listings from previous agencies, franchisors, or data aggregators are common and they cause real damage.
Is the business type correct? Storefront, service area, or hybrid. A displayed residential address on a business that travels to customers is a live compliance problem, not a nice to have. Service area businesses need a different reading of this layer throughout.
Is the name compliant? If the profile name is not the name on the signage, invoices, and registration, that is a violation regardless of how well it is currently ranking. Note it here even if the client resists.
Stop rule: if you find any of these, stop the audit, fix it, and restart once the profile is stable. There is no value in scoring a review strategy for a listing that is about to disappear.

Layer 2: Identity
Layer 2 asks whether the web tells a consistent story about who this business is, what it does, and where it is.
Primary category. This is the single highest leverage field on the profile, and it is wrong more often than any other. It should describe what the business primarily is, in the narrowest accurate term available. A personal injury firm listed as "Law Firm" is competing in a different set than it should be. Check whether a primary category that matches what the business really is has ever been reviewed properly, or whether it was set once during setup and never revisited.
Secondary categories. Look for two failure modes: too few (missing real service lines) and too many (irrelevant categories added to chase queries, which dilutes the signal).
NAP consistency. Compare the profile against the website's contact page and footer, the main directory listings, and the legal registration. You are looking for format mismatches, old phone numbers, and suite numbers that appear in some places and not others. Directory listings and NAP consistency are foundation work, and the failure mode here is subtle: nothing looks broken, but confidence in the entity is lower than it should be.
Website match. The URL on the profile should point to the most relevant page, which for a multi location business is the location page rather than the homepage. Check that it resolves without a redirect chain.
Structured data. Does the site carry LocalBusiness markup with a matching name, address, phone, and opening hours, plus `sameAs` links to the profile and main social accounts? This is not a magic ranking lever. Its job is to remove ambiguity, and ambiguity is expensive at Layer 2. It also matters more than it used to for how AI search surfaces local businesses, since those systems lean on machine readable agreement between sources.
Stop rule: a wrong primary category is worth pausing for. Fix it, wait three to four weeks, and re-measure before continuing, because the results at Layer 3 will change.
Layer 3: Geography
This is where most audits go wrong, and the mistake is always the same. Someone checks rankings from one location and treats the answer as the truth.
Local results change with the searcher's position. A single point check tells you almost nothing.
Run a grid. Use a grid based rank tracker to check your primary money query across a spread of points covering the area you claim to serve. What comes back is a visibility map rather than a number.
Read it for three things:
- The core. Where do you hold the top three? This is where the profile is doing its job.
- The falloff line. Where does visibility drop off a cliff? That is your true operating radius.
- The gap. Which areas produce revenue, or should, but show nothing?
Pick queries that matter. Audit against the two or three terms that produce booked work, not a list of forty keywords from a tool. A business with three profitable services has three grids to run, not forty.
Compare against the actual competitors. Note who occupies the top three in the zones where you do not. Then check their review counts, their categories, and their proximity to the grid points where they win. Half the time the answer is simply that they are closer, which is information you need before promising anything.
Separate pack from organic. Check where you sit in the local pack and where you sit in the organic results below it. These respond to different inputs. A business that is invisible in the pack but ranking well organically has a profile problem. The reverse means a website problem. The weight each signal group carries in the pack differs enough from organic that treating them as one number will send you down the wrong path.
Layer 4: Prominence
Now that you know where the gaps are, this layer asks whether the business is prominent enough to close them.
Reviews. Look at four things, not one. Count, average rating, recency, and response rate. Then read the actual text and check which of the business's services and areas are described in it. Review recency, text coverage, and response rate all pull in different directions, and a business with 300 old reviews has a different problem from one with 20 recent ones. Benchmark against the three businesses currently ranking where you want to rank, not against a generic target.
Links. Pull referring domains and sort them by whether they are geographically and topically connected to the business. A profile with 400 referring domains that are all national directories is weaker for local purposes than one with 30 local and industry domains. What you want to count is the referring domains that carry local weight, not the raw total.
Citations. Check accuracy first, volume second. The question is whether the core listings are correct and consistent, not whether there are hundreds of them. Once the main platforms and aggregators agree, further citation work has very little left to give.
Brand mentions. Search the business name in quotation marks. Unlinked mentions, local press coverage, and forum discussion all contribute to how established the business looks, and they are also the cheapest link opportunities available.
Stop rule: none here. Layer 4 findings are almost always a work programme rather than a blocker.
Layer 5: The web layer
Layer 3 told you where the profile cannot reach. Layer 5 asks whether the website is set up to reach those places instead.
Location pages. Do they exist for the areas in the gap? Are they genuinely different from each other, or is it one template with the town name replaced? Location pages that are genuinely different from each other are the difference between a set of pages that rank and a set that gets ignored. Read three of them side by side. If you can swap the town names without the text becoming false, they are not real pages.
Service pages. One page per service, with enough depth to answer the questions a buyer actually has. Check for two pages competing for the same query, which is more common than people expect and quietly suppresses both.
Internal linking. Do location pages link to the relevant service pages and vice versa? Is there a coherent path from the homepage to every location page? Orphaned location pages are common on sites where locations were added over years.
Technical basics. Indexation of the pages that matter, correct canonical tags, mobile rendering, and page speed on the templates that carry commercial traffic. Do not run a full technical audit here. Check the pages in the gap.
Content that supports the outer ring. Guides, FAQs, and question format content that answers the things people ask before they buy. This is what tends to get pulled into AI generated answers, and it works in areas where the profile has no reach.
Layer 6: Measurement
The last layer asks whether you can trust anything you have just measured. Run it last, but treat what you find here as urgent, because bad measurement makes every earlier layer's conclusions unreliable.
Call tracking conflicts. Dynamic number insertion on the website that does not match the profile number creates a NAP conflict. There are ways to handle it (using the tracking number as the primary on the profile with the real number as secondary, or using DNI that preserves the main number for search engines), but I find this misconfigured more often than not.
Profile performance data. The Performance report shows searches, views, calls, direction requests, and website clicks. It does not show position. People routinely read a drop in views as a ranking drop when it was a seasonality change, and a rise in calls as a ranking gain when a competitor got suspended.
Search Console. Filter by queries with local intent and by the location pages specifically. Look at impressions before clicks, since impression growth without click growth usually means you moved from position 30 to position 12, which is progress that a traffic report hides.
Attribution gaps. Direction requests, calls from the profile, and messages do not appear in Analytics as website conversions. A business judging local SEO purely on website form fills is missing most of the result.
Baseline dates. Note when each measurement was taken. A grid run in December and compared to one run in June is comparing two different seasons, not two different states of the account.
What a usable audit deliverable looks like
An audit that produces 90 observations produces no action. What I hand over instead is a short table:
| Layer | Finding | Evidence | Impact | Effort | Order |
|---|
Every row has a named evidence source, which is usually a screenshot, an export, or a specific URL. Impact and effort are rated high, medium, or low. The order column is the whole point, because it tells someone what to do on Monday morning.
Most local businesses have between eight and fifteen findings worth acting on. If your audit produced sixty, you have listed observations rather than problems.
Two rules I hold to on the deliverable:
No finding without evidence. "Reviews could be improved" is not a finding. "Newest review is 11 months old, while the three businesses ranking in the target zone all have reviews within the past three weeks" is a finding.
No recommendation without a mechanism. If you cannot explain how a fix changes a specific signal, do not recommend it. This is how audits end up full of busywork like posting to the profile weekly, which improves nothing about position.
How often to re-run this
A full sequence once, then Layer 3 and Layer 6 quarterly. Layers 1 and 2 get a short monthly check, since profile fields change without notice through automated updates and user suggested edits, and a category that quietly shifted in March is much easier to catch in April.
Re-run the full sequence after any material change to the business: a move, a rebrand, a new service line, a new location, or a change in ownership.
Most businesses that think they have a ranking problem actually have a diagnosis problem. They are working on Layer 4 while the blocker sits at Layer 1 or 2, and the effort is real but pointed at the wrong thing. If you want the sequence run properly on your own business, with the findings ordered rather than listed, that is the work I do at rohanalvi.com.
Frequently Asked Questions
How long does a proper local SEO audit take? For a single location business, roughly four to six hours of focused work, most of which goes into the geography layer and reading review text. Multi location businesses scale from there, though the first location takes the longest because the identity and measurement findings usually repeat.
What is the most common problem you find? A primary category that was set during setup and never reviewed. It is a two minute fix that changes which queries a profile is even considered for, and it sits above almost everything else people spend money on.
Can I audit my own local SEO without paid tools? Most of it, yes. Layers 1, 2, 5, and 6 need nothing but a browser, Search Console, and the profile dashboard. Layer 3 is the exception, since grid based rank tracking is difficult to replicate manually and checking from one location gives a misleading result.
Should I fix everything the audit finds? No. Fix in the order the sequence gives you and stop when the visibility problem resolves. Plenty of audit findings are technically true and commercially irrelevant, and working through all of them is a good way to spend a quarter without changing anything.
Why do my rankings look different from what my tool reports? Because you are checking from your own location with your own search history, and the tool is checking from a defined coordinate without personalisation. Neither is wrong. The grid exists precisely because a single point cannot represent a local result set.
How do I know whether my problem is the profile or the website? Compare your local pack position with your organic position for the same query. Weak in the pack but decent in organic points to the profile and reviews. Decent in the pack but absent from organic points to the website. Strong in neither usually means a Layer 1 or Layer 2 problem is upstream of both.

