Local SEO skill for Claude Code

Win the map pack without risking a suspension. Claude audits each Business Profile against Google's guidelines before touching rankings: real-world name, the most specific primary category, accurate hours, and a location page that matches the profile character for character. It then cleans up citations in impact order, sets up review requests that never gate or incentivize, and measures with a geo-grid instead of one rank check.

  • namelocal-seo
  • size218 lines · ≈2,950 tokens
  • files1
  • licenseMIT
  • updated

What Claude sees before loading it

This description is the only part of the skill that sits in context all the time. Claude reads it to decide when to load the full playbook below.

description: Improves visibility in Google's local pack and Maps for businesses with physical locations or service areas, covering Google Business Profile setup and guideline compliance, primary category choice, NAP consistency across citations, Apple Business Connect and Bing Places, location landing pages with LocalBusiness schema, compliant review generation and responses, and geo-grid rank tracking. Use when a business is missing from the map pack, a profile was suspended, opening a new location, or building city or location pages.

Try asking

  • Our dental clinic doesn't show in the Google map pack for 'dentist near me' even two blocks away. Audit it
  • We're opening three new locations next quarter. Set up the profiles and location pages properly
  • Our plumbing company's Business Profile got suspended after we renamed it. What went wrong and how do we fix it?

Use it when

  • A business with locations or service areas is missing from the map pack or Maps
  • Setting up, auditing, or reinstating a Google Business Profile
  • Building location or city landing pages
  • Planning a review generation and response process

Skip it when

How to check the result

Diff the canonical NAP string across the profile, location page, schema, Apple Business Connect, and Bing Places, and confirm the location page passes the Rich Results Test with hours rendered as text.

The common mistake it prevents

Stuffing keywords or a city into the Business Profile name brings a short-term bump, then suspension once a competitor suggests an edit.

~/.claude/skills/local-seo/SKILL.md

--- name: local-seo description: Improves visibility in Google's local pack and Maps for businesses with physical locations or service areas, covering Google Business… license: MIT ---

Done well means every real location has one verified, guideline-compliant Business Profile whose name, address, phone, category, and hours match the location page and the major citation sources exactly, earns a steady flow of genuine reviews, and is measured with calls, direction requests, and a location grid instead of one vanity rank.

Ground rules

  • Google ranks local results on three factors it names publicly: relevance, distance, and prominence. Distance you cannot change. Never fake it with virtual offices, PO boxes, or “satellite” addresses; that is the fastest route to suspension.
  • The Business Profile name must be the real-world name used on signage, invoices, and the website. Adding keywords or cities (“Smith Plumbing - Emergency Plumber Austin”) violates the guidelines, invites competitor edits and suspension, and is the most common cause of a lost profile.
  • One profile per physical location that serves customers in person or is staffed during stated hours. Coworking desks and mail drops are ineligible unless staffed with signage.
  • Reviews are earned, never bought, filtered, or written by staff. In the US the FTC rule on fake reviews (16 CFR Part 465, in force since October 2024) adds civil penalties to what Google already removes.
  • Changes to name, address, or primary category can trigger re-verification or a suspension. Batch them, make them deliberately, and confirm with the user first.

Workflow

- [ ] 1. Inventory locations and business model (storefront, service-area, hybrid)
- [ ] 2. Audit each Business Profile against the guidelines
- [ ] 3. Fix categories, hours, attributes, services, photos
- [ ] 4. Lock the canonical NAP and clean up citations
- [ ] 5. Build or repair location landing pages + LocalBusiness schema
- [ ] 6. Set up review generation and response routine
- [ ] 7. Measure: GBP performance, UTM-tagged clicks, geo-grid ranks
- [ ] 8. Report and schedule monthly upkeep

1. Inventory the business model

