About
This skill provides a framework for implementing local-business SEO and structured-data markup on public product pages like storefronts or listings. It codifies requirements for schema.org types, Core Web Vitals, local on-page signals, and technical hygiene. Senior developers apply it during initial page builds to ensure pages are structured correctly for local search.
Quick Install
Claude Code
Recommendednpx skills add avelikiy/great_cto -a claude-code/plugin add https://github.com/avelikiy/great_ctogit clone https://github.com/avelikiy/great_cto.git ~/.claude/skills/local-seoCopy and paste this command in Claude Code to install this skill
Documentation
Local SEO — built to be found, not just reviewed
For a storefront, a restaurant, or a listing site, being discoverable IS the product. SEO designed in is cheap; SEO retrofitted is a rebuild. Build these signals from the first page.
1. Structured data (schema.org) — the biggest local lever
Emit JSON-LD matching the entity, validated against Google's Rich Results requirements:
- LocalBusiness (+ the specific subtype: Restaurant, HomeAndConstructionBusiness, RealEstateAgent) — name, address (PostalAddress), geo, telephone, openingHours, priceRange, url, sameAs (social). This is the single highest-impact local SEO signal.
- Product + Offer (storefront) — name, image, price, availability, aggregateRating.
- Menu / MenuItem (restaurant online-ordering).
- RealEstateListing / Residence (listings) — price, address, floorSize, numberOfRooms.
- BreadcrumbList on every deep page; FAQPage where there's Q&A.
Validate every type with the Rich Results test before shipping; invalid JSON-LD earns nothing.
2. NAP consistency + Google Business Profile alignment
Name / Address / Phone must be byte-identical across the site, the LocalBusiness JSON-LD, and the Google Business Profile. Inconsistent NAP fractures local ranking. State the canonical NAP once and reuse it.
3. Core Web Vitals are a ranking input (not just perf)
LCP / INP / CLS feed search ranking for these pages. Coordinate with performance-engineer,
but the SEO-driven minimums: optimized responsive images (AVIF/WebP + srcset — see
media-pipeline-engineer), no layout shift on load (sized media), fast TTFB. A slow local
page loses to a fast competitor regardless of content.
4. Crawl + index hygiene
- sitemap.xml auto-generated from the catalog/listings, with
lastmod; submitted. - robots.txt allows indexable pages, blocks app/admin/checkout-internal.
- Canonical on every page (self or the preferred variant) — kills duplicate-content loss from filters/pagination/UTM.
- noindex authenticated + thin/internal pages explicitly.
- Clean, stable, keyword-relevant URLs (
/menu/margherita, not/p?id=8842).
5. On-page + content signals
- One
<h1>per page; descriptive<title>+ meta description per page (templated from the entity, not duplicated site-wide). - Descriptive
alttext on every image (a11y AND image search). - Internal linking between related entities (product↔category, listing↔neighborhood).
- Location pages for multi-location businesses (one indexable page per location, unique content).
6. Syndication (where the product distributes)
For listings/storefronts that syndicate (MLS/IDX, Google Shopping, marketplaces), the canonical lives on our page; syndicated copies point back. Define the feed format + update cadence (coordinate the source-of-truth with integrations-engineer).
Output
When applied, contribute an SEO section to the architecture/design doc and a checklist the senior-dev build satisfies:
## SEO
- schema.org types: <LocalBusiness subtype + Product/Menu/Listing> · JSON-LD validated
- canonical NAP: <name/address/phone> (identical in JSON-LD + GBP)
- CWV minimums: LCP/INP/CLS targets (with performance-engineer)
- crawl: sitemap.xml (lastmod) · robots.txt · canonical on all · noindex app/admin
- on-page: 1×h1, per-page title/meta, alt text, clean URLs
- syndication (if any): canonical = our page; feed = <format/cadence>
GitHub Repository
Frequently asked questions
What is the local-seo skill?
local-seo is a Claude Skill by avelikiy. Skills package instructions and resources that Claude loads on demand, so Claude can perform local-seo-related tasks without extra prompting.
How do I install local-seo?
Use the install commands on this page: add local-seo to Claude Code as a plugin, or clone its repository into your skills directory, then restart Claude so it picks up the skill.
What category does local-seo belong to?
local-seo is in the Meta category, tagged api, design and data.
Is local-seo free to use?
Yes. local-seo is listed on AIMCP and free to install. It runs inside Claude, so no separate service account is required to use the skill itself.
Related Skills
This skill provides a production-tested setup for Content Collections, a TypeScript-first tool that transforms Markdown/MDX files into type-safe data collections with Zod validation. Use it when building blogs, documentation sites, or content-heavy Vite + React applications to ensure type safety and automatic content validation. It covers everything from Vite plugin configuration and MDX compilation to deployment optimization and schema validation.
This skill enables developers to build applications with the Polymarket prediction markets platform, including API integration for trading and market data. It also provides real-time data streaming via WebSocket to monitor live trades and market activity. Use it for implementing trading strategies or creating tools that process live market updates.
This skill helps developers create OpenCode plugins that hook into 25+ event types like commands, files, and LSP operations. It provides the plugin structure, event API specifications, and implementation patterns for JavaScript/TypeScript modules. Use it when you need to intercept, monitor, or extend the OpenCode AI assistant's lifecycle with custom event-driven logic.
SGLang is a high-performance LLM serving framework that specializes in fast, structured generation for JSON, regex, and agentic workflows using its RadixAttention prefix caching. It delivers significantly faster inference, especially for tasks with repeated prefixes, making it ideal for complex, structured outputs and multi-turn conversations. Choose SGLang over alternatives like vLLM when you need constrained decoding or are building applications with extensive prefix sharing.
