geo-tracking
Measure AI visibility without paid tools or API keys. Input: your site (GA4 and server logs) and a buyer prompt panel. Output:…
Run spec, audit, competitor benchmark and build for local visibility, on the two assets a local business owns: the location page and the Google Business Profile, plus reviews and NAP citations. Spec: LOC, GBP, REV and CIT requirements with IDs. Audit: seo_audit.py and
Claude Code
$ npx -y skills add Thibaultbm/claude-seo-geo --skill seo-local --agent claude-code
Codex
$ npx skills add Thibaultbm/claude-seo-geo --skill seo-local -a codex -y
Cursor
$ npx skills add Thibaultbm/claude-seo-geo --skill seo-local -a cursor -y
Gemini CLI
$ npx skills add Thibaultbm/claude-seo-geo --skill seo-local -a gemini-cli -y
GitHub Copilot
$ npx skills add Thibaultbm/claude-seo-geo --skill seo-local -a github-copilot -y
OpenCode
$ npx skills add Thibaultbm/claude-seo-geo --skill seo-local -a opencode -y
Windsurf
$ npx skills add Thibaultbm/claude-seo-geo --skill seo-local -a windsurf -y
name: seo-local
description: "Run spec, audit, competitor benchmark and build for local visibility, on the two assets a local business owns: the location page and the Google Business Profile, plus reviews and NAP citations. Spec: LOC, GBP, REV and CIT requirements with IDs. Audit: seo_audit.py and section_audit.py --type location on the page, a manual GBP checklist. Benchmark: the local pack and top organic results for '{service} {city}', their pages via page_benchmark.py, their profiles by hand (categories, review count and velocity, photos, posts). Build: name and category decisions, a 100% complete profile, a review engine with reply templates, NAP consistency, location pages with LocalBusiness schema, multi-location and service-area setups, suspended-listing reinstatement, then a scripted acceptance re-run. Use for GBP, Google Maps, the local pack, 'best [trade] in [city]' AI answers, reviews and star ratings, citations, a business not showing on Maps, or a suspended listing."
license: MIT
metadata:
author: "Sorank (https://sorank.com)"
version: "2.0.0"Local SEO decides who appears when a buyer searches "plumber near me", opens Google Maps, or asks an AI assistant for "the best dentist in Geneva". Three surfaces matter: the local pack (Maps results inside the SERP), localized organic results, and AI assistant recommendations. They feed on overlapping signals: the Google Business Profile, reviews, the linked website, and the consistency of the business entity across the web. Local visibility fails when the profile is half empty, the reviews trickle in bursts, the NAP differs from one directory to the next, and the profile links to a homepage instead of a real location page.
This skill treats two assets as the "pages" it owns, the **location page** on the site and the **Google Business Profile**, and runs the four-phase standard (spec, audit, benchmark, build) on both, with the review program and the NAP citations as shared requirements. The methodology combines two evidence levels, labeled throughout:
If the working environment contains an Obsidian vault or any local knowledge base (a folder of .md notes, often with a .obsidian directory), read the relevant notes before acting: brand and product facts, target keywords, competitors, and the SEO action log of what was already tried. Ground every recommendation in that context instead of asking the user for facts the vault already holds. At the end of the session, append the actions taken to the vault's SEO action log so the next session starts informed.
Use it to diagnose why a business is invisible in the local pack, set up or complete a Google Business Profile, build a review generation engine, write review replies, plan location pages, structure a multi-city or service-area business, or recover a suspended listing.
Stay in scope. Hand adjacent work to the right skill:
| Task | Skill | |---|---| | GBP, reviews, local pack, NAP, location page strategy (this skill) | seo-local | | Finding and building citation and directory links | seo-backlinks | | Writing service pages and city pages (copy and wireframe) | seo-content-service-page | | LocalBusiness schema implementation details | seo-schema-markup | | Block-by-block gap audit of any page type | seo-page-sections | | Site crawlability, speed, AI crawler access | seo-technical | | Local keyword selection | seo-keyword-research | | Writing rules for AI answer citability | geo-visibility | | Measuring AI assistant mentions | geo-tracking | | Full-site audit | seo-geo-audit |
Four tables: the location page (LOC), the Google Business Profile (GBP), the review program (REV), and NAP and citations (CIT). Common requirements C-01 to C-27: skills/seo-geo-audit/references/common-page-spec.md. They apply to the location page in full (title, meta, H1, canonical, images, breadcrumb, structured data validity, server HTML, em dashes); the LOC rows below only add what is specific to a local page. "Verified by" is a `seo_audit.py` finding code, a `section_audit.py` block, or "manual".
One page per establishment. Block order and copy: references/location-page-template.md and the seo-content-service-page skill.
| ID | Requirement | Threshold | Verified by | Why | |---|---|---|---|---| | LOC-01 | Local keyword pattern: "{service} {city}" as the target keyword | City in title, URL, H1, meta description, first paragraph, one image alt | kw_placement_low, kw_not_in_intro, manual (city in each zone) | The local head term; the placement matrix applied to the place | | LOC-02 | One page per establishment, linked from the matching profile | 1 page per real location; never one shared "Locations" page for all branches | manual | A shared page lets no branch rank locally | | LOC-03 | Full NAP, byte-identical to the profile, canonical format | Name, address, phone match GBP character for character; service-area business with a home address keeps it off the page and leads with areas | section_audit "contact_details", manual comparison with GBP | Inconsistent NAP is the most common local ranking blocker (field heuristic) | | LOC-04 | Opening hours identical to the profile | Same days and times, holiday hours included | section_audit "opening_hours", manual | A contradiction with the profile erodes both | | LOC-05 | Embedded Google map of the location | 1 | section_audit "map_embed" | Orientation and a local relevance signal | | LOC-06 | Services offered at this location, with prices | Each service with a price or price range in plain HTML text | sec
SEO and GEO skills that work like a specification: they audit a page, compare it with the competitors that rank, and build the fix. Rank in Google and get cited by ChatGPT, Perplexity, Gemini and Google AI Overviews.
Measure AI visibility without paid tools or API keys. Input: your site (GA4 and server logs) and a buyer prompt panel. Output:…
Get cited and recommended by AI engines (ChatGPT, AI Overviews and AI Mode, Perplexity, Claude, Gemini). Input: a page or piece…
Turn a JavaScript-only site built by an AI website generator into indexable HTML. Input: a site made with Lovable, Base44, Bolt,…
Turn a finished SEO + GEO audit into a client-ready PDF report with a fixed, polished layout. Input: the findings of an audit…
Plan and run off-page SEO to earn links and brand mentions, including for AI visibility. Input: a site, niche, and competitors.…
Spec, audit, competitor benchmark and build for blog articles and the blog template, so a post ranks on Google and gets cited by…
When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program. Also use…
Comprehensive SEO analysis for any website or business type. Full site audits, single-page analysis, technical SEO (crawlability,…
Turn the current project website into a short, polished, shareable launch video using Hyperframes. Use when someone says "/brag",…
Full website GEO+SEO audit with parallel subagent delegation. Orchestrates a comprehensive Generative Engine Optimization audit…