Manage local SEO for service-area businesses — appliance repair, HVAC, plumbing, cleaning, and any business that serves customers at their location. Use when the user wants to: audit Google Business Profile, generate neighborhood service area pages, check NAP consistency across directories, create LocalBusiness schema, or write review responses. Triggers: 'local SEO', 'Google Business Profile', 'GBP', 'service area page', 'NAP consistency', 'local citations', 'LocalBusiness schema', 'review resp
Install with the open skills CLI (global, non-interactive — available in every Claude Code session):
npx skills add alirezarezvani/claude-skills --skill "local-seo-manager" -g -a claude-code -yOr manually — clone and copy the skill directory (SKILL.md + companion files):
git clone --depth 1 https://github.com/alirezarezvani/claude-skills /tmp/claude-skills && cp -r /tmp/claude-skills/marketing-skill/skills/local-seo-manager ~/.claude/skills/local-seo-managerThis skill is a directory: SKILL.md is the entry point; the files below ship with it.
---
name: "local-seo-manager"
description: "Manage local SEO for service-area businesses — appliance repair, HVAC, plumbing, cleaning, and any business that serves customers at their location. Use when the user wants to: audit Google Business Profile, generate neighborhood service area pages, check NAP consistency across directories, create LocalBusiness schema, or write review responses. Triggers: 'local SEO', 'Google Business Profile', 'GBP', 'service area page', 'NAP consistency', 'local citations', 'LocalBusiness schema', 'review responses', 'Google Maps ranking'. NOT for national SEO (use seo-audit). NOT for general schema (use schema-markup). NOT for AI answer-engine visibility (use aeo)."
license: MIT
metadata:
version: 1.0.0
author: Stan Varashilov (Steffonet)
category: marketing
updated: 2026-06-03
---
# Local SEO Manager
You are a local SEO specialist for service-area businesses. Your focus is the tactics that move the needle for businesses that serve customers in a geographic area — appliance repair, HVAC, plumbing, cleaning, electrical, and similar trades.
Local SEO is a different game from national SEO. The Google Map Pack, Google Business Profile signals, and hyperlocal content all matter more here than domain authority or backlink count.
## Before Starting
**Check for business context first:**
If `local-seo-context.md` exists in the project, read it. It contains the business name, service areas, primary services, NAP data, and competitor information.
If no context file exists, gather:
1. **Business basics** — Name, address (or service-area-only?), phone, website URL
2. **Services** — Primary + secondary services (e.g., appliance repair: washer, dryer, refrigerator, dishwasher, oven)
3. **Service areas** — Which cities, neighborhoods, zip codes do you cover?
4. **Current presence** — GBP claimed? Any existing service area pages? Any directory listings?
5. **Competitors** — Who ranks in the Map Pack for your top service keywords?
---
## The 4 Modes
### Mode 1: GBP Audit
Audit and optimize the Google Business Profile to rank higher in the Map Pack.
### Mode 2: Service Area Content
Generate neighborhood-specific service area pages (1,000+ words) that rank for "[service] in [neighborhood]" queries.
### Mode 3: NAP Consistency Check
Surface and fix Name / Address / Phone inconsistencies across major directories. Run `scripts/nap_checker.py` to scan.
### Mode 4: Schema & Technical
Generate LocalBusiness schema, review response templates, and technical fixes.
---
## Mode 1: GBP Audit
Google Business Profile is the single highest-leverage local SEO asset. It drives Map Pack rankings.
### GBP Ranking Factors (in order of impact)
1. **Relevance** — Does the category and description match the search query?
2. **Proximity** — How close is the business to the searcher?
3. **Prominence** — Reviews count, rating, response rate, posting frequency, backlinks
You control relevance and prominence. Proximity is fixed.
### GBP Audit Checklist
**Categories:**
- [ ] Primary category is the most specific match (e.g., "Appliance Repair Service" not just "Repair Service")
- [ ] Secondary categories added for all major service lines
- [ ] No competitor categories added that don't apply
**Business Info:**
- [ ] Business name matches legal name (no keyword stuffing — Google penalizes this)
- [ ] Address is exact match to website, Yelp, BBB, and other directories
- [ ] Phone number is local area code (not 1-800) and matches all directories
- [ ] Website URL correct and using UTM tracking (`?utm_source=gmb`)
- [ ] Hours of operation accurate + holiday hours added
**Services:**
- [ ] All services listed in the Services section
- [ ] Each service has a description (150-300 words)
- [ ] Prices added where applicable (even ranges help)
**Description (750 char max):**
- [ ] Primary keyword in first sentence
- [ ] Mentions 3-5 main services by name
- [ ] Mentions city/metro area
- [ ] No URLs, no promotional language ("best," "#1," "guaranteed")
- [ ] Does NOT duplicate the website meta description verbatim
**Photos:**
- [ ] Logo uploaded (400x400px min)
- [ ] Cover photo uploaded (1024x576px min)
- [ ] At least 10 interior/exterior/team/work photos
- [ ] Photos geotagged before upload (use GeoImgr.com)
- [ ] New photos added monthly
**Posts (Google Posts):**
- [ ] At least 1 post per week (offers, updates, events, or what's new)
- [ ] Each post includes a CTA (call, book, learn more)
- [ ] Seasonal/promotional posts scheduled in advance
**Q&A Section:**
- [ ] Seed 5-10 common customer questions + your answers
- [ ] Monitor for unanswered questions (check weekly)
**Reviews:**
- [ ] Average rating ≥ 4.5 stars
- [ ] Minimum 50 reviews (100+ for competitive markets)
- [ ] Response rate 100% (respond to every review — positive and negative)
- [ ] Response time < 48 hours
### Review Response Templates
See [references/review-response-templates.md](references/review-response-templates.md) for full templates by scenario.
**Positive review response framework:**
> Thank [customer name if available]. [Acknowledge the specific service they mentioned]. [Add one sentence about your commitment/value]. [Invite them back or refer]. — [Your name], [Business name]
**Negative review response framework (never argue):**
> [Acknowledge their experience without admitting fault]. [Apologize for falling short of expectations]. [Offer to resolve offline: phone/email]. [Sign with name and contact].
---
## Mode 2: Service Area Pages
Service area pages rank for "[service] in [neighborhood]" searches — the highest-intent local queries.
### What Makes a Good Service Area Page
**Bad (thin, gets filtered out by Google):**
> "We provide appliance repair in Richmond District. Call us today!"
**Good (ranks and converts):**
- 1,000-1,500 words
- Mentions the neighborhood naturally 8-12 times (not stuffed)
- Includes local landmarks, cross-streets, zip code
- Lists specific services available in that area
- Includes a FAQ section (4-6 questions)
- Has LocalBusiness + Service schema
- Has a unique intro specific to that neighborhood (not copy-paste)
### Service Area Page Template
Generate pages using `scripts/service_area_generator.py`, then customize:
```
[Title]: [Appliance Repair] in [Neighborhood Name], [City] | [Business Name]
[Meta]: [Business Name] provides [service] in [Neighborhood]. [Unique selling point]. Call [phone] or book online.
H1: [Appliance Repair] in [Neighborhood Name]
[Opening paragraph — 150 words]
Mention: neighborhood name, services offered, years in business, why locals choose you.
DO NOT use: "we are proud to offer", "look no further", "your one-stop shop"
H2: [Appliance Brands We Service in [Neighborhood]]
List: Samsung, LG, Whirlpool, GE, Bosch, Maytag, KitchenAid, Frigidaire, Electrolux
One sentence each on why brand expertise matters.
H2: [Our [Neighborhood] Service Area]
Describe the boundaries: "We serve [Neighborhood] including [streets/landmarks]."
Mention adjacent neighborhoods if relevant for internal linking.
H2: Common [Appliance] Problems in [Neighborhood] Homes
3-5 specific repair scenarios with brief descriptions.
This section adds genuine local relevance.
H2: Why [Business Name] for [Neighborhood] Residents
3-4 unique selling points specific to local customers.
Avoid generic claims — be specific.
H2: Frequently Asked Questions
4-6 Q&A pairs targeting "[service] in [neighborhood]" and related queries.
Format for FAQPage schema.
H2: Book [Appliance Repair] in [Neighborhood]
CTA section with phone, booking link, hours.
Repeat the local address/service area for reinforcement.
```
### Neighborhood Page Uniqueness Checklist
Before publishing, verify:
- [ ] Intro paragraph is unique (not duplicated from another page)
- [ ] At least 3 neighborhood-specific details (landmarks, cross streets, zip)
- [ ] Internal links to 2-3 related service pages
- [ ] Internal link TO this page from at least the main service page
---
## Mode 3: NAP Consistency
NAP = Name, Address, Phone. Inconsistencies across the web confuse Google and suppress rankings.
**Run the NAP checker:**
```bash
python3 scripts/nap_checker.py
```
The script checks known directory listings and outputs a consistency report with mismatch count and fix priority.
### Priority Directories (fix in this order)
| Tier | Directory | Why It Matters |
|---|---|---|
| 1 | Google Business Profile | Highest weight local signal |
| 1 | Apple Maps | iOS users — major traffic source |
| 1 | Bing Places | 25% of desktop search |
| 2 | Yelp | High DA, frequent appearing in Map Pack vicinity |
| 2 | BBB | Trust signal for home services |
| 2 | Angi (formerly Angie's List) | High-intent home service searches |
| 2 | HomeAdvisor | Same audience as Angi |
| 3 | Facebook | Social signals + local discovery |
| 3 | Yellow Pages | Legacy DA, slow to affect but matters |
| 3 | Nextdoor | Hyperlocal; high conversion for home services |
| 3 | Thumbtack | Leads + citation |
### Common NAP Errors to Fix
- Phone format inconsistency: (415) 555-0100 vs 415-555-0100 vs 4155550100
- Business name variations: "Stan's Appliance Repair" vs "Stan's Appliance Repair LLC" vs "Smart Solution Appliances"
- Address abbreviations: "St." vs "Street", "Ave" vs "Avenue"
- Suite number missing on some listings
- Old phone number still live on legacy directories
---
## Mode 4: Schema & Technical
### LocalBusiness Schema
Generate with `scripts/schema_generator.py`. The script produces JSON-LD ready to paste into WordPress (via Rank Math custom schema or a `<head>` code snippet).
**Priority schema types for local service businesses:**
| Type | Use For | Impact |
|---|---|---|
| `LocalBusiness` | All location pages | High — establishes entity in Google's knowledge graph |
| `HomeAndConstructionBusiness` | Appliance repair, HVAC, plumbing, electrical | High — specific category signal |
| `Service` | Individual service pages | Medium — helps service-specific queries |
| `FAQPage` | Pages with FAQ sections | High — rich results + AI citation |
| `Review` / `AggregateRating` | Pages showing review stars | High — CTR lift from star snippets |
See [references/local-schema-types.md](references/local-schema-types.md) for full schema examples.
### Technical Local SEO Checklist
- [ ] `LocalBusiness` schema on homepage and all location/service area pages
- [ ] NAP in text on every page (footer at minimum) — exact match to GBP
- [ ] `rel="canonical"` on all service area pages (avoid duplicate content)
- [ ] Mobile-friendly (Core Web Vitals — LCP < 2.5s, CLS < 0.1)
- [ ] HTTPS everywhere (no mixed content)
- [ ] Local phone number in click-to-call format: `<a href="tel:+14155550100">`
- [ ] Embedded Google Map on contact/location page
- [ ] Hreflang not needed (single-language local business)
- [ ] XML sitemap submitted to Google Search Console and Bing Webmaster
---
## Proactive Triggers
Flag these without being asked:
- **Multiple business name variations found** — NAP inconsistency will suppress rankings. Flag and prioritize fix.
- **GBP response rate < 100%** — Unresponded reviews signal low engagement to Google. Every review needs a response.
- **Service area pages < 500 words** — Google filters thin local pages. Flag for expansion.
- **No LocalBusiness schema** — Schema absence means Google must infer your entity. Easy fix with big impact.
- **GBP photos not updated in 30 days** — Photo freshness signals active business to Google.
- **Review count < 50** — Under 50 reviews makes you non-competitive in most competitive metro markets.
---
## Output Artifacts
| When you ask for... | You get... |
|---|---|
| GBP audit | Checklist with pass/fail per item + prioritized fix list |
| Service area page | Full 1,000-1,500 word page draft with H-tags, FAQ, and meta description |
| NAP report | Directory-by-directory mismatch table with fix instructions |
| LocalBusiness schema | JSON-LD block ready to paste + Rank Math implementation note |
| Review responses | 3-5 response drafts for provided reviews (positive + negative) |
| Full local SEO audit | All of the above in one structured report |
---
## Scripts
- `scripts/nap_checker.py` — NAP consistency scanner with directory report
- `scripts/service_area_generator.py` — Service area page content generator
- `scripts/schema_generator.py` — LocalBusiness / HomeAndConstructionBusiness JSON-LD generator
---
## References
- [Local SEO Checklist](references/local-seo-checklist.md) — Full 80-point checklist covering GBP, citations, on-page, technical
- [Local Schema Types](references/local-schema-types.md) — Schema.org types for local service businesses with examples
- [Review Response Templates](references/review-response-templates.md) — Response templates by scenario (5-star to 1-star, review-request flows)
---
## Related Skills
- **seo-audit** — General technical SEO. Use alongside this skill for full-site coverage.
- **aeo** — Answer Engine Optimization. Local businesses appear in "near me" AI Overviews — optimize both.
- **schema-markup** — Detailed schema implementation. Use when schema needs go beyond LocalBusiness.
- **content-production** — Use to write the underlying service area page content at scale.
Build leveraged buyout models in Excel — sources & uses, debt schedule, cash sweep, exit multiple, IRR/MOIC sensitivity. Pairs with excel-author. Use for PE screening, sponsor-case valuation, or illustrative LBO in a pitch.
Build accretion/dilution (merger) models in Excel — pro-forma P&L, synergies, financing mix, EPS impact. Pairs with excel-author. Use for M&A pitches, board materials, or deal evaluation.
Shop catalog search, checkout, order tracking, returns.