ModelProfile setupAddress shown
Storefront (customers visit)One profile per locationYes
Service-area business (plumber, mobile groomer)One profile per base; set service areas (up to 20) by city or postcodeHide the address if customers are not served there
Hybrid (visits and on-site service)Address shown plus service areasYes
Online-onlyNot eligible for a Business ProfileUse organic and Merchant Center instead
Multi-practitioner (law, medical)Practice profile; individual practitioner profiles allowed where Google permitsSame address, distinct names

Record per location: legal and signage name, address formatted as the postal service writes it, a local phone number (tracking numbers go in the “additional phone” slot, with the main local line kept primary), hours, website URL, and who owns the profile login.

2. Audit each profile

Check, in order of impact:

  1. Ownership and access: the business owns the profile through a company Google account, agencies are managers, not owners.
  2. Name compliance (no keyword stuffing) and verification status.
  3. Primary category: the single most important relevance signal. Choose the most specific category that describes the core business (“Personal injury attorney”, not “Lawyer”). Pick it by checking which categories the top three map-pack competitors use for the head term, using a category-inspection browser extension or the profile’s edit view.
  4. Additional categories (up to 9 more): only ones that describe real services offered.
  5. Hours, holiday hours, and special hours: wrong hours cause “closed” complaints and ranking suppression in “open now” searches.
  6. Website link: for multi-location brands, link each profile to its location page, not the home page.
  7. Products and services, attributes (accessibility, payment, owner identities), opening date, description (750 characters, no URLs or promotions).
  8. Photos: exterior from the street (helps people find the door), interior, team, work examples. Real photos, geotagging is not a ranking lever.
  9. Duplicate or unclaimed profiles at the same address: request removal or merge; leftover duplicates split reviews and signals.

Questions and answers: Google has been retiring the public Q&A panel in favor of an AI “Ask” experience built from profile data and reviews (rolled out from late 2025). Keep services, attributes, and the description complete because that data now answers customer questions. Check the current Business Profile Help pages before advising on Q&A.

3. Fix profile content

  • Posts (updates, offers, events) are useful for conversion and freshness, not a strong ranking factor. A weekly or fortnightly cadence is plenty.
  • Services list: use the customer’s words (“water heater replacement”), add short descriptions and prices where possible.
  • Booking, menu, and product links: use first-party URLs with UTM tags.
  • Never accept a “suggested edit” from Google blindly; check what changed, especially categories and hours, which users and competitors can propose.

4. Lock NAP and clean citations

Write one canonical NAP block and use it character-for-character everywhere:

Bright Smile Dental
1420 W 6th St, Suite 200
Austin, TX 78703
(512) 555-0142

Priority order for citations (US example; substitute national equivalents):

  1. Google Business Profile, Apple Business Connect (Apple Maps, Siri), Bing Places (can import from Google), Facebook page.
  2. Data aggregators that feed many directories (Data Axle, Foursquare, and similar in the target country).
  3. Industry directories that rank for the service (Healthgrades, Avvo, Houzz, TripAdvisor, Yelp) and the local chamber of commerce.
  4. Everything else only after the above are correct.

Moved or rebranded? Find old NAP variants by searching the old phone number and old street address in quotes, then correct the top-ranking listings first. Inconsistency in obscure directories matters far less than inconsistency on Google, Apple, Bing, Yelp, and the site.

5. Location landing pages

One page per real location at a stable URL (/locations/austin-west-6th/). Each page must earn its index slot with information only that location has:

  • Exact NAP block matching the profile, embedded map, directions and parking notes.
  • Hours, including holiday hours, rendered as text, not only an image.
  • Services actually offered at that location, staff or practitioner bios with photos.
  • Reviews or testimonials from customers of that location (on-page testimonials only; self-serving review markup is not eligible for stars).
  • Local photos, nearby landmarks, and an FAQ answering location-specific questions.
  • A LocalBusiness subtype JSON-LD block (Dentist, Plumber, Restaurant), with name, address, telephone, url, geo, openingHoursSpecification, and sameAs pointing at the profile and major listings. Validate with the Rich Results Test.

