seo-local — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited seo-local (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
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.
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. Vault structure, read-first and write-back protocols: the obsidian-brain skill.
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, 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 |
| 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 |
Every diagnosis and plan in this skill hangs on these four levers, in priority order:
| Pillar | What it covers | Why it ranks |
|---|---|---|
| 1. Reviews | Count, velocity, recency, reply rate | The strongest lever observed in the field; review signals also sit among the top local pack factor groups in the Whitespark Local Search Ranking Factors survey (measured: industry survey) |
| 2. Profile completeness | Categories, services, attributes, real photos, hours, service areas | Google ranks what it understands; an empty profile gives it nothing to match queries against |
| 3. Regular activity | Posts, photo additions, Q&A, fresh info | A liveness signal; low direct ranking impact on its own (field heuristic, see Step 6) |
| 4. Linked website strength | The site's authority, local pages, on-page local signals | Website signals flow into Maps ranking; the profile and the site feed each other |
Treating reviews as the number one factor is a constant field observation across 115+ audits, consistent with industry surveys; it is not an official Google statement. Google's own documented local ranking factors are relevance, distance, and prominence (measured: Google, see Sources), and reviews feed both relevance and prominence.
Order of operations: reviews and completeness move pack positions within weeks; website strength compounds over months; posts alone move almost nothing. Plans that start with posting cadence are treating the cheapest lever first, not the strongest (field heuristic).
| Query type | Example | What it tests |
|---|---|---|
| Explicit city | "plumber lyon" | Relevance and prominence across the whole city |
| Implicit near-me | "plumber near me" | Proximity-weighted ranking around the searcher |
| Service + qualifier | "emergency plumber open now" | Hours, attributes, and category coverage |
| AI assistant phrasing | "best plumber in lyon" asked to an assistant | The GEO layer: profile, reviews, and site together |
The gap table from point 2 sets the plan. If competitors have 240 reviews and the business has 12, no amount of posting will close that gap.
Two facts, presented honestly:
Explicit Google guidelines risk. Present both facts to the user and let them make an informed choice. Recommend compliance: a suspension costs weeks of visibility (see the reinstatement reference), and competitors can report a stuffed name. If the legal name genuinely contains the trade ("Lyon Plumbing SARL"), using it is fully compliant.
Choose the right setup first:
| Setup | Address shown | Use when |
|---|---|---|
| Storefront | Yes | Customers come to the location (shop, clinic, restaurant) |
| Service-area business | No, service areas listed instead | Work happens at the customer's location (plumber, cleaner, landscaper) |
| Hybrid | Yes, plus service areas | Customers visit and the business also travels (showroom plus installation) |
Then budget about 1h30 of focused work (field heuristic). Fill, in order:
| Field | Standard |
|---|---|
| Services | Every billable service, each with its description and price or price range |
| Attributes | All that apply (accessibility, payments, amenities) |
| Description | 750 characters, plain factual language, services + areas + differentiators |
| Photos | Real photos only: storefront, team, work in progress, results; add new ones monthly; never stock |
| Hours | Exact, including holiday hours |
| Service areas | Every city actually served (service-area businesses: hide the address, list the areas) |
| Phone and site link | Local number; link to the matching location page, not the homepage, for multi-location businesses |
| Booking and quote links | Whatever shortens the path to contact |
| Q&A | Seed the 5 most-asked buyer questions from the owner account and answer them; transparent and allowed, and it preempts wrong answers from strangers |
| Opening date | Set it; longevity feeds prominence |
Why: every filled field is matching surface for queries, and completeness differences are visible in the Step 1 gap table in nearly every audit (field heuristic).
| Review | Reply pattern |
|---|---|
| Positive | Thank by name, mention the service and city once where natural, invite back |
| Negative, legitimate | Acknowledge the facts, state the fix made, move the conversation offline; factual tone, never argue, no public discounts |
| Suspected fake | State factually that no record of this customer exists, report it through the profile; never accuse the reviewer |
Explicit Google policy risk. Never pay, discount, or incentivize reviews, never gate (filtering happy customers to Google and unhappy ones to a private form), never review-swap, never post fake reviews. All of these violate Google's review policies and can wipe every review or suspend the profile (measured: Google policy, see Sources); fake or incentivized undisclosed reviews are also illegal in several markets, including under the US FTC rule on consumer reviews (measured: see Sources).
Weekly or biweekly posts (offers, completed jobs, seasonal info) keep the profile visibly alive and add fresh photos and keywords to the surface. Direct ranking impact is low; posts are an activity signal, not a ranking engine (field heuristic, consistent with the low weight of post signals in industry surveys). Never sell posting cadence as the fix for a review or completeness gap.
The website is the fourth pillar and the one local businesses skip most often (field heuristic). Maps ranking draws on the linked site's relevance and authority; a strong location page lifts the profile, and the profile sends behavioral signals back. Concrete case seen repeatedly: a competitor with fewer reviews but a complete linked site (online booking, real on-location photos, a proper location page) outranks a business that wins on review count alone, because the richer site gives Google more to match the query against (field heuristic from 115+ agency audits). Reviews lead, but the linked site can flip a close pack position. Build:
For multi-location brands:
Name, Address, Phone: byte-identical on the site footer, location pages, GBP, every directory, every social profile. Pick one canonical format ("Rue de la République 12" vs "12 rue de la République", "+33 4 ..." vs "04 ...") and propagate it.
Why: Google and LLMs cross-check entity facts across independent sources. Consistent citations raise confidence that the business is real, located there, and reachable; conflicting data lowers it for both ranking and AI recommendation (field heuristic for the AI side; long-standing citation consistency factor in industry surveys for the ranking side). Finding and building the citation spots themselves (directories, trade associations, local listings): seo-backlinks skill.
Local press, city blogs, neighborhood associations, sponsorships, chamber of commerce features. These mentions, linked or not, build the entity prominence that both Google and AI assistants read (see GEO layer for the measured correlation). Outreach mechanics: seo-backlinks skill.
Track pack positions on the Step 1 query set from inside the service area, review velocity vs competitors, and profile interactions (calls, direction requests, site clicks) monthly. For AI assistant visibility ("best [trade] in [city]" answers), use the geo-tracking skill.
A suspension removes the profile from Maps and Search. Follow references/gbp-reinstatement.md step by step. The short version:
| Rule | Threshold | Evidence level |
|---|---|---|
| Review reply rate | 100%, negatives included | Field heuristic |
| Review ask timing | At the peak of satisfaction, same day | Field heuristic |
| Review velocity | Steady weekly flow beats bursts | Field heuristic |
| Incentivized, gated, or fake reviews | Zero, ever | Google policy + FTC rule (measured) |
| Business name | Exact real-world name; additions = ranking gain but suspension risk, user decides informed | Google guidelines + Whitespark survey (measured) |
| Primary category | The most specific available, revisited quarterly | Whitespark survey (measured) |
| Profile completeness | 100% of fields, about 1h30 of work | Field heuristic |
| Photos | Real only, new ones monthly | Field heuristic |
| Posts | Weekly to biweekly, expectations capped (activity signal) | Field heuristic |
| NAP | Byte-identical everywhere, one canonical format | Industry surveys + field heuristic |
| Listings | One profile per real location; service-area businesses hide the address | Google guidelines (measured) |
| Location pages | One per establishment, LocalBusiness schema, embedded map, local keyword pattern | Field heuristic |
| Suspended profile | Appeal once with complete evidence; never duplicate | Google guidelines (measured) |
"Best [trade] in [city]" is one of the most frequent commercial questions put to AI assistants, and the answer is a direct recommendation list the business is either on or not. Assistants assemble these lists from three source families:
Apply all of the following:
For a local visibility diagnosis, deliver:
| Priority | Action | Pillar | Impact | Effort |
|---|
For a review engine setup, deliver: the ask script (verbal + SMS/email), the short link and QR placement plan, the weekly velocity target based on the competitor gap, and reply templates (positive, negative, fake-suspected).
For a suspension, deliver: likely cause, compliance fixes, evidence checklist, and the appeal text, following references/gbp-reinstatement.md.
For location pages, deliver: one page brief per location from references/location-page-template.md, with schema notes for seo-schema-markup.
For monitoring, deliver: the fixed query set from Step 1, pack positions checked from inside the area, review velocity vs the pack leaders, profile actions (calls, direction requests, site clicks) month over month, and AI mention tracking handed to geo-tracking.
| Mistake | Why it hurts | Fix |
|---|---|---|
| Keyword-stuffing the profile name without knowing the risk | Suspension can arrive any time and costs weeks | Present both facts, decide informed, prefer compliance |
| Creating a second profile after a suspension | Flags as duplicate, blocks reinstatement | One profile, one complete appeal |
| Broad primary category ("Lawyer") | Loses to specific competitors on every money query | Most specific category that fits |
| Treating posts as the strategy | Low direct ranking impact; the review gap stays | Reviews and completeness first |
| Ignoring negative reviews | Future customers and AI assistants read the silence | 100% reply rate, factual tone |
| Review bursts after silence | Looks bought to readers and filters | Steady weekly ask routine |
| Incentivized or gated reviews | Google policy violation + legal exposure | Ask everyone, at the peak, no rewards |
| Stock photos on the profile | Kills trust, signals a shell listing | Real storefront, team, and job photos |
| Inconsistent NAP across directories | Erodes entity confidence for Google and LLMs | One canonical format, propagated |
| Linking the profile to the homepage for every branch | Generic relevance, wasted local signal | Each profile links to its location page |
| One "Locations" page for 10 branches | No branch can rank locally | One location page per establishment |
| Fake address or virtual office to appear in a city | Guideline violation, suspension and removal risk | Service-area setup or a real office |
| Checking rankings from outside the service area | Distance skews results, false conclusions | Check from inside the area or with a geo-grid tool |
| Same reply pasted under every review | Reads as automation to customers and to AIs | Reference the specific service and detail each time |
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.