Agent skill

SEO Local

by seranking in seranking/seo-skills

Local SEO audit for brick-and-mortar, service-area, and multi-location businesses.

MITAuto-check passedMarketing & SEO

Install SEO Local

skills CLI
$ npx skills add seranking/seo-skills --skill seo-local -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install seranking/seo-skills seo-local --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/seranking/seo-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/seo-local .claude/skills/seo-local && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
seo-local
GitHub stars
160
Token cost
~4.9k tokens
SKILL.md length
1,845 words
Files
2 (incl. references)
Skills in repo
32
Repo updated
First seen
Licence
MIT

At a glance

Local SEO audit for brick-and-mortar, service-area, and multi-location businesses.

  • Works in 8 steps: Validate target & preflight. See… → Business-type detection → Industry-vertical detection → …
  • The user asks local SEO
  • SKILL.md covers Prerequisites, Process, Output format and Tips
  • Calls python3; reaches google.com and g.page

What it does

SEO Local is an agent skill from seranking/seo-skills. Local SEO audit for brick-and-mortar, service-area, and multi-location businesses. Covers Google Business Profile signals on the website, NAP consistency across page and schema, local-pack rank tracking, citation samples on Tier-1 directories, and reviews on Google / Yelp / Trustpilot. Distinct from seo-page (URL-level keywords, no local layer) and from seo-schema (which generates LocalBusiness markup — this skill defers to it). Use when the user asks "local SEO", "GBP", "Google Business Profile", "NAP", "local…

Its SKILL.md is about 4.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including reference files (for example `references/local-citation-sources.md`).

It sits in Marketing & SEO, covering Local SEO and Citation management. It works with Firecrawl. The repository describes itself as: Claude SEO Skills — production Claude Agent Skills for the SE Ranking MCP server. Content briefs, AI Search share of voice, audits, backlink gaps, keyword clusters, schema… The licence is MIT.

When your agent uses it

  • The user asks local SEO
  • Google Business Profile
  • Multi-location SEO

Example prompts

  • “local SEO”
  • “Google Business Profile”
  • “local pack”
  • “/seo-local”

Requirements

  • Python 3

Workflow steps

