Marketing Foundation
Compact two-skill starter: clarify positioning and choose a lead magnet. Use Marketing Launch for the broader eight-skill go-to-market workflow.
The tunnel uses the same cards as the catalogue. Browse only as deep as needed — or load a broad bundle immediately.
SEO, Sales, Agents or another broad area → one bundle call → work.
Read-only access to published skills. Default 8, maximum 10 skills / 120,000 characters.
Compact two-skill starter: clarify positioning and choose a lead magnet. Use Marketing Launch for the broader eight-skill go-to-market workflow.
Build an evidence-led marketing plan from ICP and competition through positioning, campaigns, growth and measurement.
Diagnose architecture and context, plan agent-team responsibilities, then organize project context and session handoffs. Memory and cost-runtime reviews remain outside this pack.
Review the journey from landing page and lead capture through registration, first value and transparent upgrades.
Plan a campaign, draft its channel content and review the work against actual brand guidance.
Prioritize an editorial roadmap and plan how to launch and distribute it across suitable channels.
Understand customer needs, compare competitors and plan a community around real member value.
Choose a relevant lead magnet, then draft a permission-based nurture journey with entry, suppression and exit rules.
Define the API contract, then plan how to observe its latency, failures and retries. Guidance and checklist; no production changes.
Profile a dataset, choose and interpret statistical methods, then validate calculations and conclusions before sharing.
Review service-area business profiles, location content, NAP and local schema.
---
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.
Review service-area business profiles, location content, NAP and local schema.
The complete original workflow with attributed authorship and explicit limitations.
Confirm inputs, distinguish evidence from assumptions and apply the source within the actual task.
Actual business details, approved service areas, authorized profile data and genuine reviews.
Original source screened for obvious dangerous instructions; not functionally tested. Original metadata names Stan Varashilov (Steffonet). Scripts and local SEO/schema references are not supplied. Word counts, review minimums, geotagging and ranking claims are unverified heuristics. Do not fabricate reviews, service locations or local claims. Schema markup does not guarantee rich results; profile changes need authorization. Other referenced tools, scripts, files and sibling skills are not bundled or installed unless explicitly listed as included.
Use Service Area Local SEO for [TASK]. Ask for missing inputs: Actual business details, approved service areas, authorized profile data and genuine reviews. Respect the declared limitations; show evidence, assumptions and unresolved requirements separately.
Claiming that missing tools are installed, illustrative metrics are verified or external actions are authorized merely by loading the source.
M11 added German routing, scope and limitations. Original author: Stan Varashilov (Steffonet). Original source screened for obvious dangerous instructions; not functionally tested. Original metadata names Stan Varashilov (Steffonet). Scripts and local SEO/schema references are not supplied. Word counts, review minimums, geotagging and ranking claims are unverified heuristics. Do not fabricate reviews, service locations or local claims. Schema markup does not guarantee rich results; profile changes need authorization. Other referenced tools, scripts, files and sibling skills are not bundled or installed unless explicitly listed as included.
MIT License Copyright (c) 2025 Alireza Rezvani Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Copy the text below, then paste it into your chat.