local-seo
Skill0 starsChanged 2 months agoMITView on GitHub
Rank a business in Google's local pack, Maps and local organic results, and get it recommended by AI assistants for "near me" style questions. Use whenever the user mentions local SEO, Google Business Profile, Google My Business, Maps ranking, the local pack, near me searches, NAP consistency, citations, local landing pages, multi-location businesses, service area businesses, review management, or a business with a physical address or service territory. Also use for restaurants, clinics, trades, agencies, retail, franchises and any business whose customers are geographically bounded.
21 other projects use a version of this.
Adopted by
Most recently taken up by
- 6t9xstar/one-step-seotheir own version, first seen Nov 8, 2026
- foverse/seoversetheir own version, first seen Nov 8, 2026
- ZoolCoder/findabletheir own version, first seen Nov 1, 2026
- winsley-jeune/harborrank-skillstheir own version, first seen Nov 1, 2026
- textura-agency/next16-claude-startertheir own version, first seen Nov 1, 2026
- astDeniss/business-skillstheir own version, first seen Nov 1, 2026
Used with
Projects with it also use seo-project-setup, link-prospecting and 7 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
JwuthriSkillseo-project-setup
Set up a durable local SEO workspace with project context, notes, goals, positioning, preferences, MCP checks, and Search Console data intake.
Also in 5 projects that use this
JwuthriSkilllink-prospecting
Find link prospects, discover contact paths, and draft outreach from SERPs and backlink signals.
Also in 5 projects that use this
akii-technologies-ltdSkillkeyword-clustering
Cluster and organize keywords into topical groups for SEO. Use when the user asks to "cluster keywords", "group keywords", "organize keywords", "keyword mapping", "topic clusters", "keyword grouping", "build a content plan", "pillar pages", "topical authority", "semantic clustering", or pastes a list of keywords.
Also in 6 projects that use this
MicrosoftSkillcompetitive-landscape
Use when a branch manager asks something like \"Who are we up against in each metro\"
Also in 5 projects that use this
deeployCOSkillyoutube-seo
Advanced YouTube SEO analysis and optimization for channels and videos. Routes to specialized sub-skills for audits, single-video deep dives, metadata optimization, channel branding, keyword research, thumbnails, and competitor intel. Models YouTube's modern recommender (session watch time / Reinforce / persona matching) not just keyword match. Use when user says "YouTube SEO", "optimize my video", "rank my YouTube video", "YouTube channel audit", "YouTube keywords", or provides a YouTube URL.
Also in 3 projects that use this
01claudingSkillseo-report
SEO reporting and analytics dashboard generation. Creates weekly digests, monthly performance reports, quarterly strategy reviews, and real-time dashboard templates. Use when user says "SEO report", "weekly digest", "monthly report", "dashboard", "SEO metrics", "performance summary".
Also in 3 projects that use this
- +1 more from Jwuthri
Other versions21 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 21
- every-app/open-seo★ 27ksame name
- nowork-studio/toprank★ 4.1ksame name
- nowork-studio/notfair-plugin★ 4.1ksame name
- kostja94/marketing-skills★ 1.1ksame name
- indranilbanerjee/digital-marketing-pro★ 934same name
- textura-agency/next16-claude-starter★ 141same name
- huifer/claude-code-seo★ 110same name
- dalroot/agentic-seo★ 23same name
- astDeniss/business-skills★ 8same name
- scayver/marketing-skills★ 8same name
11 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository29 other files it gives its agents.
- ai-bot-log-analysisSkill
- ai-crawler-policySkill
- ai-visibility-auditSkill
- best-of-listicle-pagesSkill
- canonical-duplicate-contentSkill
- comparison-alternatives-pagesSkill
- content-refreshSkill
- core-web-vitalsSkill
- ecommerce-seoSkill
- eeat-author-pagesSkill
- entity-brand-consistencySkill
- featured-snippet-passagesSkill
- glossary-definition-hubSkill
- hreflang-international-seoSkill
- image-seoSkill
- internal-linking-architectureSkill
- keyword-cannibalizationSkill
- keyword-research-briefsSkill
- link-building-outreachSkill
- nextjs-seoSkill
- programmatic-seoSkill
- redirect-migration-planSkill
- schema-markupSkill
- search-console-analysisSkill
- shopify-seoSkill
- technical-seo-auditSkill
- topical-authority-mapSkill
- video-seoSkill
- wordpress-seoSkill
The file
We split this skill into the rules it gives an agent
5 rules. 0 are common, 4 are distinctive, and 1 is very specific to this project.
0
Common
Most of the 19 edited versions we read keep these.
4
Distinctive
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 19
Secondary categories: Add every one that genuinely applies, and no more.
- Distinctive: line 57
Search the phone number in quotes and the old address in quotes to find them.
- Very specific: line 79
If a city page can only be produced by find-and-replace, don't produce it.
- Distinctive: line 97
Use a grid-based local rank check across the service area rather than a single point.
- Distinctive: line 102
Search Console, filtered to location and service queries
“Common” is measured: kept by at least 6 in 10 of the 19 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Local SEO
Local ranking runs on a different system from organic ranking, and it's the more winnable one. Three factors decide the local pack: relevance, distance and prominence. You can't move the business, so the work is relevance and prominence.
The advantage of local is that the competition is usually doing nothing. A complete, accurate, actively maintained profile beats most competitors in most cities.
Step 1: Google Business Profile, done completely
The profile is the ranking entity for the local pack. The website supports it. People get this backwards and spend months on a site while the profile sits half-filled.
Non-negotiables, in order of effect:
- Primary category. The single highest-impact field. Choose the most specific category that matches the main service. "Personal injury attorney" ranks for different things than "Lawyer". Check what categories top competitors use.
- Secondary categories. Add every one that genuinely applies, and no more.
- Business name. The real, legal, on-the-signage name. Stuffing keywords into it works until it gets reported, then the profile gets suspended.
- Address and service area. A real, staffed address. Service-area businesses hide the address and set a radius. Don't do both.
- Hours, including holiday hours. Accuracy here is checked and feeds "open now" filters.
- Services and products, listed individually with descriptions. Most profiles leave this empty. It's free relevance.
- Attributes — accessibility, payment methods, amenities, identity attributes. They power filters people actually use.
- Photos. Real ones, geotagged or not, added regularly. Exterior, interior, team, work. Stock photography is visible from space.
- Q&A. You may seed genuine questions and answer them. Do it, because a competitor or a confused customer will otherwise write the answer for you.
- Posts. Low ranking weight, real conversion effect, keeps the profile looking alive.
Step 2: Reviews
Reviews drive prominence and they drive the click. Both matter.
- Ask every satisfied customer, systematically, at the moment the value landed. A link in the follow-up email outperforms everything else.
- Never gate. Asking only happy customers to leave a public review, and routing unhappy ones to a private form, violates Google's policy and is easy to detect.
- Never buy or incentivise reviews. Filtered at best, profile suspension at worst.
- Reply to all of them, including the good ones, in the owner's voice. Replies are public and are read by future customers.
- Reply to negatives factually and briefly. Acknowledge, state what happened or what you'll do, offer a channel. Arguing in public is a permanent decision.
- Volume and recency both count. Forty reviews from three years ago reads worse than twelve from this quarter.
Review content is also mined for relevance. When customers naturally mention the service and the neighbourhood in their reviews, that's a genuine signal. Prompting them to include specific keywords is not, and reads as fake to humans first.
Step 3: NAP consistency and citations
Name, address and phone, identical everywhere. Not "similar". Identical, down to whether it says Street or St.
Priority order for listings, since this can absorb unlimited time:
| Tier | Where | Effort |
| 1 | Google Business Profile, Apple Business Connect, Bing Places | Do all three |
| 2 | The big aggregators, plus the dominant directory in the country | Do them once, properly |
| 3 | Industry-specific directories with real traffic | Worth it, selectively |
| 4 | Generic citation-farm directories | Ignore. They stopped working years ago |
The real work in tier 2 is finding and fixing existing wrong entries — an old address, a disconnected phone number, a duplicate profile from a previous owner. Inconsistency is what damages you; new citations barely move anything once you're consistent.
Search the phone number in quotes and the old address in quotes to find them.
Step 4: The website side
LocalBusinessstructured data on the contact and location pages, with the exact NAP, hours and geo coordinates. Use the most specific subtype available. Seeschema-markup.- Embed a map on the location page and link the Business Profile.
- NAP in the HTML as text, in the footer or on the contact page. Not in an image.
- A page per location, for multi-location businesses, each with its own address, hours, staff, photos, local content and profile link.
- A page per service, and for larger territories, a page per service per city — but only where you can write something genuinely different about that city. See the warning below.
Step 5: Location pages that aren't spam
The standard local play is a page per city, and the standard execution is one template with the city name swapped in. Google names that as scaled content abuse, and it also doesn't rank.
A location page earns its existence when it has at least three of:
- Real work done in that area, with photos or a case study
- Staff, an address or a depot actually there
- Genuine local specifics — response times, permits, regulations, conditions, pricing that varies
- Reviews from customers in that area
- Local landmarks and neighbourhoods used the way a local would use them, not stuffed into a paragraph
If a city page can only be produced by find-and-replace, don't produce it. One strong regional page beats forty templated city pages, and it won't get the site penalised. For doing this at genuine scale with real per-page data, see programmatic-seo.
Step 6: Local visibility in AI assistants
"Best plumber near me" is increasingly answered by an assistant rather than a map. What feeds those answers:
- The Business Profile itself, which is widely syndicated and read
- Review text on multiple platforms, since a model synthesising across sources weights agreement
- Consistent entity data so all sources describe the same business
- Local press, community sites and genuine directory presence as corroboration
- A site that states the facts plainly — services, areas covered, hours, prices where possible, in extractable text rather than in a designed graphic
The diagnosis method is in ai-visibility-audit and applies directly. Run the local prompts a customer would actually ask and see who gets named.
Measuring
Local rankings vary by the searcher's physical position, so a single rank check is meaningless. Ranking at the shop and ranking three kilometres away are different numbers, and the second one is the one that matters for growth.
Use a grid-based local rank check across the service area rather than a single point. Track:
- Business Profile insights: discovery versus direct searches, calls, direction requests, website clicks
- Local pack position across a grid, not at one address
- Review velocity and average rating
- Search Console, filtered to location and service queries
Discovery searches versus direct searches is the number to watch. Direct searches are people who already knew the name. Discovery searches are growth.
Don't do these
- Don't keyword-stuff the business name. It's the most common suspension cause.
- Don't use a virtual office, a mailbox or a friend's address. Address verification is stricter than it used to be and a suspension takes weeks to unwind.
- Don't create a profile per service at one address. One business, one profile.
- Don't buy citation packages. Hundreds of listings on directories with no users do nothing.
- Don't gate or incentivise reviews.
- Don't neglect Apple Maps. It feeds Apple Intelligence and Siri, and almost nobody claims it.
Related skills
schema-markup, entity-brand-consistency, ai-visibility-audit, programmatic-seo, eeat-author-pages, technical-seo-audit
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

