analyst marketing skill risk: low
Local SEO Analysis Report Generator
Detects business type and industry vertical from page signals, evaluates six local SEO dimensions including GBP signals, reviews, on-page SEO, NAP consistency, schema markup, and l…
SKILL 2 files
SKILL.md
---
name: seo-local
description: ")"
---
# Local SEO Analysis (March 2026)
## Key Statistics
| Metric | Value | Source |
|--------|-------|--------|
| GBP signals share of local pack weight | 32% | Whitespark 2026 |
| Proximity share of ranking variance | 55.2% | Search Atlas ML study |
| Review signals share (up from 16%) | ~20% | Whitespark 2026 |
| Google searches seeking local info | 46% | Industry data |
| Mobile "near me" searches leading to visit in 24h | 76% | Google confirmed |
| ChatGPT/AI usage for local recommendations | 45% (up from 6%) | BrightLocal LCRS 2026 |
| ChatGPT local conversion rate | 15.9% | Seer Interactive |
| Google organic local conversion rate | 1.76% | Seer Interactive |
| Local pack ads growth (Jan 2025 to Jan 2026) | 1% to 22% | Sterling Sky |
---
## Business Type Detection
Detect from page signals before analysis. This determines which checks apply.
### Brick-and-Mortar
- Physical street address visible in page content or footer
- Google Maps embed with pin/directions
- "Visit us at", "Located at", "Come see us"
- Structured address in LocalBusiness schema
### Service Area Business (SAB)
- No visible physical address
- Service area mentions: "serving [city/region]", "service area includes"
- "We come to you", "On-site service", "Mobile [service]"
- `areaServed` in schema without `address.streetAddress`
### Hybrid
- Both physical address AND service area language present
- "Visit our showroom" combined with "We also serve [areas]"
**Impact on checks**: SABs skip embedded map verification and physical address consistency. Brick-and-mortar gets full NAP + map checks.
---
## Industry Vertical Detection
Detect from page signals and GBP category patterns. Routes to industry-specific checks from `references/local-schema-types.md`.
| Vertical | Detection Signals |
|----------|------------------|
| **Restaurant** | /menu, menu items, reservations, cuisine types, food ordering, "dine-in", "takeout" |
| **Healthcare** | insurance accepted, patients, appointments, NPI, medical terms, "Dr.", HIPAA notice |
| **Legal** | attorney, lawyer, practice areas, bar admission, case results, "free consultation" |
| **Home Services** | service area, emergency service, "free estimate", licensed/insured/bonded, "24/7" |
| **Real Estate** | listings, MLS, properties for sale/rent, agent bio, brokerage, "open house" |
| **Automotive** | inventory, VIN, test drive, dealership, service department, "new/used/certified" |
If no vertical detected, use generic `LocalBusiness` analysis path.
---
## Analysis Dimensions
### 1. GBP Signals (25%)
Primary category is the **single most important local pack factor** (Whitespark #1, score: 193). Incorrect primary category is the **#1 negative factor** (score: 176).
**Check for:**
- GBP embed or reference detectable on page (Maps iframe, place ID, reviews widget)
- Primary category appropriateness (infer from page content vs visible GBP data)
- Evidence of secondary categories (optimal: 4 additional per BrightLocal)
- GBP posts presence (no direct ranking impact per WebFX, but triggers Post Justifications)
- Photos/video evidence (45% more direction requests with photos, Agency Jet)
- Q&A content (deprecated Dec 2025, replaced by Ask Maps Gemini AI -- recommend recreating Q&A content as FAQ sections on website; GBP removed existing Q&A with no export available)
- Google Verified badge eligibility (replaced Guaranteed/Screened in Oct 2025)
- GBP link URL strategy: do NOT link to strongest website page (Sterling Sky Diversity Update -- risks suppressing organic rankings)
- Business hours visibility on page (businesses open at search time rank higher, factor #5)
**Scoring guide:**
- Full: GBP embed present, category signals align, posts active, photos present
- Partial: Some GBP signals present but incomplete
- Low: No visible GBP integration on website
### 2. Reviews & Reputation (20%)
Review velocity matters more than total count. The **18-day rule** (Sterling Sky): rankings cliff if no new reviews for 3 weeks.
**Check for:**
- Total Google review count visible on page or schema (magic threshold: 10, Sterling Sky)
- Star rating (31% of consumers only use 4.5+, 68% only use 4+, BrightLocal 2026)
- Review recency indicators (74% only care about reviews in last 3 months)
- `aggregateRating` in schema (ratingValue, reviewCount, bestRating)
- Third-party review presence (consumers use average of 6 review sites, BrightLocal 2026)
- Owner response patterns (88% would use business that responds, BrightLocal)
- Review gating detection: any pre-screening of satisfaction before directing to review platform is prohibited by Google (fake engagement policy) and FTC ($53,088/violation)
**Industry-specific:**
- Healthcare: HIPAA prohibits confirming/denying reviewer is a patient in responses
- Legal: attorney-client privilege considerations in review responses
**Scoring guide:**
- Full: 10+ reviews, 4.5+ stars, recent activity, owner responses, multi-platform presence
- Partial: Some reviews but gaps in recency, rating, or response rate
- Low: <10 reviews, no recent activity, no responses, single platform only
### 3. Local On-Page SEO (20%)
Dedicated service pages = **#1 local organic factor AND #2 AI visibility factor** (Whitespark 2026).
**Check for:**
- Title tag contains city/service keywords
- H1 tag with local intent (city + service)
- NAP (Name, Address, Phone) visible in page HTML (footer, contact section, header)
- Dedicated service pages (one page per core service)
- Location page quality for multi-location sites:
- **>60-70% unique content** minimum (industry consensus, no Google-confirmed threshold)
- **Swap test**: if you can swap the city name and content still makes sense, it's a doorway page (RicketyRoo method). HVAC company lost 80% rankings + 63% traffic after March 2024 Core Update for this pattern
- Local photos, area-specific testimonials, local FAQs
- Embedded Google Map (geographic signal reinforcement, not direct ranking factor -- lazy-load to mitigate speed impact)
- Click-to-call button (`tel:` link) and contact form above the fold
- Internal linking architecture: hub-and-spoke, every critical page within 3 clicks of homepage
- 2-5 contextual internal links per 1,000 words with descriptive anchor text
**Multi-location specific:**
- Store locator with individual crawlable URLs (SSR/SSG preferred over CSR)
- Subdirectory structure: `domain.com/locations/city-name/` (subdirectories consolidate link equity better, Bruce Clay: 50%+ traffic lift)
- Each location page has unique LocalBusiness schema with `@id`
**Scoring guide:**
- Full: City in title + H1, NAP visible, dedicated service pages, no doorway patterns, good internal linking
- Partial: Some local signals but missing service pages or doorway page risk
- Low: Generic title/H1, NAP not visible, thin location pages
### 4. NAP Consistency & Citations (15%)
Citations declining for traditional pack rankings but **3 of top 5 AI visibility factors are citation-related** (Whitespark 2026). Google's July 2025 documentation update removed "directories" from prominence definition.
**Check for:**
- NAP extraction: compare Name, Address, Phone from:
1. Visible page HTML (footer, contact page)
2. LocalBusiness JSON-LD schema
3. Any visible GBP data
- Flag any discrepancies between these three sources
- Citation presence on Tier 1 directories (check via WebFetch or site: search patterns):
- Google Business Profile signals on page
- Yelp: `site:yelp.com "Business Name"`
- BBB: `site:bbb.org "Business Name"`
- Facebook business page references
- Apple Business Connect awareness (usage doubled to 27%, BrightLocal 2026 -- recommend claiming)
- Bing Places awareness (powers ChatGPT, Copilot, Alexa -- recommend claiming and optimizing)
- Industry-specific directory recommendations: load `references/local-schema-types.md` for per-vertical citation sources
- Data aggregator awareness: Data Axle, Foursquare, Neustar/TransUnion (recommend submission for downstream distribution)
**Scoring guide:**
- Full: Consistent NAP across page/schema, Tier 1 citations detected, industry directories present
- Partial: NAP present but inconsistencies, some citations missing
- Low: NAP discrepancies, no detectable citations, no schema address
### 5. Local Schema Markup (10%)
Schema is NOT a direct ranking factor (John Mueller confirmed). But enables rich results (43% CTR increase, Webstix case study) and helps AI systems parse business information.
**Check for:**
- LocalBusiness schema presence (extract JSON-LD blocks)
- Required properties: `name`, `address` with PostalAddress sub-properties
- Recommended properties: `geo` (minimum 5 decimal places, Confirmed), `openingHoursSpecification`, `telephone`, `url`, `priceRange` (<100 chars), `image`, `aggregateRating`
- **Correct subtype for industry** -- load `references/local-schema-types.md`:
- Restaurant using `Restaurant` not generic `LocalBusiness`
- Legal using `LegalService` not deprecated `Attorney`
- Auto dealer using `AutoDealer` not deprecated `VehicleListing`
- Healthcare using `MedicalClinic`/`Hospital`/`Dentist` not generic `MedicalBusiness`
- SAB-specific: `areaServed` with named cities (recommended, not in Google's official list but Schema.org supported)
- Multi-location: each location page has own LocalBusiness with unique `@id`, linked via `branchOf` to Organization on homepage
- Industry-specific schema patterns (per `references/local-schema-types.md`):
- Restaurant: Menu + MenuSection + MenuItem + ReserveAction
- Healthcare: Physician (Person) + MedicalSpecialty + sameAs to NPI
- Legal: LegalService + Person + Service (practice areas)
- Home Services: Subtype + areaServed + Service
- Real Estate: RealEstateAgent + Person + RealEstateListing
- Automotive: AutoDealer + Car + Offer (separate dept schemas)
**Scoring guide:**
- Full: Correct subtype, all recommended properties, industry-specific patterns, valid JSON-LD
- Partial: LocalBusiness present but generic type or missing recommended properties
- Low: No local schema, or schema with errors/placeholder content
### 6. Local Link & Authority Signals (10%)
Links declining for local pack but remain **~26% of local organic ranking** (Whitespark 2026, #2 factor group). "Best of" list placements = **#1 AI visibility citation factor**.
**Check for:**
- Local backlink indicators detectable from page:
- Chamber of Commerce mentions or links (high Trust Flow, ~80% more consumer visits, GlueUp)
- BBB accreditation/badge (Google uses BBB for business verification)
- Local news/press mentions
- Community involvement signals (sponsorships, local events, partnerships)
- "Best of" list presence (top AI visibility factor per Whitespark 2026)
- Digital PR signals: 66.2% of PR practitioners now track AI citations as KPI (BuzzStream 2026)
- Brand mentions correlate **3x more strongly** with AI visibility than traditional backlinks (Ahrefs: 0.664 vs 0.218 correlation)
- Link velocity benchmark: 5-10 quality local links/month for small businesses (consensus)
**Scoring guide:**
- Full: Local authority signals visible (chamber, BBB, press), community involvement evident
- Partial: Some authority signals but limited local link indicators
- Low: No detectable local authority signals
---
## AI Search Impact on Local
**Do not duplicate seo-geo analysis.** Provide local-specific AI context and recommend `/seo geo <url>` for full analysis.
Key local AI facts:
- AI Overviews appear on up to 68% of local searches (Whitespark Q2 2025)
- ChatGPT converts at 15.9% vs Google organic at 1.76% (Seer Interactive)
- 3 of top 5 AI visibility factors are citation-related (Whitespark 2026)
- ChatGPT does NOT access GBP directly -- sources from Bing index, Yelp, TripAdvisor, BBB, Reddit
- Bing Places is critical: powers ChatGPT, Copilot, Alexa
- AI-powered local packs (mobile US) show only 1-2 businesses, 32% fewer shown (Sterling Sky)
**Recommendation**: Run `/seo geo <url>` for comprehensive AI search visibility analysis including citability scoring, llms.txt check, and brand mention audit.
---
## Reference Files
Load on-demand as needed:
- `references/local-seo-signals.md`: Ranking factors, review benchmarks, citation tiers, GBP feature status, algorithm updates
- `references/local-schema-types.md`: LocalBusiness subtypes by industry, schema patterns, citation sources per vertical
---
## Output
Generate `LOCAL-SEO-ANALYSIS-{domain}.md` with:
1. **Local SEO Score: XX/100** with dimension breakdown table
2. **Business type**: Brick-and-mortar / SAB / Hybrid
3. **Industry vertical detected** + industry-specific findings
4. **GBP optimization checklist** (detected signals vs missing)
5. **Review health snapshot** (rating, count, velocity indicators, response patterns)
6. **NAP consistency audit** (page vs schema discrepancies, cross-source comparison)
7. **Citation presence check** (Tier 1 directory status)
8. **Local schema status** (present/missing/malformed + ready-to-use fix)
9. **Location page quality** (if multi-location: unique content %, doorway risk, store locator)
10. **Top 10 prioritized actions** (Critical > High > Medium > Low)
11. **Limitations disclaimer**: What this analysis could NOT assess (geo-grid ranking, Domain Authority, comprehensive backlinks, GBP Insights data, real-time local pack position) and which paid tools can fill those gaps
---
## Quick Wins
1. Claim and optimize Apple Business Connect (usage doubled to 27%)
2. Claim and optimize Bing Places (powers ChatGPT, Copilot, Alexa)
3. Fix any NAP discrepancies between page, schema, and GBP
4. Add LocalBusiness schema with correct industry subtype
5. Add `geo` coordinates with 5+ decimal precision
6. Ensure phone number uses `tel:` link for click-to-call
7. Add city + service keyword to title tag and H1
## Medium Effort
1. Create dedicated page for each core service (Whitespark: #1 local organic factor)
2. Build review generation strategy maintaining 18-day minimum cadence
3. Submit to three data aggregators (Data Axle, Foursquare, Neustar/TransUnion) for downstream distribution
4. Claim industry-specific directory listings (per vertical recommendations)
5. Add industry-specific schema patterns (Menu for restaurants, Physician for healthcare, etc.)
6. Implement hub-and-spoke internal linking for service/location pages
## High Impact
1. Build local digital PR strategy targeting "best of" lists (#1 AI visibility factor)
2. Develop unique, non-swappable content for each location page (>60% unique)
3. Establish presence on platforms ChatGPT sources from (Yelp, TripAdvisor, BBB, Reddit)
4. Pursue Chamber of Commerce and BBB membership (authority + verification signals)
5. Create community involvement content (sponsorships, local events, partnerships)
---
## DataForSEO Integration (Optional)
If DataForSEO MCP tools are available, use `local_business_data` for live GBP data extraction, `google_local_pack_serp` for real-time local pack positions, and `business_listings` for automated citation auditing across directories.
---
## Error Handling
| Scenario | Action |
|----------|--------|
| URL unreachable (DNS failure, connection refused) | Report the error clearly. Do not guess site content. Suggest the user verify the URL and try again. |
| No local signals detected on page | Report that no local business indicators were found. Suggest the user confirm this is a local business and provide the GBP listing URL if available. |
| NAP not found in page HTML | Check schema and meta tags. If still absent, flag as Critical issue. Recommend adding visible NAP to footer and contact page. |
| Industry vertical unclear | Present the top two detected verticals with supporting signals. Ask the user to confirm before applying industry-specific recommendations. |
| Multi-location with 50+ location pages | Apply the quality gates from seo orchestrator: WARNING at 30+ pages (enforce 60%+ unique), HARD STOP at 50+ pages (require user justification before continuing). |
## FLOW Framework Integration
For prompt-guided local optimization, use `/seo flow local <url>` — FLOW's 11 local-stage prompts cover GBP optimization, meta descriptions, title tags, and structured local audit workflows.
INPUTS
- domain REQUIRED
domain extracted from the analyzed URL
e.g. example.com
REQUIRED CONTEXT
- target URL or page HTML
OPTIONAL CONTEXT
- DataForSEO MCP tools availability
TOOLS REQUIRED
- web_fetch
- local_business_data
- google_local_pack_serp
- business_listings
ROLES & RULES
- Detect business type from page signals before analysis
- Detect industry vertical from page signals and GBP category patterns
- Do not duplicate seo-geo analysis
- Do NOT link to strongest website page
- Report the error clearly when URL unreachable
- Do not guess site content
- Present the top two detected verticals when industry vertical unclear
EXPECTED OUTPUT
- Format
- markdown
- Schema
- markdown_sections · Local SEO Score: XX/100 with dimension breakdown table, Business type, Industry vertical detected + industry-specific findings, GBP optimization checklist, Review health snapshot, NAP consistency audit, Citation presence check, Local schema status, Location page quality, Top 10 prioritized actions, Limitations disclaimer
- Constraints
- filename must be LOCAL-SEO-ANALYSIS-{domain}.md
- include Local SEO Score with dimension breakdown table
- cover all 11 numbered sections exactly
- use Critical > High > Medium > Low prioritization
SUCCESS CRITERIA
- Generate LOCAL-SEO-ANALYSIS-{domain}.md
- Include dimension breakdown table
- Provide business type and industry vertical
- Deliver GBP, review, NAP, citation, schema, and location audits
- List top 10 prioritized actions categorized by impact
FAILURE MODES
- May fail to detect vertical when signals are ambiguous
- May produce incomplete analysis without reference files loaded
CAVEATS
- Dependencies
- references/local-seo-signals.md
- references/local-schema-types.md
- DataForSEO MCP tools (optional)
- Missing context
- Explicit input specification (target URL or domain)
- Access method or content for the referenced files (references/local-seo-signals.md, references/local-schema-types.md)
- Ambiguities
- The 'description' field contains only ")" which appears to be a formatting error.
QUALITY
- OVERALL
- 0.88
- CLARITY
- 0.85
- SPECIFICITY
- 0.92
- REUSABILITY
- 0.88
- COMPLETENESS
- 0.90
IMPROVEMENT SUGGESTIONS
- Replace the malformed description field with a concise one-sentence purpose statement.
- Add a clear 'Inputs' section specifying required parameters such as target URL and optional GBP data.
USAGE
Copy the prompt above and paste it into your AI of choice — Claude, ChatGPT, Gemini, or anywhere else you're working. Replace any placeholder sections with your own context, then ask for the output.
MORE FOR ANALYST
- Mobile Gaming UA Creative Network Analyzeranalystmarketing
- Programmatic SEO Analysis Planneranalystmarketing
- Academic Research Brainstorm and Improvement Analyzeranalystresearch
- ML Missing Values Treatment Pipelineanalystanalysis
- Quantitative Sports Betting Edge Evaluatoranalystanalysis
- B2B Manufacturing Homepage Tech-SEO Diagnosticanalystanalysis
- OSINT US Surveillance Source Investigatoranalystresearch
- Curated Compendium of Cuckold BNWO Websitesanalystresearch
- US Indices Market News and Sentiment Reporteranalystfinance
- Technical Academic Paper Revieweranalystanalysis
- UX Landing Page Conversion Analyzeranalystanalysis
- Incident Root Cause Analysis Generatoranalystoperations
- Crypto 2026 Outlook Summary Analystanalystfinance
- TAM SAM SOM Market Size Estimatoranalystanalysis
- Academic Research Paper Evaluatoranalystevaluation
- French Banking Regulatory Text Reformulatoranalystwriting
- PyDESeq2 RNA-seq Differential Expression Guideanalystanalysis
- RNA-seq Differential Expression Analysis Guideanalystresearch
- CSV Data Audit and Cleaning Pipelineanalystanalysis
- BEHAVIOR-1K Dataset Research Assistantanalystresearch
- A/B Test Statistical Results Evaluatoranalystanalysis
- Statistical Test Selection and APA Reportinganalystanalysis
- Cohort Retention and Feature Adoption Analyzeranalystanalysis
- DAX Terminal for Sales Data Model Measuresanalystcoding
- CTI Analyst for Cybersecurity Project Revisionsanalystsecurity