8 steps, taken from the first numbered list in SKILL.md.

  1. Validate target & preflight. See skills/seo-firecrawl/references/preflight.md for the canonical 3-stage preflight (credit balance…
  2. Business-type detection
  3. Industry-vertical detection
  4. GBP signals on the page mcpfirecrawl-mcpfirecrawl_scrape (with formats: ["rawHtml"])
  5. NAP consistency mcpfirecrawl-mcpfirecrawl_scrape on homepage + 5 sample pages
  6. Local-pack rank tracking DATA_getSerpResults with country/region filters
  7. Reviews scraping mcpfirecrawl-mcpfirecrawl_scrape on user-provided review URLs
  8. On-page local-SEO audit DATA_getAuditReport (existing audit) + DATA_getIssuesByUrl on the homepage

What it can do on your machine

Read from SKILL.md and the folder at commit fd6d140. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • python3

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • google.com
    • g.page

    Also links to:

    • github.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

SEO Local loads about 4.9k tokens when it runs, and up to ~6.5k if it reads all its reference files. Until then it costs about 151 tokens; SKILL.md has 1,845 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~151
When it runs · the whole SKILL.md, loaded when a task matches
~4.9k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~6.5k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from seranking/seo-skills at commit fd6d140, republished under its MIT licence (© seranking). 1,845 words, ~4,885 tokens.

Download SKILL.mdSave it as .claude/skills/seo-local/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
seo-local
description
Local SEO audit for brick-and-mortar, service-area, and multi-location businesses. Covers Google Business Profile signals on the website, NAP consistency across page and schema, local-pack rank tracking, citation samples on Tier-1 directories, and reviews on Google / Yelp / Trustpilot. Distinct from `seo-page` (URL-level keywords, no local layer) and from `seo-schema` (which generates LocalBusiness markup — this skill defers to it). Use when the user asks "local SEO", "GBP", "Google Business Profile", "NAP", "local pack", "citations", "near me", "service area", or "multi-location SEO".

Example output: examples/seo-local-sweetgreen-com-20260514/LOCAL-SEO-REPORT.md

Local SEO

Score a local business's website against the signals that drive local-pack and "near me" visibility — GBP integration on the page, NAP consistency, on-page local intent, citation footprint on Tier-1 directories, review-platform presence, and local-pack rank for the business's primary keywords. Deliverable is one prioritised fix list, anchored in observable signals.

Adapted from AgriciDaniel/claude-seo's seo-local skill (MIT). Concept and dimension structure mirror the upstream; backend rewired to SE Ranking + Firecrawl + Google APIs. DataForSEO Maps geo-grid and Business Listings checks from the upstream are dropped (no equivalent backend) — see "Limitations" in the deliverable.

Prerequisites

  • SE Ranking MCP server connected (used for local-pack rank, on-page audit data, domain context).
  • Claude's WebFetch tool available (used for sense-check fallback when Firecrawl is unavailable).
  • User provides: (a) a target domain or homepage URL, (b) at least one primary local keyword (e.g. "dentist Brooklyn", "plumber near me"), (c) target country and ideally city/region for local-pack scoping. Optional: GBP listing URL, Yelp/Trustpilot URLs for review scraping.

Process

  1. Validate target & preflight. See skills/seo-firecrawl/references/preflight.md for the canonical 3-stage preflight (credit balance, Firecrawl availability, Google APIs). Skill-specific notes:

    • Normalise the target (strip protocol from domain; confirm homepage is fetchable). Confirm at least one local keyword was provided — if none, infer from <title> + <h1> of the homepage; if still ambiguous, ask the user before continuing.
    • Estimated SE Ranking cost for this skill: ~15–25 credits (1 audit re-check + 3–5 SERP queries + 1 domain overview).
    • Firecrawl: optional with WebFetch fallback, ~6–9 Firecrawl credits if available (hard cap 12). When available, steps 4 (GBP-on-page audit), 5 (NAP extraction), and 7 (review scraping) run on the homepage + 5 sample pages + provided review URLs. Without Firecrawl those steps degrade to WebFetch-only — schema/JSON-LD detection and tel: / address element extraction become best-effort prose inspection. Pass --no-firecrawl to force WebFetch-only.
    • Google APIs: tier 1 (GSC) unlocks step 8b (GSC local query performance) after the local-pack rank step; tier 2 (GA4) additionally unlocks step 8c (GA4 organic-by-landing-page enrichment). See skills/seo-google/references/cross-skill-integration.md for the full enrichment contract.
  2. Business-type detection

    • Read homepage + /contact + footer prose (WebFetch markdown is enough for this).
    • Classify as one of:
      • Brick-and-Mortar — visible street address, "Visit us at", embedded Maps iframe.
      • Service Area Business (SAB) — no street address, "serving {region}", "we come to you", areaServed in schema without address.streetAddress.
      • Hybrid — both signals present (e.g. showroom + service area).
    • This determines which checks apply downstream. SAB skips embedded-map and physical-address consistency. Record in LOCAL-SEO-REPORT.md "Snapshot".
  3. Industry-vertical detection

    • From URL patterns (/menu, /practice-areas, /listings, /inventory), <title>, page prose, infer one of: Restaurant / Healthcare / Legal / Home Services / Real Estate / Automotive / Generic.
    • This routes citation-source recommendations and schema-subtype recommendations later — load references/local-citation-sources.md for the vertical's Tier-1 directories.
  4. GBP signals on the page mcp__firecrawl-mcp__firecrawl_scrape (with formats: ["rawHtml"])

    • Scrape homepage + /contact (or whichever page has the most local intent).
    • From rawHtml extract:
      • Embedded Google Maps iframe (<iframe src="https://www.google.com/maps/embed?...">) — record place ID if present.
      • Reviews widget / GBP rich snippet markup.
      • aggregateRating JSON-LD block (presence is the strongest signal that the site wants stars in SERPs).
      • Business hours visibility on page (open-at-search-time correlates with rank — Whitespark's #5 factor).
      • Click-to-call: count of <a href="tel:..."> elements.
      • GBP profile link: any <a href> to https://g.page/... or https://maps.app.goo.gl/... or https://www.google.com/maps/place/....
    • If Firecrawl unavailable: WebFetch markdown can detect a tel: link in some renderings but loses iframes and JSON-LD. Mark Maps embed / aggregateRating / GBP profile-link detection as (skipped — Firecrawl required).
  5. NAP consistency mcp__firecrawl-mcp__firecrawl_scrape on homepage + 5 sample pages

    • Sample pages: homepage, /contact, /about, plus 2 service or location pages (pick from sitemap or top traffic pages).
    • For each, extract:
      • Visible NAP from rendered prose. Address pattern (street + city + region + postal), phone (tel: href + display format), business name (logo alt, footer, schema name).
      • NAP from JSON-LD. Parse every <script type="application/ld+json"> block. Pull name, address.streetAddress, address.addressLocality, address.addressRegion, address.postalCode, telephone.
    • Compare across the 6 page samples + schema. Any divergence (different phone format on the contact page vs homepage; "Suite 200" missing from one footer; schema phone in international format while page shows local format) → record in nap-inconsistencies.csv.
    • Brick-and-mortar only: if a Maps iframe is present, attempt to read the embedded address from the iframe URL (the place ID and address are URL-encoded). Compare to page/schema NAP. SAB skips this.
    • If nap-inconsistencies.csv is empty after the scan, write nap-inconsistencies.csv as a one-line file with header only and note "NAP consistent across {n} pages and schema" in LOCAL-SEO-REPORT.md.
  6. Local-pack rank tracking DATA_getSerpResults with country/region filters

    • For each user-provided local keyword (or the 1–3 inferred from homepage):
      • Call DATA_getSerpResults with the user's country and the most specific region/city the API supports (use DATA_getSerpLocations first to confirm a valid location code if the user supplied a city).
      • Capture: top 10 organic, local-pack presence (yes/no), the 3 businesses in the local pack if shown (name, rating, review count), AIO presence.
      • Cross-check: is the target domain in the top 10 organic? Is the target business name in the local pack?
    • Save the parsed result per keyword to local-keywords.csv (columns: keyword,country,location,local_pack_present,target_in_pack,target_pack_position,target_organic_position,top_pack_competitor_1,top_pack_competitor_2,top_pack_competitor_3).
    • Note the local-pack-ads caveat: the SE Ranking SERP returns the AI/ads-modified pack as Google serves it. If the local pack shows ads, record that — local-pack ad density jumped from 1% to 22% of mobile US local searches in 2025–2026 per Sterling Sky.
  7. Reviews scraping mcp__firecrawl-mcp__firecrawl_scrape on user-provided review URLs

    • Inputs (user-provided, optional). GBP listing URL (https://www.google.com/maps/place/...), Yelp business URL, Trustpilot business URL, BBB profile URL.
    • For each provided URL: scrape with formats: ["rawHtml"]. From the parsed DOM, extract: total review count, average rating, date of most recent review (review velocity proxy), count of owner responses on the most recent 10 reviews.
    • Aggregate signals:
      • Velocity: ≥1 new review in last 18 days = healthy (Sterling Sky 18-day rule). >21 days since last = "review cliff" risk.
      • Volume: <10 Google reviews flags below the magic threshold.
      • Star rating: 4.5+ matches consumer filtering thresholds (BrightLocal: 31% only consider 4.5+).
      • Owner-response rate on Google: <50% on recent 10 = engagement gap.
    • If user provides no review URLs: skip step 7 entirely. Note in LOCAL-SEO-REPORT.md: "Review platforms: not provided. To audit review health, re-run with --reviews 'gbp_url,yelp_url,trustpilot_url'." Don't try to discover them — review-URL discovery is a different problem (and the Maps API path is the one we don't have).
  8. On-page local-SEO audit DATA_getAuditReport (existing audit) + DATA_getIssuesByUrl on the homepage

    • Reuse the existing site audit if one is recent (<30 days, see seo-technical-audit). Don't create a new audit just for local — the audit data already covers title-tag issues, missing schema, mobile usability, etc.
    • From the audit, surface the issues that bear on local SEO specifically:
      • Title / H1 missing primary city or service term.
      • Missing or invalid LocalBusiness JSON-LD.
      • Mobile usability issues (mobile = where "near me" happens).
      • Schema validation errors (broken aggregateRating, malformed address).
    • Defer schema fixes to seo-schema. This skill does NOT generate JSON-LD. If LocalBusiness schema is missing or broken, the deliverable says "Run seo-schema for paste-ready LocalBusiness markup with the correct industry subtype" — that's seo-schema's job and reimplementing it here would duplicate work.
Show full SKILL.md (699 more words)Show less

8b. GSC local query performance (only if google-api.json is present, tier ≥ 1)

  • Pull GSC search analytics for the target property, last 28 days, dimension=query, filtered to local-intent patterns: python3 scripts/gsc_query.py --property "{config.default_property}" --days 28 --json
  • Client-side filter the queries for: contains near me, contains a city/region known for the business, or ends in a place-name. Surface top 10 by impressions.
  • If a city-bearing query has impressions >100 and average position >10, that's a local-pack reach gap — flag in LOCAL-SEO-REPORT.md "Top fixes" with the GSC numbers as supporting evidence.
  • If property not verified for this account: surface "GSC: {target_domain} not verified — add it in Search Console" and continue.
  • See skills/seo-google/references/cross-skill-integration.md for failure modes.

8c. GA4 organic by landing page (only if google-api.json is present, tier ≥ 2)

  • Pull GA4 top organic landing pages, last 28 days: python3 scripts/ga4_report.py --report top-pages --days 28 --json
  • For multi-location sites, surface per-location-page sessions. If one location page captures 80%+ of organic traffic while peer location pages capture <5%, that's location-page quality variance worth flagging (probable doorway-page or thin-content risk on the underperformers).
  • Single-location sites: just record the homepage's organic sessions as one row in the snapshot.
  1. Citation-presence sample (best-effort) WebSearch (no API key cost)

    • For each Tier-1 directory in the vertical's list (load references/local-citation-sources.md), check whether the business has a listing using site:{directory} "{business_name}" queries via WebSearch.
    • Cap at 8 directories (Google, Yelp, Facebook, BBB, Apple Maps, Bing Places, plus 2 vertical-specific). Anything beyond is diminishing returns and the user can run their own audit.
    • Record in LOCAL-SEO-REPORT.md "Citations" section: detected / not detected per directory, plus the URL of the listing if found.
    • Caveat to surface: WebSearch hits are a sample, not a comprehensive audit. A "not detected" doesn't prove absence — it proves the listing didn't surface for that specific query. Recommend a paid citation-audit tool (Whitespark, BrightLocal, Yext) for definitive coverage.
  2. Synthesise LOCAL-SEO-REPORT.md

  • Score the 5 local dimensions on the rubric below, list top fixes (Critical / High / Medium / Low), record limitations.
  • Apply the verdict heuristic — see Tips.

Output format

Create a folder seo-local-{domain-slug}-{YYYYMMDD}/ with:

seo-local-{domain-slug}-{YYYYMMDD}/
├── LOCAL-SEO-REPORT.md         (PRIMARY: verdict, scores, top fixes, limitations)
├── local-keywords.csv          (load-bearing: per-keyword local-pack + organic positions)
├── nap-inconsistencies.csv     (load-bearing: only emitted if discrepancies found)
└── evidence/
    ├── 01-homepage-snapshot.md     (Firecrawl raw HTML extracts: NAP, schema, GBP signals)
    ├── 02-nap-page-samples.md      (per-page NAP extracts across 5 sample URLs)
    ├── 03-serp-context.md          (raw DATA_getSerpResults per keyword)
    ├── 04-reviews.md               (per-platform review-page snapshots, only if user provided URLs)
    └── 05-citation-sample.md       (raw WebSearch results per directory check)

LOCAL-SEO-REPORT.md follows this shape:

markdown
# Local SEO Report: {domain}

> Snapshot dated {YYYY-MM-DD} · Country: {country} · Region: {region} · Primary keyword: "{keyword}"

## Snapshot
- Business type: {Brick-and-Mortar | SAB | Hybrid}
- Industry vertical: {Restaurant | Healthcare | Legal | Home Services | Real Estate | Automotive | Generic}
- Pages sampled for NAP: {n}
- Local keywords tracked: {n}
- Local pack present on {n}/{m} keywords; target in pack on {p}/{m}
- Review platforms audited: {Google, Yelp, ... | not provided}
- GSC last 28d local-intent queries: {n} queries / {clicks} clicks / {impressions} impressions  *(or `not configured`)*

## Verdict: {STRONG | NEEDS WORK | WEAK}

{One-sentence summary anchored in dimension scores below}

## Dimension scores (0–10)

| Dimension | Score | Top finding |
|---|---|---|
| GBP integration on page | {n}/10 | {one-line} |
| NAP consistency | {n}/10 | {one-line} |
| Local on-page (title/H1/contact/service pages) | {n}/10 | {one-line} |
| Local-pack rank | {n}/10 | {one-line} |
| Reviews & citations | {n}/10 | {one-line} |
| **Composite** | {n}/10 | — |

## Top fixes

### Critical
1. {Specific fix anchored in a finding above. Example: "NAP discrepancy: footer shows '(212) 555-1234' but JSON-LD shows '+1-212-555-9999'. Pick one canonical phone, fix the wrong one." Cite the page/schema source.}

### High
- {fix}

### Medium
- {fix}

### Low
- {fix}

## Local-pack rank summary
- "{keyword 1}": local pack {present/absent}, target {in pack at #n / not in pack}, organic position {n}.
- "{keyword 2}": …
- (Full data: `local-keywords.csv`)

## Reviews health (if audited)
- Google: {n} reviews, {rating} avg, last review {n} days ago, owner response rate {p}%.
- Yelp: …
- Trustpilot: …

## Citation sample
- Google Business: {detected / not detected via site:google.com "..." search}
- Yelp: …
- Facebook: …
- BBB: …
- Apple Business Connect: …
- Bing Places: …
- {vertical-specific 1}: …
- {vertical-specific 2}: …

(Caveat: this is a sample, not a comprehensive citation audit. For definitive coverage, use Whitespark / BrightLocal / Yext.)

## Schema status
- LocalBusiness JSON-LD: {present and valid / present but missing recommended properties / invalid / absent}
- Recommended next step: run `seo-schema {homepage_url}` for paste-ready LocalBusiness markup with the correct industry subtype.

## Limitations
This skill could NOT assess:
- **Geo-grid local-pack rank by lat/long.** Requires a Maps API (e.g. DataForSEO Maps geo-grid endpoint) we don't have. Workaround: pay for Local Falcon, GMB Crush, or BrightLocal Local Search Grid.
- **Comprehensive citation audit.** WebSearch sampling covers ~8 directories; full audits cover 50+. Use Whitespark, BrightLocal, or Yext.
- **GBP Insights data.** Requires GBP API access scoped to the listing owner. Ask the listing owner to export Insights and share.
- **Real-time local-pack rank tracking over time.** This skill is a snapshot. Use SE Ranking's project-level rank tracker (`PROJECT_runPositionCheck`) or pair with `seo-drift` for diff snapshots.
- **DataForSEO Business Listings.** Not in our backend; if the user needs it, they'd need to subscribe to DataForSEO directly.

local-keywords.csv columns: keyword,country,location,local_pack_present,target_in_pack,target_pack_position,target_organic_position,top_pack_competitor_1,top_pack_competitor_2,top_pack_competitor_3,aio_present

nap-inconsistencies.csv columns: source,name,address,phone,page_or_schema_path,canonical_value,divergence_note

Tips

  • Respect SE Ranking Data API rate limit: 10 requests per second. Pace the per-keyword DATA_getSerpResults calls sequentially.
  • Call DATA_getCreditBalance before running. ~15–25 SE Ranking credits typical, plus 6–12 Firecrawl credits when Firecrawl is installed.
  • Verdict heuristic:
    • STRONG: composite ≥7/10, NAP consistent across all sampled pages, target in local pack on majority of keywords, valid LocalBusiness schema with industry-correct subtype, ≥10 Google reviews with healthy velocity.
    • NEEDS WORK: composite 4–6.9/10, OR 1+ NAP discrepancy, OR target out of local pack on majority of keywords. The "Top fixes" section is the deliverable here — most local-SEO audits land in this bucket.
    • WEAK: composite <4/10, OR no LocalBusiness schema and no NAP visible on page, OR target absent from local pack on every tracked keyword. Substantial work required across multiple dimensions.
  • Don't generate LocalBusiness schema in this skill. Always defer to seo-schema for that — it has the rich-results validation and industry-subtype routing this skill doesn't replicate.
  • Don't generate review URLs from search results. If the user didn't provide a Yelp/Trustpilot/BBB URL, skip review scraping and tell the user to provide URLs in a re-run. Discovering review URLs from a domain is unreliable.
  • For multi-location sites with >5 locations, audit one location page per region rather than one per location — the local audit pattern repeats per location, so a sample establishes the baseline. If location-page quality variance is the suspected issue, pair with seo-content-audit on a sample of location pages.
  • AI-search local context (ChatGPT, Perplexity, AI Overviews) is not this skill's job — pair with seo-geo (URL-level GEO) or seo-ai-search-share-of-voice (domain-level brand visibility) for AI-search local visibility.
  • The 18-day review velocity rule (Sterling Sky) is the most actionable single number from review-platform analysis. If the most recent review is >21 days old, that's a leading indicator of upcoming local-pack rank drop — flag as Critical regardless of star rating.
  • Citation directories per vertical: load references/local-citation-sources.md. The list is curated to the directories that move the needle (Tier 1 + vertical-specific), not the long tail.
  • Pair with seo-technical-audit if site-wide technical-SEO issues surface in step 8 — this skill scopes to local-relevant findings, not the full audit.

© seranking, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file (references) in skills/seo-local of seranking/seo-skills.

  • SKILL.md
  • references/local-citation-sources.md

Open the folder on GitHubat commit fd6d140

Compare with similar skills

SEO Local next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

SEO Local compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
SEO Local this skillseranking/seo-skills160—~4.9kAutomated safety check: PassMIT
Page Play Builderaaron-he-zhu/aaron-marketing-skills2.9k—~3.6kAutomated safety check: PassApache-2.0
Localseodata Toolgarrettjsmith/localseoskills114—~4.1kAutomated safety check: PassMIT
Brightlocal Toolgarrettjsmith/localseoskills114—~1.8kAutomated safety check: PassMIT
Local Citationsgarrettjsmith/localseoskills114—~1.5kAutomated safety check: PassMIT
Whitespark Toolgarrettjsmith/localseoskills114—~2.6kAutomated safety check: PassMIT

Similar skills

  • Page Play Builder

    aaron-he-zhu/aaron-marketing-skills

    A skill your agent uses when the user asks to "build programmatic SEO pages", "generate pages at scale", "rank on a high-authority third-party site", "borrow domain authority", "build a vs /…

    2.9k GitHub stars~3.6k tokensUpdated today
    Marketing & SEOAuto-check passed
  • Localseodata Tool

    garrettjsmith/localseoskills

    When the user wants to pull local SEO data — SERP results, local pack rankings, business profile data, reviews, citations, audits, geogrid scans, keyword research, AI visibility, competitor…

    114 GitHub stars~4.1k tokensUpdated 1 mo ago
    Marketing & SEOAuto-check passed
  • Brightlocal Tool

    garrettjsmith/localseoskills

    When the user wants citation audits, citation building, review monitoring across platforms, GBP audit scoring, or white-label local SEO reports.

    114 GitHub stars~1.8k tokensUpdated 1 mo ago
    Marketing & SEOAuto-check passed
  • Local Citations

    garrettjsmith/localseoskills

    When the user wants to build citations, fix NAP inconsistencies, manage business directory listings, or audit citation presence.

    114 GitHub stars~1.5k tokensUpdated 1 mo ago
    Marketing & SEOAuto-check passed
  • Whitespark Tool

    garrettjsmith/localseoskills

    When the user wants citation gap analysis, managed citation building, review generation campaigns, or local rank tracking.

    114 GitHub stars~2.6k tokensUpdated 1 mo ago
    Marketing & SEOAuto-check passed
  • FLOW SEO Framework

    AgriciDaniel/claude-seo

    Brings the FLOW framework's stage-specific SEO prompts into the agent, from keyword discovery through backlinks, on-page work and conversion to local SEO, loaded on demand.

    18k GitHub starsUsed in 2 repos~1.4k tokens
    Marketing & SEOAuto-check passed

More from seranking/seo-skills

All 32 skills in this repo
  • SEO Google

    seranking/seo-skills

    Direct access to Google's own SEO data via Search Console (Search Analytics, URL Inspection, Sitemaps), PageSpeed Insights v5, CrUX field data with 25-week history, Indexing API v3, GA4 organic…

    160 GitHub stars~4.8k tokensUpdated 3 mo ago
    Auto-check passed
  • SEO API

    seranking/seo-skills

    SE Ranking API integration architect. An agent skill from seranking/seo-skills.

    160 GitHub stars~4.1k tokensUpdated 3 mo ago
    Auto-check passed
  • SEO Content Audit

    seranking/seo-skills

    E-E-A-T + CITE quality audit for an EXISTING piece of content.

    160 GitHub stars~3k tokensUpdated 3 mo ago
    Auto-check passed
  • SEO Content Brief

    seranking/seo-skills

    Generate a writer-ready SEO content brief from a target domain and topic.

    160 GitHub stars~2.5k tokensUpdated 3 mo ago
    Auto-check passed
  • SEO Drift

    seranking/seo-skills

    Capture an SEO baseline snapshot for a domain or URL, then on later runs compare the current state and surface regressions.

    160 GitHub stars~3.4k tokensUpdated 3 mo ago
    Auto-check passed
  • SEO Firecrawl

    seranking/seo-skills

    Ad-hoc web scraping, site mapping, and full-site crawling via Firecrawl MCP.

    160 GitHub stars~2.3k tokensUpdated 3 mo ago
    Auto-check passed

Works with

Categories

Questions about SEO Local

What does SEO Local do?

Local SEO audit for brick-and-mortar, service-area, and multi-location businesses. SEO Local is an agent skill from seranking/seo-skills. Local SEO audit for brick-and-mortar, service-area, and multi-location businesses.

When should I use SEO Local?

SEO Local fits situations like: the user asks local SEO; google Business Profile; multi-location SEO.

How do I install SEO Local in Claude Code?

Run `npx skills add seranking/seo-skills --skill seo-local -a claude-code`. Or copy the skill folder (skills/seo-local in seranking/seo-skills) into .claude/skills/seo-local in your project. Claude Code loads it when a task matches its description.

How do I install SEO Local in Codex?

Run `npx skills add seranking/seo-skills --skill seo-local -a codex`. Or copy the skill folder (skills/seo-local in seranking/seo-skills) into .agents/skills/seo-local in your project. Codex loads it when a task matches its description.

Can I use SEO Local in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add seranking/seo-skills --skill seo-local -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/seo-local, .gemini/skills/seo-local, .github/skills/seo-local and .opencode/skills/seo-local in your project.

What does SEO Local need to run?

Going by SKILL.md and its folder, SEO Local needs the command-line tools its instructions call (python3). Our summary lists: Python 3.

Does SEO Local access the network?

SKILL.md names 3 domains. In commands or code: google.com and g.page; the agent is likely to contact these when it follows the instructions. As links in the text: github.com. This is read from the text; nothing was executed.

Is SEO Local safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does SEO Local use?

SEO Local is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does SEO Local use?

About 4.9k tokens (SKILL.md is roughly 20k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.6k tokens, read only when the agent opens those files.

What are the alternatives to SEO Local?

Skills that share tags, products or a category with SEO Local: Page Play Builder (aaron-he-zhu/aaron-marketing-skills, 2.9k stars), Localseodata Tool (garrettjsmith/localseoskills, 114 stars), Brightlocal Tool (garrettjsmith/localseoskills, 114 stars) and Local Citations (garrettjsmith/localseoskills, 114 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains SEO Local?

seranking (a GitHub organization) maintains it in seranking/seo-skills, which has 160 GitHub stars. The repository holds 32 skills in this directory. The repository was last updated on June 25, 2026.

Source: seranking/seo-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.