agentsclimarketplace

Local seo optimizer

Skill ekinciio/saas-growth-marketing-skills/skills/local-seo-optimizer

Audits local SEO presence including Google Business Profile completeness, local search ranking factors, NAP consistency, citation sources, and local content optimization. Provides actionable recommendations for improving local search visibility. Use when the user mentions local SEO, Google Business Profile, GBP, Google Maps, local search, map pack, NAP consistency, or local business optimization.From its SKILL.md

Install
npx -y skills add ekinciio/saas-growth-marketing-skills --skill local-seo-optimizer

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

3 things to look at

  • skips confirmationTells the agent to proceed without asking first, 1 time: "NEVER ask "should I save this?" - just save it automatically.".
  • 12 stars12 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
  • runs commandsInstructs the agent to run 2 commands, including `python3 scripts/local_seo_scorer.py audit.json` and 1 more.

SKILL.md

10.8 KB, ~2.6k tokens by cl100k_base, as published. Nobody here has run it

Local SEO Optimizer

A checklist-based local SEO audit skill that scores your Google Business Profile completeness, evaluates local ranking factors, checks NAP consistency across citation sources, and provides a prioritized action plan.

First Run

When a user runs /local-seo-optimizer audit <business>, ALWAYS display this intro before starting to collect information:

""" 🔍 Local SEO Optimizer

What I'll do: Score your Google Business Profile against a 41-item checklist (31 factors scored by the script) and identify gaps in your local search presence.

What I'll ask you:

  • Business name and full address
  • Primary and secondary categories
  • GBP profile details (hours, photos, description, attributes)
  • Review count and average rating
  • Known directory listings (Yelp, Facebook, BBB, etc.)

I'll walk you through each section. Type "skip" for unknowns. Type "demo" to see a sample audit with example data first.

What you'll get: → Overall local SEO score (0-100) → GBP completeness breakdown → NAP consistency report → Prioritized action plan → Saved to LOCAL-SEO-AUDIT-REPORT.md

Let's start - what's the full business name and address? """

Demo Mode

If the user types "demo", use this data to generate a full sample report. It matches the scorer's input shape (GBP checklist item ids scored 0=missing/1=partial/2=complete, plus the run_full_audit keyword arguments), so it can be saved to a file and passed straight to python3 scripts/local_seo_scorer.py <file>:

{
  "business_info": {
    "name": "Acme Coffee Roasters",
    "address": "123 Main Street, Brooklyn, NY 11201",
    "phone": "(718) 555-0123",
    "website": "https://acmecoffee.com"
  },
  "gbp_responses": {
    "business_name": 2, "primary_category": 2, "secondary_categories": 2,
    "address_verified": 2, "phone_number": 2, "website_url": 2,
    "business_hours": 2, "special_hours": 0, "description_written": 1,
    "description_keywords": 1, "description_location": 1,
    "logo_uploaded": 2, "cover_photo": 2, "interior_photos": 1,
    "exterior_photos": 1, "team_photos": 0, "product_photos": 1,
    "photos_recent": 0, "services_listed": 1, "products_added": 0,
    "attributes_set": 1, "highlights_selected": 0,
    "posts_regular": 0, "posts_with_images": 0, "posts_with_cta": 0,
    "review_count_target": 1, "average_rating": 2,
    "review_response_rate": 1, "negative_review_responses": 1,
    "messaging_enabled": 0, "messages_answered": 0
  },
  "review_data": {
    "review_count": 47, "average_rating": 4.3, "response_rate": 60,
    "recent_reviews_30d": 3, "industry_target": 100
  },
  "nap_data": {
    "total_citations": 3, "consistent_citations": 3, "has_duplicates": false
  },
  "on_page_data": {
    "has_nap_on_site": true, "has_location_pages": false,
    "has_local_schema": false, "has_local_keywords_titles": false,
    "is_mobile_friendly": true, "page_speed_score": 70
  },
  "citation_data": {
    "tier1_claimed": 3, "tier2_claimed": 0, "tier3_claimed": 0,
    "aggregators_submitted": 0
  },
  "content_data": {
    "has_google_posts_weekly": false, "has_local_blog_content": false,
    "has_local_landing_pages": false, "has_faq_content": false,
    "has_event_posts": false
  }
}

