seo-local

Installation
SKILL.md

seo-local (M19)

Local pages live and die on consistent, machine-readable place data. Conditional module: only runs when the page is classified local-business (storefront, service-area, multi-location, contact/location page). Reference: references/schema-tier1.md (LocalBusiness row).

Audits

Working from the PageSnapshot (rendered_dom if present, else raw_html), only for local-business pages:

  1. LocalBusiness schema: a LocalBusiness (or correct subtype, e.g. Restaurant, Dentist) JSON-LD block with required props — name, address (PostalAddress), telephone.
  2. NAP consistency: visible Name / Address / Phone match across the page (header, footer, contact block) and match the schema values — no formatting drift, no stale numbers.
  3. Geo coordinates: geo (GeoCoordinates with latitude/longitude) present and plausible for the stated address.
  4. Opening hours: openingHoursSpecification present, structured (dayOfWeek, opens, closes), and agreeing with any visible hours.
  5. Service-area: for service-area businesses, areaServed declared rather than (or alongside) a PostalAddress storefront.
  6. GBP alignment (advisory): NAP, categories, and hours should match the Google Business Profile — the tool cannot read GBP, so this is advisory only.

Fixes

  • AUTO: generate a complete, valid LocalBusiness JSON-LD block from user-confirmed NAP, hours, geo, and service-area, with a stable @id. The block is a diff for fix.
  • NAP / hours drift: PROPOSED — surface the mismatch and a draft correction for per-item accept (the tool cannot know which value is canonical).
  • GBP alignment: ADVISORY — never written by the tool. Never fabricate an address, phone, coordinates, or hours — ask the user or leave a clearly-marked TODO placeholder they fill before injection.
Installs
28
GitHub Stars
14
First Seen
7 days ago
seo-local — hainrixz/claude-seo-ai