Local SEO expertise and audit. Activates for Google Business Profile, GBP optimization, local pack, citations, NAP consistency, reviews, local landing pages, local content, local links, Google Maps, Apple Maps, Bing Places, or service area business discussions. Phase 11. Output: {AUDIT_DIR}/local-findings.md
From local-seo-auditnpx claudepluginhub anthropics/claude-plugins-community --plugin local-seo-audit-systemThis skill uses the workspace's default tool permissions.
references/gbp-optimization-guide.mdProvides guidance on returns authorization, receipt inspection, condition grading, disposition routing, refund processing, fraud detection, and warranty claims in e-commerce operations.
Scans installed skills to extract principles shared across 2+ skills and distills them into rules by appending, revising, or creating rule files.
Compares coding agents like Claude Code and Aider on custom YAML-defined codebase tasks using git worktrees, measuring pass rate, cost, time, and consistency.
Local SEO is the highest-ROI channel for brick-and-mortar and service area businesses. The Google local pack (3-pack) captures 44% of clicks for local queries (BrightLocal 2025) — more than organic position 1 for geo-modified searches. In 2025, the local pack algorithm weights three core clusters: GBP signals (36% of local ranking weight per Whitespark 2024 Local Search Ranking Factors survey), Review signals (17%), and On-Page/Website signals (16%). AI Overviews now appear for 20–35% of local service queries; businesses with FAQPage schema are 2.3× more likely to appear in AIO for local queries. This phase audits every dimension of local SEO from GBP optimization to citation health, NAP consistency, local landing pages, and AI visibility across Google, Apple, and Bing.
2025 local SEO benchmarks:
Read {AUDIT_DIR}/intake-data.md — business name, URL, services, locations, GBP URL.
Read {AUDIT_DIR}/competitor-profiles.md — competitor local SEO benchmarks.
Read {AUDIT_DIR}/technical-findings.md — schema and indexation status.
Tools for this phase:
| Tool | Purpose | Cost |
|---|---|---|
| BrightLocal | GBP audit, NAP consistency scan (checks 80+ directories), review tracking | Paid |
| Whitespark | Local citation finder, citation building, Local Rank Tracker (grid view) | Paid |
| Local Falcon | Geographic rank grid — visualize local pack position across city radius | Paid |
| PlePer Tools | Free competitor GBP extraction — categories, attributes, review count, photo count | Free |
| GBP Manager (business.google.com) | Direct GBP management, posts, Q&A, insights | Free |
| Moz Local | Citation distribution score, duplicate detection, directory submission | Paid |
| Data Axle | Tier 1 citation aggregator — feeds 200+ downstream directories | Paid |
| Google Search Console | Local landing page performance — clicks, impressions per location keyword | Free |
Whitespark 2024 Local Search Ranking Factors — Top Signals by Category:
| Rank | Signal | Category | Weight |
|---|---|---|---|
| 1 | GBP primary category | GBP Signals | 36% total weight |
| 2 | Physical proximity to searcher | Behavioral | ~35% mobile |
| 3 | Review count + velocity + rating | Review Signals | 17% total weight |
| 4 | Keyword in GBP business title | GBP Signals | High |
| 5 | NAP consistency across citations | Citation Signals | 11% total weight |
| 6 | Website authority + local landing page | On-Page/Website | 16% total weight |
| 7 | Behavioral signals (CTR, clicks, check-ins) | Behavioral | Growing |
| 8 | Link signals (quality + local relevance) | Link Signals | 11% total weight |
Primary category is the #1 local pack ranking factor (Whitespark 2024). Verify with PlePer:
| Check | Current | Recommended | Action |
|---|---|---|---|
| Primary category | [current] | [optimal?] | Change/Keep |
| Secondary categories (up to 9) | [list] | [missing categories?] | Add |
| Competitor primary category | [comp 1] | [comp 2] | Benchmark |
Check competitor categories via PlePer: Enter competitor GBP CID → extract their exact primary + secondary categories. Are they using advantageous categories you're missing?
| Field | Present? | Accurate? | Optimized? | Impact |
|---|---|---|---|---|
| Business name (no keyword stuffing) | ✅/❌ | ✅/❌ | ✅/❌ | Critical |
| Complete street address | ✅/❌ | ✅/❌ | ✅/❌ | Critical |
| Local phone number (not 1800) | ✅/❌ | ✅/❌ | ✅/❌ | Critical |
| Website URL (to correct landing page) | ✅/❌ | ✅/❌ | ✅/❌ | Critical |
| Business hours (all 7 days) | ✅/❌ | ✅/❌ | ✅/❌ | High |
| Holiday/special hours set | ✅/❌ | ✅/❌ | ✅/❌ | High |
| Business description (750 chars used) | ✅/❌ | ✅/❌ | ✅/❌ | High |
| Services listed with descriptions | ✅/❌ | ✅/❌ | ✅/❌ | High |
| Products listed (if applicable) | ✅/❌ | ✅/❌ | ✅/❌ | Medium |
| Attributes (accessibility, payment, etc.) | ✅/❌ | ✅/❌ | ✅/❌ | Medium |
| Appointment URL | ✅/❌ | ✅/❌ | ✅/❌ | Medium |
| Q&A section (5+ seeded answers) | ✅/❌ | ✅/❌ | ✅/❌ | Medium |
| Messaging enabled (if business responds) | ✅/❌ | ✅/❌ | ✅/❌ | Low |
Note: GBP Chat was deprecated July 2024 — do NOT advise enabling it; it no longer exists.
Photo impact data (Google internal data, 2024):
| Type | Current Count | Target | Status |
|---|---|---|---|
| Total photos | 100+ | ||
| Logo (250×250px minimum) | 1 | ||
| Cover photo (1332×750px) | 1 | ||
| Exterior (storefront, signage) | 5+ | ||
| Interior (team working, equipment) | 10+ | ||
| Team/staff (builds trust) | 5+ | ||
| Work/services/products in action | 50+ | ||
| Video (30 sec max, 75MB) | 2+ | ||
| 360° virtual tour | Optional |
Photos must be: original (not stock), geotagged with location data, high-quality (min 720px), recent.
Full reputation analysis in Phase 15 — focus here on review signals directly impacting local pack.
Local Pack top-3 review targets by niche (2025 benchmarks):
| Niche | Min Review Count | Min Rating | Velocity Target |
|---|---|---|---|
| Home services (plumbing, HVAC, electrical) | 50–150 | 4.5+ | 4–8/month |
| Legal / professional services | 30–80 | 4.6+ | 2–4/month |
| Healthcare / dental | 50–200 | 4.7+ | 4–10/month |
| Restaurant / food | 100–500 | 4.4+ | 10–20/month |
| Automotive | 50–200 | 4.5+ | 4–8/month |
Review recency weighting (2025): Google weights reviews from the last 60–90 days at 3–5× more than older reviews. A business with 200 reviews but none in 6 months will underperform vs. a competitor with 50 reviews and 8 per month.
| Metric | Client | Comp 1 | Comp 2 | Comp 3 | Benchmark |
|---|---|---|---|---|---|
| Total reviews | Niche target above | ||||
| Average rating | ≥4.5 | ||||
| Reviews (last 90 days) | ≥8/month | ||||
| % reviews with photo | ≥20% | ||||
| % mentioning specific services | ≥30% | ||||
| Owner response rate | 100% |
Review velocity by market type:
Veto trigger: Average rating <3.5 → maximum GBP section score 20/30.
NAP = Name, Address, Phone. Inconsistency dilutes local ranking signals across the citation ecosystem.
[exact legal name — match GBP exactly][exact format with unit/suite if applicable][(XXX) XXX-XXXX — consistent parentheses and dash format]Consistency rate thresholds:
| Property | Name Match? | Address Match? | Phone Match? |
|---|---|---|---|
| Website (header/footer) | ✅/❌ | ✅/❌ | ✅/❌ |
| Website LocalBusiness schema | ✅/❌ | ✅/❌ | ✅/❌ |
| Google Business Profile | ✅/❌ | ✅/❌ | ✅/❌ |
| Bing Places | ✅/❌ | ✅/❌ | ✅/❌ |
| Apple Maps | ✅/❌ | ✅/❌ | ✅/❌ |
| Yelp | ✅/❌ | ✅/❌ | ✅/❌ |
| ✅/❌ | ✅/❌ | ✅/❌ | |
| BBB | ✅/❌ | ✅/❌ | ✅/❌ |
| Yellow Pages | ✅/❌ | ✅/❌ | ✅/❌ |
Most common inconsistencies (flag each):
Data aggregators are the foundation of the citation ecosystem. Fix these before building new citations:
| Aggregator | Listed? | NAP Correct? | Last Verified | Action |
|---|---|---|---|---|
| Data Axle (infoUSA) | ✅/❌ | ✅/❌ | ||
| Neustar/Localeze | ✅/❌ | ✅/❌ | ||
| Acxiom | ✅/❌ | ✅/❌ | ||
| Foursquare (feeds Apple Maps) | ✅/❌ | ✅/❌ |
Effort to fix Tier 1: ~2 hrs. Impact: corrects 100s of downstream directories automatically over 2–8 weeks.
| Directory | Listed? | NAP Correct? | Complete? | Priority |
|---|---|---|---|---|
| Google Business Profile | Critical | |||
| Bing Places | Critical | |||
| Apple Maps | Critical | |||
| Yelp | Critical | |||
| Facebook Business | Critical | |||
| Yellow Pages (yp.com) | High | |||
| BBB (bbb.org) | High | |||
| MapQuest | Medium | |||
| Superpages | Medium |
List 5–10 directories specific to this niche (use Whitespark Citation Finder):
| Directory | Niche Relevance | Listed? | Priority |
|---|---|---|---|
| [e.g., Angi — home services] | High | ||
| [e.g., Healthgrades — healthcare] | High | ||
| [e.g., Avvo — legal] | High |
| Issue | Directory | Action | Effort |
|---|---|---|---|
| Wrong phone | [list] | Update | 15 min each |
| Old address | [list] | Update | 15 min each |
| Duplicate listing | [list] | Merge/Remove | 30 min each |
| Missing categories | [list] | Update | 10 min each |
Local links have disproportionate impact for local pack rankings vs. generic links.
| Link Source | Domain Authority | Local Relevance | Status |
|---|---|---|---|
| Chamber of Commerce | High | ✅/❌ | |
| Local newspaper/media | High | ✅/❌ | |
| City government vendor directory | High | ✅/❌ | |
| Local charity/non-profit sponsorship | Medium | ✅/❌ | |
| Neighborhood association | Medium | ✅/❌ | |
| Local sports team sponsor | Medium | ✅/❌ |
Use Local Falcon geographic grid to map pack position across the entire city (not just one central point):
| Keyword | Local Pack Position | Maps Position | Organic Position | Competitor in Pack |
|---|---|---|---|---|
| [service] [city] | ||||
| [service] near me | ||||
| [service] [neighborhood] | ||||
| best [service] [city] | ||||
| [service] open now |
Local Falcon Grid Analysis:
AIO Appearances (test 5 core queries):
| Query | AIO Appears? | Client in AIO? | Stars/Review Shown |
|---|---|---|---|
| best [service] [city] | Yes/No | Yes/No | |
| [service] near me | Yes/No | Yes/No |
15–20% of searches occur on non-Google platforms — frequently neglected.
Use PlePer (free) to extract competitor GBP data. Use Local Falcon for grid rank comparison.
| Metric | Client | Comp 1 | Comp 2 | Comp 3 | Gap to Leader |
|---|---|---|---|---|---|
| Primary GBP category | |||||
| Secondary categories (#) | |||||
| Total photos | |||||
| Google review count | |||||
| Google average rating | |||||
| Review velocity (last 90 days) | |||||
| Response rate | |||||
| Weekly GBP posts | |||||
| Q&A seeded answers | |||||
| Local Falcon avg grid rank | |||||
| AIO appearances (5 queries) | |||||
| Apple Maps claimed | |||||
| Bing Places claimed |
Competitive opportunities:
| Issue | Impact (1–5) | Feasibility (1–5) | Priority Score | Effort |
|---|---|---|---|---|
| Primary category wrong or suboptimal | 5 | 5 | 25 | 5 min |
| <100 photos on GBP | 4 | 5 | 20 | 2–4 hrs |
| Review velocity <benchmark | 5 | 4 | 20 | 2 hrs setup (SMS system) |
| Tier 1 aggregators incorrect/missing | 4 | 4 | 16 | 2 hrs |
| NAP consistency <95% | 4 | 4 | 16 | 2–4 hrs |
| Location pages <60% unique content | 5 | 3 | 15 | 3–5 hrs/page |
| GBP Q&A not seeded | 3 | 5 | 15 | 30 min |
| No weekly GBP posts | 3 | 5 | 15 | 30 min/week |
| Apple Maps / Bing Places unclaimed | 3 | 5 | 15 | 30 min each |
| No local links (Chamber, press, etc.) | 4 | 3 | 12 | 2–8 hrs |
Week 1: Fix GBP category → upload 30+ photos → seed Q&A (5 pairs) → respond to all unanswered reviews → claim Apple Maps + Bing Places Week 2: Submit Tier 1 aggregator corrections → fix top NAP inconsistencies → schedule weekly GBP post calendar Week 3: Add FAQPage schema to top 3 service pages → set up review SMS system → run Local Falcon grid scan Week 4: Optimize 2 local landing pages (60%+ unique content + schema + CTA) → reach out to Chamber of Commerce for link
| Category | Weight | Score |
|---|---|---|
| GBP completeness & optimization (13-point checklist) | 30% | /30 |
| Review count, rating ≥4.5, velocity ≥benchmark | 20% | /20 |
| NAP consistency ≥95% across tracked citations | 20% | /20 |
| Citation completeness (Tier 1 aggregators + Tier 2 core) | 15% | /15 |
| Local landing pages (≥60% unique, schema, map) | 10% | /10 |
| Local pack ranking + AIO appearances | 5% | /5 |
Veto: GBP not claimed → maximum score 20/100. Veto: Average Google rating <3.5 → maximum score 40/100.
Write to {AUDIT_DIR}/local-findings.md with YAML frontmatter:
---
skill: local/local-seo
phase: 11
date: [YYYY-MM-DD]
business: [Business Name]
url: [URL]
score: [X/100]
status: [healthy|needs-attention|critical]
gbp_rating: [X.X]
review_count: [X]
review_velocity: [X/month]
nap_consistency_pct: [X%]
local_pack_position: [X or not-ranking]
---
Include:
Write HTML report to {REPORTS_DIR}/phase-11-local-seo.html and convert to PDF via python3 scripts/generate_pdf.py.
Key consumers:
local/entity-audit — reads for entity and sameAs signalslocal/reputation-audit — reads for review baselinelocal/multi-location-seo — uses single-location baseline for comparisoncross-cutting/local-impact-auditor — all dimensions use local findingsoutput/report-generation — local SEO section in master report