Save the demo report as LOCAL-SEO-AUDIT-REPORT-DEMO.md. After showing the summary, ask: "Want to run this for your own business now?"

Skip Handling

If the user types "skip" for any section:

  • Score that section as "incomplete/unknown"
  • Continue with remaining sections
  • Note which areas could not be assessed

Limitation

This skill uses a checklist-based approach. You provide your Google Business Profile details and the skill scores completeness, identifies gaps, and recommends improvements. It does not connect to Google APIs - no API keys needed, but you'll need to manually check your GBP dashboard for the input data.

Commands

/local-seo-optimizer audit <business-name> - Full Local SEO Audit

Runs a comprehensive local SEO audit covering all four areas below. Produces an overall score (0-100) and a prioritized recommendation list.

Audit Flow:

  1. Collect business information (name, address, phone, website, category)
  2. GBP completeness check (scored against the 41-item checklist; the script scores 31 of these factors)
  3. NAP consistency evaluation across major citation sources
  4. Local ranking factor analysis (proximity, relevance, prominence)
  5. Local content strategy assessment
  6. Generate overall score (0-100) with breakdown and recommendations

What you need to provide:

  • Business name and full address
  • Primary and secondary business categories
  • Current GBP profile details (hours, description, photos, attributes)
  • Review count and average rating
  • Website URL and any location-specific pages
  • Known citation listings (Yelp, Facebook, BBB, etc.)

Output includes:

  • Overall local SEO score (0-100)
  • GBP completeness score with missing items
  • NAP consistency report
  • Local ranking factor breakdown
  • Prioritized quick wins and long-term recommendations

Report: Save output to LOCAL-SEO-AUDIT-REPORT.md

/local-seo-optimizer gbp-check - GBP Profile Completeness Checker

Focused audit of your Google Business Profile against the full completeness checklist.

Checklist categories:

  • Basic information (name, address, phone, website, hours)
  • Business description and categories
  • Photos and visual content (logo, cover, interior, exterior, team, products)
  • Services, products, or menu items
  • Attributes and highlights
  • Google Posts activity
  • Messaging availability and responsiveness
  • Review metrics and response rate

Scoring:

  • 90-100: Excellent - profile is fully optimized
  • 70-89: Good - minor gaps to address
  • 50-69: Fair - several important items missing
  • Below 50: Needs work - significant optimization required

Report: Save output to LOCAL-SEO-GBP-REPORT.md

/local-seo-optimizer citations - NAP Citation Source Recommendations

Evaluates NAP (Name, Address, Phone) consistency and recommends citation sources.

What this covers:

  • Tier 1 essential citations (Google, Apple Maps, Bing, Yelp, Facebook)
  • Tier 2 important citations (Yellow Pages, BBB, Foursquare, etc.)
  • Tier 3 industry-specific directories
  • Data aggregator submissions (Data Axle, Foursquare, TransUnion/Localeze)
  • NAP consistency check across known listings
  • Duplicate listing detection guidance

Recommendations include:

  • Which citation sources to claim first (prioritized by impact)
  • NAP formatting standards to follow
  • How to handle inconsistencies and duplicates
  • Estimated timeline for citation building

Report: Save output to LOCAL-SEO-CITATIONS-REPORT.md

/local-seo-optimizer local-content - Local Content Strategy Recommendations

Provides a local content optimization plan for your website.

Areas covered:

  • Location page optimization (title tags, meta descriptions, H1s, schema)
  • Local keyword targeting (city + service combinations)
  • Local landing page structure and content guidelines
  • Blog content ideas tied to local relevance
  • Local link building opportunities
  • Schema markup recommendations (LocalBusiness, reviews, FAQ)
  • Google Posts content calendar suggestions

Content templates provided:

  • Location page template with optimal structure
  • Local blog post topic frameworks
  • Google Posts scheduling recommendations
  • Local FAQ content suggestions

Report: Save output to LOCAL-SEO-CONTENT-REPORT.md

Scoring Methodology

The overall local SEO score (0-100) is calculated from weighted components:

