Install
$ agentstack add skill-norahe0304-art-30x-seo-30x-seo-local ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
Local SEO Audit & Optimization
What This Skill Does
Audit and optimize a business's local search presence across Google Business Profile, Google Maps, Local Pack, and Gemini Ask Maps.
Does NOT do:
- Traditional on-page SEO → use
seo-page - Backlink analysis → use
seo-backlinks - AI platform visibility (ChatGPT/Claude/Perplexity) → use
seo-ai-visibility
Process
Step 1: Gather Business Info
Ask user for:
| Field | Required | Example | |-------|----------|---------| | Business name | ✅ | "Blue Bottle Coffee" | | Website URL | ✅ | "https://bluebottlecoffee.com" | | Business category | ✅ | "Coffee shop" | | Service area / city | ✅ | "San Francisco, CA" | | GBP URL (if known) | Optional | Google Maps link | | Target keywords | Optional | "specialty coffee SF" | | Competitors (2-3) | Optional | Names or GBP URLs | | Multi-location? | Optional | Number of locations |
GSC Data Integration (Optional)
If user has Google Search Console access, pull local query data via seo-monitor:
/seo monitor keywords
Extract from GSC:
- Queries containing city/area names → local keyword baseline
- CTR by local keyword → identify underperformers
- Average position for "[category] near me" patterns
- Impressions vs clicks gap → missed local opportunities
This data informs Steps 2-9 with real performance context.
Step 2: GBP Completeness Audit (Google Official 13-Point Playbook)
Based on Google's official GBP Optimization Playbook (March 2026).
| # | Field | Weight | Check | |---|-------|--------|-------| | 1 | Business Information | Critical | Accurate name (no keyword stuffing), address matches license, local phone | | 2 | Business Category | Critical | Most specific primary category from 4,100+ options. Wrong category = ranking disaster (documented case: #1 → #31 from wrong category) | | 3 | Business Description | High | 750 chars, concise overview of offerings + what makes you unique, natural language | | 4 | Business Hours | High | Complete including holidays/special hours. Longer hours = ranking advantage (24/7 via answering service outperforms limited hours) | | 5 | Service Area | High | Define geographical service region (service-area businesses) | | 6 | Attributes | High | All relevant (WiFi, parking, outdoor, wheelchair access, etc.) | | 7 | Photos & Videos | High | 15+ quality photos, refresh quarterly. 100+ photos = 520% more calls, 2700% more direction requests | | 8 | Google Posts | High | Weekly cadence: updates, offers, events. Post 1-2x/week minimum — freshness is a top-tier ranking signal in 2026 | | 9 | Social Links | Medium | Link up to 7 social profiles (5 display). Google may show social posts in profile | | 10 | Chat Links | Medium | Add WhatsApp or SMS Chat for direct customer communication | | 11 | Bookings & Orders | Medium | Enable Reserve with Google, booking links, order buttons. 77% of consumers expect online booking | | 12 | Products/Services | High | Complete list with descriptions. Add all pre-defined + custom services | | 13 | Manage Reviews | Critical | Actively monitor and respond to every review |
Category Selection (Critical)
Primary category is the single most impactful GBP field:
- Choose from Google's 4,100+ options — pick the most specific match
- Monitor category changes regularly (Google updates the list)
- Verify competitors' primary categories for validation
- Wrong category = catastrophic ranking loss
Attributes to AVOID
These attributes can hide your reviews from the profile:
- ❌ "Onsite services" — removes review visibility
- ❌ "Online appointment" — removes review visibility
Only enable these if the booking functionality outweighs review visibility for your business.
Reserve with Google
Drive bookings directly from GBP without customers leaving Google:
- Live in 88+ countries
- Covers: beauty, home services, auto repair, fitness, healthcare, restaurants
- Two options: Custom Booking Link (your own URL) or Integrated Booking Partner (Google partners)
- 77% of consumers expect to book services online — missing this = losing conversions
Landing Page Strategy
- Use UTM codes on the GBP website URL to track traffic in GA4
- Do NOT link to a page that already ranks organically — Google penalizes duplicate rankings
- Link to a dedicated local landing page optimized for GBP traffic
Industry-Specific Optimization
Google released industry-specific GBP Playbooks (March 2026). Apply vertical optimizations during audit:
Food & Drink:
- Menu data must be current and complete (add menu URL)
- Enable online ordering + reservation links
- Professional food photography is non-negotiable
- Weekly posts on specials, seasonal menus, events
Service Businesses (plumbers, cleaners, HVAC, etc.):
- Define service areas clearly (no physical address display if SAB)
- Emphasize emergency availability and response times
- List all certifications, licenses, insurance
- Before/after project photos build visual credibility
Hotels & Accommodations:
- Class ratings and amenity lists
- Room photos, lobby, facilities
- Check-in/check-out times in hours
- Enable Reserve with Google
Tours & Attractions:
- Seasonal hours and availability
- Pricing tiers in products/services
- Activity photos from real customers
- Link to booking system
GBP Pro Tips (Sterling Sky Research)
| Tip | Why | |-----|-----| | Set opening date to oldest legitimate date | Builds credibility. Use company history, not just current location opening. Google may populate a random date if blank | | Extend business hours when possible | Google favors accessible businesses. 24/7 via answering service = ranking advantage | | Do NOT link GBP to a page with existing organic rankings | Google penalizes duplicate ranking — use a dedicated local page | | Remove "onsite services" and "online appointment" attributes | They hide review visibility from your profile | | Add up to 7 social profiles | Only 5 display. Google may show social posts. This is a secondary credibility layer for AI engines |
GBP Suspension Red Lines
These actions will get your GBP suspended — never do them:
| Violation | Example | Risk | |-----------|---------|------| | Keyword stuffing in business name | "Joe's Coffee - Best Coffee Shop San Francisco CA" | Immediate suspension | | Fake address / virtual office | Using a PO Box or coworking space you don't occupy | Suspension + permanent distrust | | Wrong category to game rankings | Plumber listing as "Emergency Service" | Suspension + ranking penalty | | Multiple listings for same location | Creating 2 GBPs for one address | Both suspended | | Fake reviews / review gating | Buying reviews or only asking happy customers | Review removal + penalty | | Stock photos as business photos | Using generic images not of actual business | Photo removal + trust penalty | | Operating outside stated area | SAB claiming service areas you don't serve | Ranking penalty |
If suspended: Do NOT create a new profile. Appeal through GBP support with proof of legitimacy (utility bill, business license, photos of signage).
Scoring:
GBP Score = filled fields / total applicable fields × 100
90-100%: Excellent
70-89%: Good, quick wins available
50-69%: Needs work
quantity. 4 reviews/week beats 50 reviews once then silence.
### Target Metrics
- Weekly new reviews: [X] (current: [Y])
- Response rate: 100%
- Response time: <24 hours
Step 6: Competitor Benchmarking
Local SEO is a zero-sum game — in AI Local Pack, only 1-2 businesses win. You must know what you're competing against.
Identify Top 3 Local Competitors
Methods:
- Search
[primary category] in [city]on Google Maps — top 3 in Local Pack are your competitors - Search
[target keyword]— who shows in AI Local Pack? - Ask user directly
Competitor Audit Matrix
For each competitor, use WebFetch on their GBP and website to build:
| Dimension | Your Business | Competitor A | Competitor B | Competitor C |
|-----------|--------------|-------------|-------------|-------------|
| **GBP Category** | Coffee shop | Coffee shop | Cafe | Breakfast restaurant |
| **Secondary Categories** | 2 | 4 | 1 | 3 |
| **Total Reviews** | 45 | 230 | 89 | 156 |
| **Avg Rating** | 4.3 | 4.6 | 4.1 | 4.4 |
| **Review Velocity** | ~2/week | ~8/week | ~1/week | ~4/week |
| **Photos Count** | 23 | 150+ | 45 | 80 |
| **Posts Frequency** | None | Weekly | None | Monthly |
| **Attributes Filled** | 5/15 | 12/15 | 3/15 | 9/15 |
| **Website Has Schema** | ❌ | ✅ Restaurant | ❌ | ✅ LocalBusiness |
| **Booking Enabled** | ❌ | ✅ Reserve | ❌ | ✅ Custom link |
| **Social Links** | 2 | 5 | 1 | 4 |
| **Q&A Entries** | 0 | 12 | 2 | 5 |
Gap Analysis Output
## Competitive Gaps (Prioritized)
### You're Behind On:
1. 🔴 Reviews: 45 vs competitor avg 158 — need aggressive review velocity program
2. 🔴 Photos: 23 vs competitor avg 92 — upload 70+ quality photos
3. 🟠 Attributes: 5/15 vs competitor avg 8/15 — fill all relevant attributes
### You're Ahead On:
1. ✅ Rating: 4.3 vs competitor avg 4.2 — maintain quality
2. ✅ Hours: Open later than 2 of 3 competitors
### Quick Wins to Leapfrog:
1. No competitor has Q&A populated — first mover advantage
2. Only 1 competitor posts weekly — match them immediately
Step 7: Gemini Ask Maps Optimization
This is the 2026 update — Google Maps now uses Gemini AI for conversational search ("Ask Maps"). The ranking model shifted from keyword matching to intent understanding.
What Changed
| Old Model | New Model (March 2026) | |-----------|----------------------| | "coffee near me" | "my phone is dying, where can I charge without waiting in line?" | | Keyword relevance | Intent + attribute matching | | Static profile data | Real-time activity signals | | Proximity dominates | Proximity qualifies, engagement ranks |
Ask Maps Optimization Checklist
Attribute Completeness (Gemini matches user intent to business attributes):
- [ ] All physical attributes (parking, WiFi, outdoor seating, wheelchair access)
- [ ] All service attributes (dine-in, takeout, delivery, reservations)
- [ ] All audience attributes (good for kids, pet-friendly, LGBTQ+ friendly)
- [ ] Payment methods
- [ ] Sustainability practices
Q&A as AI Training Data:
- [ ] 10-15 pre-populated Q&As
- [ ] Cover situational queries ("Do you have charging stations?", "Is there a quiet area to work?")
- [ ] Use natural conversational language, not keyword stuffing
Google Posts Freshness Signal:
- [ ] Weekly post cadence (offers, events, updates, photos)
- [ ] Posts include relevant attributes and situational context
- [ ] Seasonal/event-based posts for temporal queries
Photo Strategy for Immersive Navigation:
- [ ] Storefront photo showing relationship to nearby landmarks
- [ ] Interior photos showing ambiance, seating, facilities
- [ ] Product/menu photos with quality lighting
- [ ] Refresh every quarter with new content
- [ ] Geotagged images
Review Content as AI Context: When customers mention specific attributes in reviews ("great WiFi", "quiet workspace", "fast service"), Gemini uses this as input for matching intent queries.
Strategy:
- Encourage attribute-specific feedback in review requests
- Highlight specific experience details in response templates
- DO NOT solicit fake reviews or keyword-stuffed reviews
Step 8: AI Local Pack Readiness (2026)
Google is rolling out AI-generated local packs that fundamentally change visibility:
| Traditional Local Pack | AI Local Pack (2026) | |----------------------|---------------------| | 3 businesses shown | 1-2 businesses shown | | Call buttons visible | Call buttons replaced by images | | Broad business coverage | Only 32% as many unique businesses | | ~1% ad coverage | 22% ad coverage (up from 1% in early 2025) |
What this means:
- Competition for the top 1-2 spots is now existential, not just beneficial
- 68% fewer businesses get organic visibility in AI packs
- Local Services Ads (LSAs) grew from 11% to 31% query coverage
- Pure organic local strategy is no longer sufficient for competitive markets
Action items:
- GBP optimization must be flawless (no room for "good enough")
- Multi-location businesses have a structural advantage over single-location
- Diversify traffic sources: YouTube, Reddit, social — don't depend solely on Maps
Local Services Ads (LSA) Readiness
LSAs now cover 31% of local queries — ignoring them is leaving money on the table.
What LSAs are: Pay-per-lead ads at the very top of Google results with "Google Guaranteed" or "Google Screened" badges.
Available categories: Home services, legal, financial, healthcare, real estate, auto, pet care, and expanding.
Setup checklist:
- [ ] Check eligibility:
ads.google.com/local-services-ads - [ ] Complete background check / license verification
- [ ] Set weekly budget (pay per lead, not per click)
- [ ] Define service areas and job types
- [ ] Enable message leads + phone leads
- [ ] Track lead quality — dispute bad leads within 30 days
When to recommend LSAs:
- Competitive local market (high-value services)
- You're not in the top 2 organic Local Pack positions
- Service-based business (plumbing, legal, dental, HVAC)
- Budget available: typical CPL ranges $20-$150 depending on category
When NOT to recommend:
- Already dominating organic Local Pack
- Category not supported by LSAs
- No capacity to handle additional leads
Step 9: Local Content Strategy
Website content that supports local search:
| Content Type | Purpose | Priority | |-------------|---------|----------| | Location pages | One per physical location | Critical | | Service area pages | One per service area | High | | Local FAQ page | Conversational queries | High | | Local blog posts | Topical authority | Medium | | Event/news posts | Freshness signals | Medium |
Location Page Template:
- H1: [Service] in [City] — [Business Name]
- Unique description (300+ words, not duplicated across locations)
- Embedded Google Map
- Industry-specific schema (see Step 4)
- NAP in structured format
- Service list
- Customer testimonials from that area
- Driving directions from landmarks
- Parking information
Step 10: Multi-Location Management
Skip this step for single-location businesses.
Core Challenges
| Challenge | Wrong Approach | Right Approach | |-----------|---------------|----------------| | Brand consistency | One GBP for all locations | Separate GBP per physical location | | Content duplication | Same description copy-pasted | Unique 300+ word description per location | | Review management | One review response template | Location-specific responses referencing local details | | Schema markup | One schema block | Separate LocalBusiness schema per location page | | Landing pages | One page listing all locations | Dedicated landing page per location |
Multi-Location Checklist
- [ ] Each location has its own GBP with unique phone number
- [ ] Each location has a dedicated landing page (not
/locationswith a list) - [ ] Each landing page has unique content (not template fill-in-the-blank)
- [ ] Each location page has its own LocalBusiness schema
- [ ] NAP is consistent per-location across all platforms
- [ ] Reviews are managed per-location (respond with local context)
- [ ] Google Posts are per-location (local events, local offers)
- [ ] Photos are per-location (actual storefront, actual team, actual interior)
Location Page Differentiation
Avoid the "same page, different city name" trap. Each location page must include:
- Unique staff bios or team photos
- Neighborhood-specific directions and parking info
- Local testimonials from customers in that ar
…
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: norahe0304-art
- Source: norahe0304-art/30x-seo
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.