Most local businesses have never looked at their SEO systematically. They optimised something once, maybe years ago, and have no idea which parts are working. A proper local SEO audit changes that: you get a clear picture of where you stand across every ranking factor, a short list of actual problems, and a priority order for fixing them.
This framework walks you through eight areas in sequence. Each one has a specific set of things to check and a clear signal for whether you’re in good shape or need work. Work through them in order, take notes as you go, and tackle the fixes at the end.
1. Google Business Profile completeness and verification
A complete, verified profile is the foundation of everything in local search. If this isn’t right, nothing else matters as much.
What to check:
- Is the profile claimed and verified? Unverified profiles can be edited by anyone and are less likely to rank.
- Is every field filled in, including business description, hours (including holiday hours), phone, website, and services?
- Are photos present and recent? A profile with photos from three years ago signals an inactive business.
- Are posts being published? Google treats regular posts as a signal of an active, engaged listing.
Good vs needs work:
| Signal | Good | Needs work |
|---|---|---|
| Verification status | Verified | Unverified or pending |
| Profile completeness | All fields filled | Missing description, hours, or services |
| Photos | Recent uploads in last 90 days | None, or last upload over a year ago |
| Posts | At least one in last 30 days | No posts in 3+ months |
For a detailed walkthrough of every GBP field, see the Google Business Profile optimisation guide.
2. Primary and secondary category selection
Your primary category is one of the most important relevance signals in the local algorithm. The wrong choice can cost you pack visibility for your most important queries.
Primary category selection is the single highest-leverage GBP field. Google uses it to decide which searches your profile is eligible to appear in. A “Home Services” category when your real category is “Plumber” leaves you out of the searches that matter.
What to check:
- Search your main keyword (for example, “plumber Sydney”) and look at the three businesses in the pack. Click through to each one and note their primary category.
- Compare yours. If you’re in a broader or different category than your competitors, that’s a gap worth fixing.
- Review your secondary categories. These let you appear in adjacent searches without diluting your primary.
Good vs needs work: Your primary category exactly matches the most specific descriptor of what you do. Competitors in the pack share that category or a closely related one. Secondary categories cover your other key services without being generic.
3. NAP and citation consistency
NAP stands for Name, Address, Phone. Inconsistency across the web confuses Google about which version of your business details is correct, which erodes trust and can suppress rankings.
Citations are any online mention of your business’s NAP, whether on a directory, review site, or industry platform. The impact comes from both volume (being listed in many places) and accuracy (every listing matching exactly).
What to check:
- Search your business name in Google. Are the name, address, and phone consistent across every result you can see?
- Check the major directories for your market: Yellow Pages, True Local, Yelp, and any industry-specific directories (HiPages for tradies, HealthEngine for healthcare providers, and so on).
- Look at your own website’s contact page and footer. Does the NAP there match your GBP exactly, including punctuation and abbreviations (Street vs St)?
Good vs needs work: Every citation uses identical name, address, and phone. No duplicate listings exist. The address format matches your GBP to the letter.
For a fuller picture of how citations work, including which directories carry the most weight, the local citations guide goes deeper.
4. Review profile: volume, rating, recency, response rate
Reviews are one of the strongest prominence signals Google uses for local ranking. According to BrightLocal’s 2026 Local Consumer Review Survey, two in five consumers read reviews every time they look for a local business, and expectations around rating and recency have risen.
What to check:
- Total review count on your GBP. Compare it to the businesses currently ranking in the top three for your primary keyword.
- Average rating. A 4.5 or above is a strong signal; below 4.0 is a conversion and ranking concern.
- Recency. When was your last review? A business with 200 reviews but the most recent from 18 months ago looks stagnant.
- Response rate. Are you responding to reviews, including negative ones?
Good vs needs work: You have a comparable or higher review count than the top three pack results, a rating above 4.5, at least one review in the last 30 days, and responses to every review (or close to it). Falling short on any of these is worth prioritising.
5. On-page local signals
Your website needs to reinforce the same local signals your GBP sends. Google cross-references these, and a weak website makes it harder to sustain pack visibility.
Title tags and meta descriptions should include your primary keyword and city. “Plumber in Sydney | Business Name” outperforms “Business Name | Quality Plumbing Services” for local search.
What to check:
- Homepage title tag: does it include your primary service and city?
- Contact page: is your full NAP present in crawlable text (not just an embedded map or image)?
- Location pages: if you serve multiple suburbs or regions, do you have dedicated pages for each? A single “We serve all of Sydney” line on the homepage doesn’t create relevance for suburb-level searches.
- Body content: do your key pages mention the city, suburb, or region naturally? Not keyword-stuffed, but as a genuine part of how the service is described.
Good vs needs work: Title tags include service and location. Contact page has crawlable NAP. Service area pages exist for the locations you want to rank in. Location language appears naturally in body copy.
6. LocalBusiness schema
Schema markup is structured data that tells Google and AI engines exactly what your business is, where it operates, and what it offers. A business without it is leaving clear signals on the table.
LocalBusiness schema is JSON-LD code added to your website’s <head> that encodes your NAP, opening hours, service type, and other business details in a machine-readable format. Google uses it to populate Knowledge Panels, AI Overviews, and local results.
What to check:
Run Google’s Rich Results Test (search.google.com/test/rich-results) on your homepage and your key location or service pages. Look for:
- Is a LocalBusiness (or a more specific subtype like Plumber, Restaurant, Dentist) schema present?
- Does it include
name,address,telephone,url,openingHours, andgeocoordinates? - Are there errors or warnings flagged?
A minimal valid LocalBusiness schema looks like this:
{
"@context": "https://schema.org",
"@type": "Plumber",
"name": "Your Business Name",
"address": {
"@type": "PostalAddress",
"streetAddress": "123 Example Street",
"addressLocality": "Sydney",
"addressRegion": "NSW",
"postalCode": "2000",
"addressCountry": "AU"
},
"telephone": "+61-2-0000-0000",
"url": "https://www.yourdomain.com.au",
"openingHours": ["Mo-Fr 08:00-17:00", "Sa 09:00-13:00"]
}
Good vs needs work: A LocalBusiness or specific subtype schema is present on the homepage with no validation errors, and includes at minimum name, address, telephone, and opening hours. No schema at all, or schema with missing required fields, needs fixing.
For a more detailed look at schema options and how they interact with AI search, the local schema markup guide covers the full picture.
7. Map pack and organic rank
Auditing your rankings tells you whether the optimisation work is actually translating into visibility. It also reveals where you’re close (ranking 4th-10th) versus where you need a bigger lift.
What to check:
- Search your primary keyword from an incognito window, with your location set to your target area. Are you in the top three? If not, where are you?
- Repeat for your two or three most important secondary keywords.
- Check organic (non-map) results too. The map pack and organic results often have different winner sets.
- Note which competitors appear in both pack and organic, and which appear in only one.
Good vs needs work: You appear in the top three of the map pack for your primary keyword. You rank on the first page organically. If you’re in positions 4-10 for either, you’re close and incremental improvements may push you in. If you’re not on page one at all, deeper work is needed.
8. AI visibility
This is the newest audit area and the one most businesses haven’t checked at all. When someone asks ChatGPT, Perplexity, or Google AI Overviews “best plumber in Sydney” or “who do people recommend for physio in Bondi,” which businesses get named?
AI engines pull answers from a different set of signals than traditional search. Review content, editorial mentions, structured data, and authoritative web presence all influence whether your business gets cited. A business that ranks well in the map pack may still be invisible in AI answers, and vice versa.
What to check:
- Ask ChatGPT, Perplexity, and Google’s AI Overview your primary keyword and city. Is your business named?
- If not, note which businesses are named. These are your AI-visibility competitors, and they may be different from your map pack competitors.
- Check whether your business appears in Google’s AI Overview specifically for your key queries, since this surfaces directly at the top of Google results.
Tracking this manually across multiple queries gets unwieldy quickly. Fokal runs these queries on a schedule and tracks your citation rate in AI answers over time, so you can see whether changes you make are actually shifting your AI visibility.
Good vs needs work: Your business is named in AI answers for your primary keyword and city. If you’re not appearing, and competitors are, that’s a gap worth pursuing through content, reviews, and structured data.
For more on the mechanics behind AI search visibility, our AI visibility tracking guide explains what signals matter and how to build them.
How to prioritise the fixes
After working through all eight areas, you’ll have a list of problems. Not all of them carry equal weight.
Prioritise in this order:
- Verification and GBP completeness. Nothing else performs well without this.
- Category selection. A wrong primary category is a hard ceiling on pack visibility.
- Review volume and recency. If you’re behind your pack competitors on reviews, this is almost always a factor.
- NAP consistency. Inconsistencies are slow-burn ranking suppressors. Fix them once and they stay fixed.
- Schema and on-page signals. These reinforce the GBP work and are relatively quick to implement.
- AI visibility. Build this in parallel with the above, since the same fixes (reviews, content, schema) feed AI citation signals too.
How often to re-audit
Run a full audit once a quarter. The areas that shift most quickly, reviews, post activity, and rank, are worth checking monthly. Citations and schema rarely change once fixed, so a quarterly pass is usually enough.
A quick monthly check covers:
- Any new reviews and whether they’ve been responded to
- Current pack position for primary keyword
- Whether your GBP post is current
- Any new competitor showing up in the pack
For a condensed version of everything above, the local SEO checklist covers the key signals on a single page. If you’re new to local SEO altogether, the local SEO overview explains how the whole system fits together before you dig into individual areas.