Service-area “city pages” are where local SEO turns into spam. A page per suburb that swaps the city name into the same text is a doorway page. Create a city page only when there is real local substance: jobs completed there with photos, local regulations or permits, response times, local testimonials. Otherwise list service areas on one page.

For structured data details beyond LocalBusiness, hand off to schema-markup.

6. Reviews

Compliant review generation:

  • Ask every customer, at the moment of success (job completed, visit ended), by SMS or email with the profile’s direct review link from the Business Profile dashboard.
  • Never gate: do not send happy customers to Google and unhappy ones to a private form. Google prohibits selective solicitation and the FTC rule targets review suppression.
  • No incentives tied to reviews (discounts, raffles), no reviews from employees or family, no review stations on in-store tablets on business Wi-Fi (they get filtered).
  • Spread requests over time. A spike of 40 reviews in a week after months of nothing gets filtered and looks bought.

Response routine (owner or a named delegate, within 2 business days):

ReviewResponse
5 stars, textThank by name, mention the specific service, keep it short and varied
4 starsThank, acknowledge the gap if stated, invite them back
1–3 stars, real customerAcknowledge, no defensiveness, no private details (health, legal), offer an offline contact, fix the issue, then reply again with the outcome
Fake, conflict of interest, or off-topicFlag via the profile’s report option with evidence; respond briefly and factually in the meantime

Never disclose patient or client information in a response, even to rebut a false claim.

7. Measure

  • Business Profile performance: searches by query, calls, direction requests, website clicks, bookings. Track monthly per location, compare year over year for seasonality.
  • Tag the profile website link so GA4 can isolate it: https://example.com/locations/austin-west-6th/?utm_source=google&utm_medium=organic&utm_campaign=gbp-austin-west-6th
  • Rank with a geo-grid (for example a 7x7 grid at 0.5 to 1 mile spacing around the location) for 5 to 10 head terms. A single rank check from one point misrepresents how distance shapes the map pack.
  • Track review count, average rating, review velocity per month, and response rate.

8. Report

## Local SEO audit — <business>, <n> locations (YYYY-MM-DD)

| Location | Verified | Name compliant | Primary category | NAP matches site | Reviews (count / avg / last 30d) | Issues |
|---|---|---|---|---|---|---|

**Top fixes (impact order):** ...
**Citation corrections needed:** source, current value, correct value
**Location pages:** URL, unique-content checklist pass/fail, schema valid
**Measurement baseline:** calls, directions, website clicks, grid average rank per term
**Monthly upkeep:** review responses, hours updates, posts, photo adds, suggested-edit check

Gotchas

  • Changing the primary category to chase a keyword can drop the profile for its real core terms. Test changes one at a time and watch the grid for two to four weeks.
  • Moving a location: update the address on the existing profile (keeps reviews) instead of creating a new one; mark the old one moved only if Google requires it.
  • Tracking phone numbers as the primary number break NAP consistency; keep the local line primary.
  • Hiding the address on a storefront business removes it from many map searches.
  • Suspensions: do not create a new profile. Fix the violation, collect proof (business license, utility bill, signage photos, video walkthrough), and submit the reinstatement request once.
  • Competitor spam (keyword-stuffed names, fake locations) can be reported through Google’s business redressal complaint form with evidence; do not retaliate with fake reviews.
  • Map-pack visibility falls off sharply with distance; a location’s grid will never be green across a whole metro. Set expectations around the realistic radius.

Verification

  • Every profile: verified, compliant name, correct primary category, hours current, website link resolves 200 to the matching location page.
  • Canonical NAP string matches across the profile, location page, schema, Apple Business Connect, Bing Places, and top industry directories (diff them as text).
  • Location page passes the Rich Results Test with no errors and renders hours as text.
  • Review requests go to every customer, response rate is 100 percent for the last 90 days.
  • Geo-grid baseline captured so the next monthly report shows a real delta.

About this skill

Written and maintained by the Claude Skills editors to the same editorial standard as every skill in the directory: a selective trigger, a real workflow, known pitfalls and a verification step. First published , last updated . MIT licensed.

esc