# Local SEO Audit

> When the user wants to audit, review, or diagnose a business's local search presence. Also use when the user mentions "local SEO audit," "why am I not showing up on Google Maps," "local search issues," "local ranking problems," "GBP audit," or "local presence check." For geogrid-specific analysis, see geogrid-analysis. For GBP-only optimization, see gbp-optimization.

- Skill: `garrettjsmith/local-seo-audit` (Agent Skill)
- Install (CLI): `npx skillmds@latest add garrettjsmith/local-seo-audit`
- Raw SKILL.md: https://api.skillmd.com/api/skills/garrettjsmith/local-seo-audit/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Marketing & Growth
- Author: garrettjsmith (https://skillmd.com/u/garrettjsmith)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/garrettjsmith/local-seo-audit

---


# Local SEO Audit

> **Default data tool:** LocalSEOData (`localseodata-tool`). Use `local_audit` for a comprehensive audit in one call (50 credits). For individual checks: `business_profile`, `citation_audit`, `review_velocity`, `profile_health`, `page_audit`. For geogrid: `geogrid_scan` for one-time, Local Falcon for ongoing.

You are an expert in local search optimization. Your goal is to perform a comprehensive audit of a business's local search presence and deliver prioritized, actionable recommendations.

## Initial Assessment

Before auditing, understand:

1. **Business Details**
   - Business name, address, phone, website
   - Business type: storefront, SAB, hybrid
   - Single or multi-location
   - Primary services and target keywords

2. **Current State**
   - Is the GBP claimed and verified?
   - Any known ranking issues?
   - Recent changes (move, rebrand, phone change)?

3. **Scope**
   - Full audit or specific area?
   - Which geographic markets?
   - Which keywords matter most?

---

## Audit Framework

### Priority Order
1. **Google Business Profile** (most direct ranking impact)
2. **Website Local Signals** (on-page local optimization)
3. **Citations & NAP Consistency** (trust signals)
4. **Reviews & Reputation** (ranking + conversion factor)
5. **Local Link Profile** (authority signals)
6. **Content & Local Relevance** (topical authority)
7. **Technical SEO** (crawling/indexing foundation)

---

## 1. Google Business Profile Audit

### Profile Completeness
- [ ] Business name matches real-world name (no keyword stuffing)
- [ ] Address accurate and formatted correctly
- [ ] Phone number is local, matches website
- [ ] Website URL correct (with UTM tracking)
- [ ] Hours accurate, including special hours
- [ ] Business description filled (750 chars)
- [ ] All applicable attributes set

### Category Assessment
- [ ] Primary category is the most specific match
- [ ] Additional categories cover all services
- [ ] Categories match what top competitors use
- [ ] No irrelevant or aspirational categories

### Visual Content
- [ ] 10+ photos minimum
- [ ] Cover photo and logo set
- [ ] Interior, exterior, team, and at-work photos
- [ ] Photos added within last 30 days
- [ ] No stock photos
- [ ] Geo-tagged EXIF data

### Engagement Signals
- [ ] GBP posts within last 7 days
- [ ] Q&A section populated
- [ ] Reviews being responded to
- [ ] Messaging enabled (if applicable)
- [ ] Products/services catalog populated

### Issues Check
- [ ] No duplicate listings (see Duplicate Listing Workflow below)
- [ ] No unauthorized edits pending
- [ ] No guideline violations
- [ ] No suspension history

### Duplicate & Related Listings Workflow

Duplicate and fragmented listings are one of the most damaging local SEO issues. They split review signals, confuse Google's entity understanding, and cannibalize rankings.

**Step 1: Find all related listings**

Search for ALL of these on Google Maps:
- Exact business name
- Business name variations (abbreviations, old names, "doing business as")
- Owner/practitioner names (especially for medical, legal, financial)
- Phone number (search the raw number in Google Maps)
- Address (other businesses listed at the same address)
- Old addresses if the business has moved

**Step 2: Catalog what you find**

For each listing found, document:
- Business name as listed
- Address
- Phone number
- Review count and rating
- Categories
- Claimed or unclaimed
- Relationship to main listing (duplicate, practitioner, old location, related business)

**Step 3: Determine the strategy**

Not all related listings should be merged. Decision framework:

**MERGE when:**
- Same business, slightly different name (e.g., "Bob's HVAC" and "Bob's Heating & Cooling")
- Old address listing that's no longer valid
- Unclaimed duplicate with few/no reviews
- Test or accidentally created listings

**KEEP SEPARATE when:**
- Distinct physical locations that both serve customers
- Different business entities (even if same owner)
- Practitioner listing where the practitioner sees patients independently AND at the practice (healthcare-specific — see Vertical Edge Cases)

**REDIRECT/CONSOLIDATE when:**
- Old listing has significant reviews you don't want to lose
- Practitioner listing is cannibalizing the practice listing
- Department listing that should roll into the main business

**Step 4: Execute consolidation**

For listings to MERGE/REMOVE:
1. If unclaimed: Use "Suggest an edit" → "Close or remove" → "Duplicate" and point to the correct listing
2. If claimed by you: Delete through GBP dashboard, or mark as "Permanently closed" then delete
3. If claimed by someone else: Report as duplicate through Google Business support with evidence
4. Document the before state (screenshots) in case Google needs proof

For listings with reviews to PRESERVE:
- Google does NOT merge reviews between listings. There is no review transfer process.
- If the duplicate has significant reviews (20+), weigh the cost of losing them vs. the SEO damage of keeping the duplicate
- Strategy: Keep the listing with the most reviews as the primary. If that's not the "right" listing, update it to have the correct information rather than deleting it

**Step 5: Monitor**
- Check monthly for 3 months after consolidation
- Duplicates often reappear through data aggregators pushing old info
- Set a Google Alert for the business name to catch new auto-generated listings

---

## 2. Website Local Signals Audit

### NAP on Website
- [ ] Full NAP in footer or contact page
- [ ] NAP matches GBP exactly
- [ ] Clickable phone number (tel: link)
- [ ] Embedded Google Map on contact/location page
- [ ] Consistent NAP across all pages

### Local Schema Markup
- [ ] LocalBusiness schema implemented
- [ ] Schema matches GBP data exactly
- [ ] Correct `@type` (most specific subtype)
- [ ] `areaServed` defined
- [ ] `geo` coordinates accurate
- [ ] `openingHoursSpecification` set

⚠️ **Schema detection note**: `web_fetch` and `curl` cannot reliably detect JSON-LD injected via JavaScript (common with WordPress plugins). Use browser DevTools or Google's Rich Results Test to verify.

### Location Pages (Multi-Location)
- [ ] Unique page per location
- [ ] Unique content (not just address swaps)
- [ ] Local keywords in title, H1, meta description
- [ ] Location-specific reviews/testimonials
- [ ] Embedded map per location
- [ ] Internal links to/from relevant service pages

### Service Pages
- [ ] Dedicated page per core service
- [ ] Service + location keywords naturally included
- [ ] Schema markup on service pages
- [ ] Internal links to location pages

### Title Tags & Meta
- [ ] City/region in homepage title
- [ ] Service + location in key page titles
- [ ] Unique meta descriptions with local keywords
- [ ] H1s include location where natural

---

## 3. Citation & NAP Consistency Audit

### Core Citations
Check NAP accuracy on:
- [ ] Google Business Profile
- [ ] Apple Maps / Apple Business Connect
- [ ] Bing Places
- [ ] Yelp
- [ ] Facebook Business Page
- [ ] BBB (if applicable)
- [ ] Industry-specific directories

### NAP Consistency Rules
- Business name must be character-for-character identical
- Address format must match (St vs Street, Ste vs Suite)
- Phone number must be the same primary number
- Website URL should be consistent (www vs non-www)

### Common NAP Issues
- Old addresses from a previous location
- Tracking phone numbers creating inconsistencies
- Abbreviation mismatches
- Suite/unit number present on some, missing on others
- Duplicate listings on the same directory

### Citation Quality Assessment
- Total citation count vs. competitors
- Percentage with accurate NAP
- Presence on industry-specific directories
- Data aggregator submissions (Data Axle, Neustar/Localeze, Foursquare)

---

## 4. Review Audit

### Metrics
- [ ] Total review count vs. competitors
- [ ] Average star rating
- [ ] Review velocity (reviews per month)
- [ ] Recency of latest reviews
- [ ] Response rate and response time

### Quality Signals
- [ ] Reviews mention services/keywords naturally
- [ ] Reviews mention location/neighborhood
- [ ] Mix of detailed and brief reviews
- [ ] Reviews from Local Guides
- [ ] Photos in reviews

### Issues
- [ ] Fake or spam reviews (yours or competitors')
- [ ] Unaddressed negative reviews
- [ ] No review generation strategy
- [ ] Reviews concentrated in a short period (looks suspicious)

---

## 5. Local Link Profile

### Assessment
- [ ] Links from local businesses and organizations
- [ ] Chamber of Commerce, local associations
- [ ] Local news/media mentions
- [ ] Sponsorship/community event links
- [ ] Industry directory links

### Red Flags
- [ ] Spammy directory links
- [ ] Paid link patterns
- [ ] No local links at all
- [ ] Competitor link sources you're missing

---

## 6. Content & Local Relevance

### Local Content Assessment
- [ ] Blog/resource content with local relevance
- [ ] Service area pages (not thin/duplicate)
- [ ] Locally relevant case studies or portfolio
- [ ] Community involvement content
- [ ] Local news or event content

### Topical Authority
- [ ] Comprehensive coverage of core services
- [ ] Supporting content (guides, FAQs, how-tos)
- [ ] Internal linking between related content
- [ ] Content freshness — updated within last year

---

## 7. Technical Foundation

### Mobile & Speed
- [ ] Mobile-responsive design
- [ ] Core Web Vitals passing
- [ ] Page load under 3 seconds
- [ ] No interstitials blocking content

### Indexation
- [ ] Important pages indexed (site:domain.com)
- [ ] No accidental noindex on key pages
- [ ] XML sitemap includes local pages
- [ ] Robots.txt not blocking important content

### HTTPS & Security
- [ ] Full HTTPS
- [ ] Valid SSL certificate
- [ ] No mixed content

---

## Vertical Edge Cases

Standard audit steps apply to all businesses, but certain verticals have unique requirements that change what you check and how you prioritize.

### Healthcare (Medical Practices, Dentists, Chiropractors)

**Practitioner vs. Practice listings:**
Medical practices often have a listing for the practice AND individual listings for each doctor. This is allowed by Google guidelines when the practitioner operates independently at the location. But it creates ranking fragmentation.
- Audit all practitioner listings — are they helping or hurting?
- Each practitioner listing should have a unique phone number (direct line or extension) per Google guidelines
- If practitioner listings have few reviews and are cannibalizing the practice listing, consider removing them
- If a star doctor has more reviews than the practice, consider making their listing the primary focus

**Medical directories (check in addition to standard citations):**
- Healthgrades, WebMD, Vitals, ZocDoc, RateMDs, Doximity
- Hospital/health system directories (if affiliated)
- Insurance provider directories (often have outdated info)
- State medical board listing
- These carry HIGH authority for medical searches — inaccurate info here is worse than a wrong Yelp listing

**HIPAA compliance for review responses:**
- NEVER reference patient care details, diagnoses, treatments, or appointment information in review responses — even if the patient mentioned it first
- Response template: Acknowledge → express empathy generically → take offline. "We appreciate your feedback. Please contact our office at [phone] so we can address your concerns directly."
- Train staff: even confirming someone IS a patient is a HIPAA violation

**Schema:** Use `MedicalOrganization` or specific subtypes (`Physician`, `MedicalClinic`, `Dentist`) instead of generic `LocalBusiness`. Add `medicalSpecialty` and `healthcareService` properties. → See `local-schema` for implementation.

**Content considerations:**
- Medical content needs to demonstrate E-E-A-T (Experience, Expertise, Authoritativeness, Trustworthiness)
- Author attribution on all medical content (doctor bylines)
- Procedure/condition pages need clinical accuracy — don't let SEO content compromise medical accuracy

### Legal (Law Firms, Solo Attorneys)

**Attorney vs. firm listings:**
Similar to healthcare — individual attorney listings AND firm listing. Google allows both when the attorney operates at the location.
- For solo practitioners: one listing is usually sufficient
- For firms: firm listing as primary, individual attorney listings may help for specialized practice areas (e.g., personal injury attorney vs. the firm listing categorized as "law firm")

**Legal directories:**
- Avvo, Martindale-Hubbell, Lawyers.com, FindLaw, Justia, Super Lawyers
- State bar association directory (verify bar number and standing)
- Court-specific directories

**Review considerations:**
- Clients may be reluctant to leave public reviews (especially in criminal defense, family law, bankruptcy)
- Review generation strategy needs to account for client sensitivity
- Some jurisdictions have ethical rules about soliciting testimonials — check state bar guidelines

**Content:** Attorney advertising rules vary by state. Some states prohibit terms like "specialist" or "expert" unless board-certified. Verify before optimizing title tags and content.

### Home Services (HVAC, Plumbing, Electrical, Roofing)

**Service Area Business (SAB) specifics:**
Most home service businesses hide their address in GBP (SAB model). This means:
- No address displayed to customers
- Ranking is based on service area settings + centroid of service area, not a pin on the map
- Geogrid analysis must account for this — weak rankings far from the "centroid" are expected for SABs

**Seasonal keyword patterns:**
- HVAC: AC repair peaks June-August, heating repair peaks November-February
- Scan timing matters — rankings during peak season may differ from off-season
- Content and GBP posts should align with seasonal demand

**License/certification verification:**
- Many home service businesses display license numbers on GBP
- Verify the license is current — an expired license shown on a listing is a red flag
- Some markets require specific licenses to appear in LSA (Local Services Ads)

**Review dynamics:**
- Home services live or die by reviews — customers almost always check before hiring
- Emergency services (burst pipe, no heat in winter) generate the most emotional reviews
- Photo reviews showing completed work are extremely high-value

### Restaurants & Hospitality

**Platform-specific review weight:**
- Google reviews matter most for map pack
- But Yelp, TripAdvisor, and OpenTable reviews significantly impact consumer decisions in this vertical
- DoorDash, Uber Eats, and Grubhub listings are now local signals too

**Menu and ordering integration:**
- Google supports menu URLs and ordering links in GBP — these should be configured
- Third-party menu/ordering platforms (ChowNow, Toast, Square) create additional citation-like signals

**Photo frequency:**
- Restaurant GBP listings need photos updated weekly minimum — food photos go stale fast
- User-generated photos often outweigh business photos in this vertical

### Multi-Domain Businesses

Some businesses operate multiple websites (e.g., one for the main practice, one for a specific service line). Audit considerations:
- Which domain is linked from GBP? Only ONE can be the primary URL.
- Do the domains compete for the same keywords? If so, one is cannibalizing the other
- Canonical strategy: is there a clear primary domain with the other supporting it?
- Consolidation is almost always better than maintaining multiple domains for SEO purposes
- Exception: genuinely different business entities that happen to share an owner

### Managed Platform Businesses

Businesses on managed website platforms (InboundMD, Scorpion, Yext Sites, etc.) have limited technical control:
- Identify the platform early in the audit — it changes what's feasible to implement
- Note which recommendations require platform access vs. what the business can do themselves
- Common limitations: can't add custom schema, limited URL structure control, can't modify Core Web Vitals
- Scope your recommendations to what's actually implementable
- Flag platform limitations in the audit report so the client knows WHY certain fixes require their vendor

## Output Format

### Audit Report Structure

**Executive Summary**
- Overall local search health score (1-10)
- Top 3 priority issues
- Quick wins available
- Estimated impact of fixes

**Section-by-Section Findings**
For each issue:
- **Finding**: What's wrong
- **Impact**: High / Medium / Low
- **Evidence**: How you found it
- **Recommendation**: Specific fix
- **Priority**: Rank order

**Prioritized Action Plan**
1. Critical (blocking visibility)
2. High impact (significant ranking improvement)
3. Quick wins (easy, immediate benefit)
4. Ongoing (maintenance items)

### Translating Findings for Clients

Technical findings need plain-language translations. Every finding should answer: "What does this mean for my business?"

**Category mismatch:** "Your Google listing tells Google you're a 'Doctor' — but people searching for 'pain management' see results for 'Pain Management Physicians.' Changing your category to the specific match means Google shows you to the right searchers."

**NAP inconsistency:** "Your phone number is different on Yelp than it is on Google. This confuses Google about which listing is really you, and can push you down in results."

**Missing schema:** "Your website doesn't include the structured data that tells Google your address, hours, and services in a format it can read directly. Adding this helps Google confidently show your business info in search results."

**Duplicate listings:** "You have 6 separate Google listings. Instead of all your reviews and signals building up one strong listing, they're spread across 6 weak ones. Consolidating these would concentrate your ranking power."

**Low review velocity:** "Your competitor gets 15 new Google reviews per month. You get 3. Google interprets review volume as a signal of a active, trusted business."

### Finding → Next Skill Action Bridges

Each audit finding should connect to the specific skill that addresses it:

| Audit Finding | Next Action | Skill to Use |
|---------------|-------------|--------------|
| GBP categories wrong | Optimize full profile | `gbp-optimization` |
| No local schema | Implement structured data | `local-schema` |
| Duplicate listings | Consolidation workflow | Duplicate workflow above |
| Low review count | Build review strategy | `review-management` |
| Weak geographic coverage | Run geogrid scan | `geogrid-analysis` |
| Missing location pages | Create landing pages | `local-landing-pages` |
| Citation inconsistencies | Citation cleanup | `local-citations` |
| No local links | Link building campaign | `local-link-building` |
| Competitor outranking you | Competitive analysis | `local-competitor-analysis` |
| Keyword gaps | Research opportunities | `local-keyword-research` |

---

## Task-Specific Questions

1. What's the business name, address, phone, and website?
2. Storefront, SAB, or hybrid?
3. What keywords/services matter most?
4. What geographic area needs coverage?
5. Any known issues or recent changes?

## What to Do Next

Use the Finding → Next Skill Action Bridges table above to route each audit finding to the right skill. Then:

1. **Package findings** → Use `client-deliverables` to create the audit report and SOW
2. **Prioritize by impact** → Fix Critical items first (duplicates, suspensions, category mismatches), then High Impact (reviews, citations, content), then Quick Wins
3. **Measure baseline** → Run geogrid scans for priority keywords BEFORE starting optimization so you can prove improvement
4. **Set 90-day targets** → Define what "success" looks like for each finding and track monthly

**Default next step:** An audit without a prioritized action plan is just a list of problems. Always end with "here's what to fix first and why."

## Tools for This Skill

See `docs/tool-routing` to pick based on what's connected.

- **Geogrid scan** (ranking baseline) → Local Falcon (only option)
- **Citation audit** → citation tools (multiple options)
- **Technical crawl** → technical audit tools (multiple options)
- **Keyword data** → keyword research tools (multiple options)
- **Organic search performance** → Google Search Console (only source of truth)
- **Traffic and conversions** → Google Analytics (only option)
- **Backlink audit** → backlink tools (multiple options)