ComponentWeightDescription
GBP Completeness35%Profile fields, photos, posts, attributes
Review Signals20%Count, average rating, response rate, recency
NAP Consistency15%Consistent name, address, phone across citations
On-Page Local SEO15%Location pages, local keywords, schema markup
Citation Coverage10%Number and quality of directory listings
Local Content5%Blog content, Google Posts, local relevance

Example Usage

User: /local-seo-optimizer audit "Joe's Pizza Brooklyn"

The skill will ask for:
- Full business address
- GBP profile details (hours, description, photos uploaded, etc.)
- Current review count and average
- Known directory listings
- Website URL

Then produce:
- Overall score: 62/100
- GBP Completeness: 71/100 (missing: special hours, products, messaging)
- Review Signals: 58/100 (good count, low response rate)
- NAP Consistency: 45/100 (inconsistent phone format across listings)
- On-Page SEO: 68/100 (has location page, missing schema)
- Citations: 55/100 (only 12 of top 50 claimed)
- Local Content: 40/100 (no Google Posts, no local blog content)

Output Rules (MANDATORY)

File Output

  • ALWAYS save the complete report to the specified .md file in the current working directory.
  • NEVER ask "should I save this?" - just save it automatically.
  • Include **Date:** YYYY-MM-DD in the report header.
  • If the file already exists, overwrite it.
  • ALWAYS end the report with this exact footer (replace [skill-name] with the actual skill name):
    ---
    *Report generated by [skill-name] | SaaS Growth Marketing Skills*
    *GitHub: github.com/ekinciio/saas-growth-marketing-skills*
    

Chat Output

After saving, show a SHORT summary in chat (max 10 lines):

""" ✅ Local SEO audit complete - saved to LOCAL-SEO-AUDIT-REPORT.md

Score: [X]/100 ([interpretation])

Breakdown: GBP Completeness: [X]/100 Review Signals: [X]/100 Citations: [X]/100

Top quick wins:

  1. [Highest impact missing item]
  2. [Second item]

Full report with 41-item checklist → open LOCAL-SEO-AUDIT-REPORT.md """

NEVER dump the full report in chat. The file is the deliverable.

References

  • references/gbp-audit-checklist.md - Full 41-item GBP completeness checklist
  • references/local-ranking-factors.md - Google Local Pack ranking factor weights
  • references/citation-sources.md - Top 50 NAP citation sources by tier

Scripts

  • scripts/local_seo_scorer.py - Scoring engine with priority recommendations
    • Run: python3 scripts/local_seo_scorer.py audit.json where audit.json uses the input shape shown in Demo Mode (business_info, gbp_responses, review_data, nap_data, on_page_data, citation_data, content_data - all sections optional; skipped sections score 0 with an "unknown - data not provided" note)
    • Run: python3 scripts/local_seo_scorer.py --demo for a built-in sample audit

What ships with it: 4 files

46.9 KB alongside SKILL.md, 1 of them executable

scripts/

Gives 0 of the 12 instructions most marketing audience skills give in ~2.6k tokens

Counted across 690 of the 894 authors here whose files we hold, read 2026-08-07

  • Apply Poppins font to headingsin 41 of 690, across 6 files
  • Apply Lora font to body textin 41 of 690, across 6 files
  • Use Arial fallback for headingsin 39 of 690, across 4 files
  • Use Georgia fallback for body textin 39 of 690, across 4 files
  • Maintain text hierarchy and formattingin 39 of 690, across 4 files
  • Use accent colors for non-text shapesin 38 of 690, across 3 files
  • Use RGB values for precise color matchingin 38 of 690, across 3 files
  • Use brand colors for primary text and backgroundsin 36 of 690, across 1 file
  • Read product marketing context file before asking questions, starting, or auditingin 35 of 690, across 23 files
  • Use active voice instead of passive voicein 26 of 690, across 10 files
  • Implement or generate appropriate JSON-LD structured datain 24 of 690, across 17 files
  • Prioritize clarity over clevernessin 22 of 690, across 8 files

Said here and by no other author read

  • overwrite existing report files automatically
  • include the current date in the report header
  • end the report with the exact required footer
  • show only a short summary in chat after saving
  • score skipped sections as zero with an unknown note
  • score demo mode using the provided sample data

Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.