Manages local SEO strategies for service-area businesses by auditing Google Business Profiles, generating neighborhood-specific service pages, checking NAP consistency, and creating LocalBusiness schema or review responses.
Say it in your own words; the assistant finds this recipe by itself. Examples:
Use this skill when the user wants to optimize their presence in the Google Map Pack for a business that serves customers at their location, such as plumbers, cleaners, or HVAC technicians. It is appropriate for tasks like auditing a Google Business Profile, writing hyperlocal content for specific neighborhoods, ensuring name/address/phone consistency across directories, or drafting responses to customer reviews.
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.
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:
Audit and optimize the Google Business Profile to rank higher in the Map Pack.
Generate neighborhood-specific service area pages (1,000+ words) that rank for "[service] in [neighborhood]" queries.
Surface and fix Name / Address / Phone inconsistencies across major directories. Run scripts/nap_checker.py to scan.
Generate LocalBusiness schema, review response templates, and technical fixes.
Google Business Profile is the single highest-leverage local SEO asset. It drives Map Pack rankings.
You control relevance and prominence. Proximity is fixed.
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
See 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].
Service area pages rank for "[service] in [neighborhood]" searches — the highest-intent local queries.
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)
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.
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
NAP = Name, Address, Phone. Inconsistencies across the web confuse Google and suppress rankings.
Run the NAP checker:
python3 scripts/nap_checker.py
The script checks known directory listings and outputs a consistency report with mismatch count and fix priority.
| 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 | 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 |
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 for full schema examples.
LocalBusiness schema on homepage and all location/service area pagesrel="canonical" on all service area pages (avoid duplicate content)<a href="tel:+14155550100">Flag these without being asked:
| 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/nap_checker.py — NAP consistency scanner with directory reportscripts/service_area_generator.py — Service area page content generatorscripts/schema_generator.py — LocalBusiness / HomeAndConstructionBusiness JSON-LD generatorLICENSESKILL.mdreferences/local-schema-types.mdreferences/local-seo-checklist.mdreferences/review-response-templates.mdscripts/nap_checker.pyscripts/schema_generator.pyscripts/service_area_generator.pyVendored from alirezarezvani/claude-skills, commit 27cfcd0fb0a4, path marketing-skill/skills/local-seo-manager, licence MIT. The upstream licence file ships inside the skill.