12 new skills: Keyword Strategy, SERP Analysis, Position Tracking, Link Building, Content Strategy, E-Commerce SEO, KPI Framework, International SEO, AI Visibility, Knowledge Graph, Competitor Intel, and Crawl Budget. ~20K lines of Python across 25 domain scripts. Updated skill 11 pipeline table and repo CLAUDE.md. Enhanced skill 18 local SEO workflow from jamie.clinic audit. Note: Skill 26 hreflang_validator.py pending (content filter block). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
8.3 KiB
name, description
| name | description |
|---|---|
| seo-local-audit | Local business SEO auditor for Korean-market businesses. Covers business identity extraction, NAP consistency, Google Business Profile, Naver Smart Place, Kakao Map, local citations, and LocalBusiness schema validation. Triggers: local SEO, NAP audit, Google Business Profile, GBP optimization, local citations, 네이버 스마트플레이스, 카카오맵, 로컬 SEO. |
SEO Local Audit
Purpose
Audit local business SEO for Korean-market businesses: business identity extraction, NAP consistency, GBP optimization, Naver Smart Place, Kakao Map, local citations, and LocalBusiness schema markup.
Core Capabilities
- Business Identity - Extract official names, address, phone from website schema/content
- NAP Consistency - Cross-platform verification against canonical NAP
- GBP Optimization - Layered discovery + profile completeness audit
- Naver Smart Place - Layered discovery + listing completeness audit
- Kakao Map - Presence verification + NAP check
- Citation Audit - Korean-first directory presence
- Schema Validation - LocalBusiness JSON-LD markup
MCP Tool Usage
mcp__firecrawl__scrape: Extract NAP and schema from website
mcp__perplexity__search: Find citations, GBP, Naver Place listings
mcp__notion__create-page: Save audit findings
Workflow
Step 0: Business Identity (MANDATORY FIRST STEP)
Before any audit, establish the official business identity.
Sources (in priority order):
- Website schema markup (JSON-LD
Organization,Hospital,LocalBusiness) —namefield is authoritative - Contact page / About page
- Footer (address, phone, social links)
- User-provided information
Data to collect:
| Field | Example |
|---|---|
| Official name (Korean) | 제이미성형외과의원 |
| Official name (English) | Jamie Plastic Surgery Clinic |
| Brand/display name | Jamie Clinic |
| Website URL | https://www.jamie.clinic |
| Address (Korean) | 서울특별시 강남구 ... |
| Phone | 02-XXX-XXXX |
| Known GBP URL | (if available) |
| Known Naver Place URL | (if available) |
| Known Kakao Map URL | (if available) |
Look for these URL patterns in sameAs, footer links, or embedded iframes:
- GBP:
maps.app.goo.gl/*,google.com/maps/place/*,g.page/* - Naver Place:
naver.me/*,map.naver.com/*/place/*,m.place.naver.com/* - Kakao Map:
place.map.kakao.com/*,kko.to/*
Step 1: Website NAP Extraction
Scrape header, footer, contact page, about page. Cross-reference with schema markup. Establish the canonical NAP baseline.
Step 2: GBP Verification & Audit
Layered discovery (try in order, stop when found):
- Use provided GBP URL (from Step 0 or user input)
- Check website for GBP link (footer, contact, schema
sameAs, embedded Google Maps iframe) - Search:
"[Korean Name]" "[City/District]" Google Maps - Search:
"[English Name]" Google Maps [City] - Search:
"[exact phone number]" site:google.com/maps
Important: Google Maps is JS-rendered — scraping tools cannot extract business data. Use search for discovery, verify via search result snippets.
If found — audit checklist (score /10):
- Business name matches canonical NAP
- Address is complete and accurate
- Phone number matches
- Business hours are current
- Primary + secondary categories appropriate
- Business description complete
- 10+ photos uploaded
- Posts are recent (within 7 days)
- Reviews are responded to
- Q&A section is active
If NOT found: Report as "not discoverable via web search" (distinct from "does not exist").
Step 3: Naver Smart Place Verification & Audit
Layered discovery (try in order, stop when found):
- Use provided Naver Place URL (from Step 0 or user input)
- Check website for Naver Place link (footer, contact, schema
sameAs) - Search:
"[Korean Name]" site:map.naver.com - Search:
"[Korean Name]" 네이버 지도 [district] - Search:
"[Korean Name]" 네이버 스마트플레이스 - Search:
"[exact phone number]" site:map.naver.com
Important: Naver Map is JS-rendered — scraping tools cannot extract data. Use search for discovery, verify via snippets.
If found — audit checklist (score /10):
- Business name matches canonical NAP
- Address is complete and accurate
- Phone number matches
- Business hours are current
- Place is "claimed" (owner-managed / 업주 등록)
- Keywords/tags are set
- Booking/reservation link present
- Recent blog reviews linked
- Photos uploaded and current
- Menu/service/price information present
If NOT found: Report as "not discoverable via web search" (not "does not exist" or "not registered").
Step 4: Kakao Map Verification
Discovery:
- Use provided Kakao Map URL (from Step 0)
- Check website for Kakao Map link (
place.map.kakao.com/*,kko.to/*) - Search:
"[Korean Name]" site:place.map.kakao.com - Search:
"[Korean Name]" 카카오맵 [district]
If found: Verify NAP consistency against canonical NAP.
Step 5: Citation Discovery
Korean market platform priorities:
| Platform | Priority | Market |
|---|---|---|
| Google Business Profile | Critical | Global |
| Naver Smart Place (네이버 스마트플레이스) | Critical | Korea |
| Kakao Map (카카오맵) | High | Korea |
| Industry-specific directories | High | Varies |
| Apple Maps | Medium | Global |
| Bing Places | Low | Global |
Korean medical/cosmetic industry directories:
- 강남언니 (Gangnam Unni)
- 바비톡 (Babitalk)
- 성예사 (Sungyesa)
- 굿닥 (Goodoc)
- 똑닥 (Ddocdoc)
- 모두닥 (Modoodoc)
- 하이닥 (HiDoc)
Step 6: NAP Consistency Report
Cross-reference all sources against canonical NAP.
Common inconsistency points:
- Building/landmark names — authoritative source is the business registration certificate (사업자등록증)
- Phone format variations (02-XXX-XXXX vs +82-2-XXX-XXXX)
- Address format (road-name vs lot-number / 도로명 vs 지번)
- Korean vs English name spelling variations
- Suite/floor number omissions
Step 7: LocalBusiness Schema Validation
Validate JSON-LD completeness: @type, name, address, telephone, openingHours, geo (GeoCoordinates), sameAs (GBP, Naver, Kakao, social), url, image.
Scoring
| Component | Weight | Max Score |
|---|---|---|
| Business Identity completeness | 5% | /10 |
| NAP Consistency | 20% | /10 |
| GBP Optimization | 20% | /10 |
| Naver Smart Place | 20% | /10 |
| Kakao Map presence | 10% | /10 |
| Citations (directories) | 10% | /10 |
| LocalBusiness Schema | 15% | /10 |
Overall Local SEO Score = weighted average, normalized to /100.
Output Format
## Local SEO Audit: [Business]
### Business Identity
| Field | Value |
|-------|-------|
| Korean Name | ... |
| English Name | ... |
| Address | ... |
| Phone | ... |
### NAP Consistency: X/10
| Source | Name | Address | Phone | Status |
|--------|------|---------|-------|--------|
| Website | OK/Issue | OK/Issue | OK/Issue | Match/Mismatch |
| GBP | OK/Issue | OK/Issue | OK/Issue | Match/Mismatch |
| Naver Place | OK/Issue | OK/Issue | OK/Issue | Match/Mismatch |
| Kakao Map | OK/Issue | OK/Issue | OK/Issue | Match/Mismatch |
### GBP Score: X/10
[Checklist results]
### Naver Smart Place: X/10
[Checklist results]
### Kakao Map: X/10
[Status + NAP check]
### Citations: X/10
| Platform | Found | NAP Match |
|----------|-------|-----------|
| ... | | |
### LocalBusiness Schema: X/10
- Present: Yes/No
- Valid: Yes/No
- Missing fields: [list]
### Overall Score: XX/100 (Grade)
### Priority Actions
1. [Recommendations]
Notes
- GBP and Naver Map are JS-rendered — scraping tools cannot extract listing data. Always use search for discovery.
- "Not discoverable via web search" != "does not exist." Always use this precise language.
- For Korean businesses, Naver Smart Place is as important as GBP (often more so for domestic traffic).
Notion Output (Required)
All audit reports MUST be saved to OurDigital SEO Audit Log:
- Database ID:
2c8581e5-8a1e-8035-880b-e38cefc2f3ef - Properties: Issue (title), Site (url), Category (Local SEO), Priority, Found Date, Audit ID
- Language: Korean with English technical terms
- Audit ID Format: LOCAL-YYYYMMDD-NNN