Score a local business using the proprietary 60-item LOCAL-IMPACT framework across 8 dimensions (Listing, Reviews, Citations, Authority, Local Content, Integrated Visibility, Performance, Tracking). 0-3 scale per item, veto checks, normalized 0-100 score. Use /score-local-impact or after audit phases. Output: {AUDIT_DIR}/local-impact-scores.md
From local-seo-auditnpx claudepluginhub anthropics/claude-plugins-community --plugin local-seo-audit-systemThis skill uses the workspace's default tool permissions.
references/README.mdGenerates platform-native social content for X, LinkedIn, TikTok, YouTube, newsletters from source material like articles, demos, docs, or notes. Adapts voice and format per platform.
Caches expensive file processing (PDFs, text extraction, images) using SHA-256 content hashes for path-independent, auto-invalidating JSON storage in Python.
Reorganizes X and LinkedIn networks: review-first pruning of low-value follows, priority-based add/follow recommendations, and drafts warm outreach in user's voice.
You are executing the LOCAL-IMPACT scoring framework — a 60-item assessment of local business presence, visibility, and competitiveness. This is the primary scoring framework for local SEO health.
Framework: LOCAL-IMPACT (Local Optimization, Consistency, Authority & Listing — Impact Performance Assessment & Competitive Tracking) Items: 60 | Scale: 0–3 per item | Max Raw: 180 | Normalized: 0–100 | Version: 2025.1
Before scoring, confirm you have:
business name + location on Google Maps){AUDIT_DIR}/If missing, collect before proceeding. Read {AUDIT_DIR}/intake-data.md for all context.
Load the complete rubric from references/local-impact-benchmark.md.
| Code | Dimension | Items | Max | Key Tools |
|---|---|---|---|---|
| L | Listing Quality | 10 | 30 | Google Maps, GBP dashboard, BrightLocal |
| O | Online Reviews | 10 | 30 | BrightLocal, Podium, ReviewTrackers |
| C | Citation Consistency | 10 | 30 | BrightLocal, Whitespark, Yext |
| A | Authority Signals | 10 | 30 | Ahrefs, Majestic, Moz Link Explorer |
| L2 | Local Content | 5 | 15 | Screaming Frog, GSC, site_crawler.py |
| I | Integrated Visibility | 5 | 15 | Apple Maps, Bing Places, Otterly.ai |
| P | Performance | 5 | 15 | PageSpeed Insights, GTmetrix, Lighthouse |
| T | Tracking | 5 | 15 | GA4, GSC, CallRail, Hotjar |
Primary tool: Google Business Profile dashboard or Google Maps listing 2025 GBP Completeness Checklist:
?utm_source=google&utm_medium=organic&utm_campaign=gbp)Benchmark thresholds:
Primary tools: BrightLocal Review Dashboard, Google Maps, Podium, ReviewTrackers 2025 Review Benchmarks (Local Pack Competitiveness):
| Metric | Score 3 (Excellent) | Score 2 (Good) | Score 1 (Weak) | Score 0 (Absent) |
|---|---|---|---|---|
| Google rating | ≥4.5 stars | 4.0–4.4 stars | 3.5–3.9 stars | <3.5 stars |
| Google review count | ≥50 reviews | 25–49 reviews | 10–24 reviews | <10 reviews |
| Review velocity | ≥4 new/month | 2–3 new/month | 1 new/month | <1 per month |
| Response rate | ≥90% responded | 70–89% | 50–69% | <50% |
| Response time | <24 hours | 24–72 hours | 3–7 days | >7 days |
| Review platforms | 4+ platforms | 3 platforms | 2 platforms | 1 platform only |
Multi-platform check: Google, Yelp, Facebook, TripAdvisor, BBB, Houzz, Healthgrades, Avvo (per industry) AI visibility angle: Google AI Overviews pulls review ratings — businesses with <4.0 stars are rarely featured
Primary tools: BrightLocal Citation Audit, Whitespark Citation Finder, Yext Knowledge Network NAP Consistency Check:
Tier 1 Citations (must be present): Data Axle (formerly Infogroup), Neustar/Localeze, Acxiom, Foursquare — these feed hundreds of downstream directories
Tier 2 Citations (local pack important): Google Business Profile, Yelp, Facebook, BBB, Apple Maps, Bing Places, Foursquare, Yellow Pages, MapQuest
Inconsistency threshold: >3 NAP inconsistencies across top 50 citations → Score 0–1
Primary tools: Ahrefs Site Explorer, Majestic (Trust Flow / Citation Flow), Moz Domain Authority Local Authority Benchmarks:
| Signal | Score 3 | Score 2 | Score 1 | Score 0 |
|---|---|---|---|---|
| Domain Rating (Ahrefs DR) | >30 | 15–30 | 5–14 | <5 |
| Local referring domains | >25 local RDs | 10–25 | 3–9 | <3 |
| Chamber of Commerce link | Present | — | — | Absent |
| BBB accreditation | Accredited | Listed | — | Not listed |
| .edu / .gov links | Any present | — | — | None |
| Industry association links | 3+ | 1–2 | — | None |
Local link types to check: Chamber of Commerce, local newspaper mentions, city/county business directories, industry associations, local sponsorships
Primary tools: Screaming Frog, {DATA_DIR}/crawl/ (site_crawler.py output), GSC Content Thresholds:
Tools: Apple Maps Connect, Bing Places for Business, Otterly.ai (AI mention tracking) 2025 Visibility Checklist:
Primary tools: Google PageSpeed Insights (pagespeed.web.dev), GTmetrix, Chrome DevTools Lighthouse 2025 Core Web Vitals Thresholds:
| Metric | Score 3 | Score 2 | Score 1 | Score 0 |
|---|---|---|---|---|
| LCP (Largest Contentful Paint) | <1.8s | 1.8–2.5s | 2.5–4.0s | >4.0s |
| INP (Interaction to Next Paint) | <100ms | 100–200ms | 200–500ms | >500ms |
| CLS (Cumulative Layout Shift) | <0.05 | 0.05–0.10 | 0.10–0.25 | >0.25 |
| Mobile PageSpeed score | >90 | 70–90 | 50–69 | <50 |
| TTFB (Time to First Byte) | <400ms | 400–800ms | 800–1800ms | >1800ms |
Note: INP replaced FID as a Core Web Vital in March 2024.
Primary tools: GA4, Google Search Console, CallRail/WhatConverts (call tracking) Tracking Checklist:
For each of the 60 items in references/local-impact-benchmark.md, assign:
| Score | Label | Meaning |
|---|---|---|
| 0 | Absent | Not implemented at all |
| 1 | Weak | Partially implemented, significant gaps |
| 2 | Good | Implemented correctly, minor improvements possible |
| 3 | Excellent | Fully optimised, best-in-class implementation |
Record evidence for every score — no unsupported scores.
Apply BEFORE calculating final score. Highest applicable cap wins.
| Veto | Condition | Score Cap | Rationale |
|---|---|---|---|
| V01 | GBP not claimed or verified | 15 | Unverified GBP cannot rank in local pack |
| V02 | Website not indexed by Google | 10 | No indexation = no organic presence |
| V03 | Active Google manual penalty | 10 | Penalty suppresses all rankings |
| V04 | NAP wrong on website + GBP + majority of citations | 20 | NAP inconsistency destroys trust signals |
| V05 | Zero Google reviews | 25 | No social proof — cannot compete locally |
| V06 | No SSL certificate | 20 | Security requirement since 2018; Chrome warns users |
raw_score = sum of all 60 item scores # Max: 180
normalized = (raw_score / 180) * 100 # Max: 100
veto_cap = min(triggered veto caps, default=100)
final_score = min(normalized, veto_cap) # Final: 0–100
Use python3 scripts/score_calculator.py --both --li-file {AUDIT_DIR}/local-impact-scores.md to compute automatically.
Score each top competitor on the same 60 items (abbreviated — focus on observable signals):
Quick wins = items currently at score 0 or 1 that can reach score 3 in <2 hours:
| Quick Win | Current Score | Effort | Expected Gain | Priority Score (I×F) |
|---|---|---|---|---|
| Add GBP Q&A (10 seeded questions) | 0 | 30 min | +3 pts L | 5×5=25 |
| Upload 20+ GBP photos | 0–1 | 45 min | +3 pts L | 5×5=25 |
| Respond to all existing reviews | 0–1 | 1–2 hrs | +3 pts O | 5×5=25 |
| Submit to Data Axle + Neustar | 0 | 1 hr | +6 pts C | 5×4=20 |
| Install call tracking (CallRail) | 0 | 1 hr | +3 pts T | 4×5=20 |
| Verify Apple Maps + Bing Places | 0 | 30 min | +3 pts I | 4×5=20 |
| Add schema markup (LocalBusiness) | 0–1 | 2 hrs | +3 pts A | 5×4=20 |
Write structured output to {AUDIT_DIR}/local-impact-scores.md:
---
skill: cross-cutting/local-impact-auditor
phase: scoring
date: [YYYY-MM-DD]
business: [Business Name]
url: [URL]
score: [X/100]
status: complete
---
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
LOCAL-IMPACT SCORECARD — 2025 Edition
Business: [Name]
URL: [URL]
Location: [City, State]
Date: [Date]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
OVERALL SCORE: [X] / 100 Grade: [A-F]
Dimension Breakdown:
L Listing Quality [XX/30] ████████░░ [X%] — [key gap]
O Online Reviews [XX/30] ███████░░░ [X%] — [key gap]
C Citation Consistency [XX/30] █████░░░░░ [X%] — [key gap]
A Authority Signals [XX/30] ████████░░ [X%] — [key gap]
L2 Local Content [XX/15] ██████░░░░ [X%] — [key gap]
I Integrated Visibility [XX/15] ███████░░░ [X%] — [key gap]
P Performance [XX/15] ████████░░ [X%] — [key gap]
T Tracking [XX/15] █████░░░░░ [X%] — [key gap]
Veto Checks:
[✅/❌] V01: GBP Claimed & Verified
[✅/❌] V02: Website Indexed by Google
[✅/❌] V03: No Active Google Penalty
[✅/❌] V04: NAP Consistent (website + GBP + citations)
[✅/❌] V05: Has Google Reviews (>0)
[✅/❌] V06: SSL Certificate Active
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
COMPETITOR COMPARISON
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
| Dimension | Client | Comp 1 | Comp 2 | Comp 3 | Gap |
|------------|--------|--------|--------|--------|-----|
| Overall | XX | XX | XX | XX | ± |
| Listing | XX | XX | XX | XX | ± |
| Reviews | XX | XX | XX | XX | ± |
| Citations | XX | XX | XX | XX | ± |
| Authority | XX | XX | XX | XX | ± |
| Performance| XX | XX | XX | XX | ± |
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
TOP 5 IMPROVEMENT PRIORITIES
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1. [Item ID]: [Description] — Score: X/3 — Impact: [High] — Effort: [X hrs] — Priority: [I×F]
2. [Item ID]: [Description] — Score: X/3 — Impact: [High] — Effort: [X hrs] — Priority: [I×F]
3. [Item ID]: [Description] — Score: X/3 — Impact: [Med] — Effort: [X hrs] — Priority: [I×F]
4. [Item ID]: [Description] — Score: X/3 — Impact: [Med] — Effort: [X hrs] — Priority: [I×F]
5. [Item ID]: [Description] — Score: X/3 — Impact: [Low] — Effort: [X hrs] — Priority: [I×F]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
QUICK WINS (<2 hrs each, immediate gains)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
• [Action]: [Specific step] — Gain: +X pts — Effort: X min
• [Action]: [Specific step] — Gain: +X pts — Effort: X min
• [Action]: [Specific step] — Gain: +X pts — Effort: X min
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
AI VISIBILITY ASSESSMENT (2025)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Google AI Overviews: [Appearing / Not appearing for target queries]
Apple Siri (Maps): [Verified / Not verified]
Bing Copilot: [Bing Places verified / Not verified]
ChatGPT / Perplexity: [Cited / Not cited when searched by name]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
framework: LOCAL-IMPACT
version: 2025.1
date: [YYYY-MM-DD]
business: [name]
url: [url]
location: [city, state]
scores:
overall: [0-100]
grade: [A+-F]
raw: [0-180]
dimensions:
L: { raw: X, max: 30, pct: X, key_gap: "" }
O: { raw: X, max: 30, pct: X, key_gap: "" }
C: { raw: X, max: 30, pct: X, key_gap: "" }
A: { raw: X, max: 30, pct: X, key_gap: "" }
L2: { raw: X, max: 15, pct: X, key_gap: "" }
I: { raw: X, max: 15, pct: X, key_gap: "" }
P: { raw: X, max: 15, pct: X, key_gap: "" }
T: { raw: X, max: 15, pct: X, key_gap: "" }
vetoes_triggered: []
final_cap: 100
competitors:
- name: [comp1]
score: X
key_advantage: ""
- name: [comp2]
score: X
key_advantage: ""
- name: [comp3]
score: X
key_advantage: ""
quick_wins: []
ai_visibility: { google_aio: false, apple_maps: false, bing: false, chatgpt: false }
After scoring, save results to {AUDIT_DIR}/local-impact-scores.md for:
output/report-generation — integrates into master report section 3output/pdf-report — renders LOCAL-IMPACT dashboard gauge in PDF covercross-cutting/serp-trust-auditor — SEO Health Index = (LOCAL-IMPACT × 0.55) + (SERP-TRUST × 0.45)