Add SEO skills 19-28, 31-32 with full Python implementations

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>
This commit is contained in:
2026-02-13 12:05:59 +09:00
parent 159f7ec3f7
commit a3ff965b87
125 changed files with 25948 additions and 173 deletions

View File

@@ -34,9 +34,38 @@ python scripts/seo_audit_orchestrator.py --url https://example.com --json
| 2 | On-Page SEO | `13-seo-on-page-audit/code/scripts/page_analyzer.py` |
| 3 | Core Web Vitals | `14-seo-core-web-vitals/code/scripts/pagespeed_client.py` |
| 4 | Schema Validation | `16-seo-schema-validator/code/scripts/schema_validator.py` |
| 5 | Local SEO | `18-seo-local-audit/` (prompt-driven) |
| 5 | Local SEO | `18-seo-local-audit/` (prompt-driven — see Stage 5 notes below) |
| 6 | Search Console | `15-seo-search-console/code/scripts/gsc_client.py` |
## Stage 5: Local SEO — Key Requirements
Stage 5 is prompt-driven and requires **Business Identity extraction as a mandatory first step**:
1. Extract Korean name, English name, address, phone from website JSON-LD schema markup (`Organization`/`Hospital`/`LocalBusiness`)
2. Check website footer, contact page, and schema `sameAs` for GBP, Naver Place, and Kakao Map URLs
3. Use layered search fallback if listing URLs are not found on the website
4. Follow `18-seo-local-audit/code/CLAUDE.md` for the full workflow
5. **Korean market priorities**: GBP and Naver Smart Place are both Critical; Kakao Map is High; US-centric directories (Yelp, Yellow Pages) are Low
6. **Important**: GBP and Naver Map are JS-rendered. Report unfound listings as "not discoverable via web search" — not "does not exist"
## Extended SEO Skills Pipeline
Beyond the 6 core audit stages, additional specialized skills are available for deeper analysis:
| Skill | Audit ID | Purpose | Command |
|-------|----------|---------|---------|
| 19 - Keyword Strategy | KW | Seed expansion, intent classification, keyword gaps | `/seo-keyword-strategy` |
| 20 - SERP Analysis | SERP | Google/Naver SERP features, competitor positions | `/seo-serp-analysis` |
| 21 - Position Tracking | RANK | Rank monitoring, visibility scores, alerts | `/seo-position-tracking` |
| 22 - Link Building | LINK | Backlink audit, toxic links, link gaps | `/seo-link-building` |
| 23 - Content Strategy | CONTENT | Content audit, decay detection, briefs | `/seo-content-strategy` |
| 24 - E-Commerce SEO | ECOM | Product page audit, product schema | `/seo-ecommerce` |
| 25 - SEO KPI Framework | KPI | Unified KPIs, health scores, ROI | `/seo-kpi-framework` |
| 26 - International SEO | INTL | Hreflang validation, content parity | `/seo-international` |
| 27 - AI Visibility | AI | AI search citations, brand radar, SOV | `/seo-ai-visibility` |
| 28 - Knowledge Graph | KG | Entity SEO, Knowledge Panel, PAA | `/seo-knowledge-graph` |
| 31 - Competitor Intel | COMP | Competitor profiling, benchmarking | `/seo-competitor-intel` |
| 32 - Crawl Budget | CRAWL | Log analysis, bot profiling, waste | `/seo-crawl-budget` |
## Health Score Weights
| Category | Weight |

View File

@@ -62,10 +62,37 @@ python "$SKILLS/14-seo-core-web-vitals/code/scripts/pagespeed_client.py" --url $
# Stage 4: Schema Validation
python "$SKILLS/16-seo-schema-validator/code/scripts/schema_validator.py" --url $URL --json
# Stage 5: Local SEO (prompt-driven, use WebFetch + WebSearch)
# Stage 5: Local SEO (see detailed instructions below)
# Stage 6: Search Console (requires GSC API credentials)
```
### Stage 5: Local SEO — Detailed Instructions
Stage 5 is prompt-driven (no script). Follow this sequence:
1. **Extract Business Identity from website (MANDATORY FIRST)**
- WebFetch the homepage and parse JSON-LD `<script type="application/ld+json">` tags
- Extract from `Organization`, `Hospital`, or `LocalBusiness` schema: Korean name, English name, address, telephone
- Check `sameAs` array for GBP, Naver Place, Kakao Map URLs
2. **Check website for listing links**
- Scrape footer, contact page, about page for links matching:
- 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/*`
- Check embedded iframes for Google Maps Place IDs or Naver Map embeds
3. **Layered search fallback (if links not found on website)**
- GBP: Search `"[Korean Name]" "[district]" Google Maps`, then `"[phone]" site:google.com/maps`
- Naver: Search `"[Korean Name]" site:map.naver.com`, then `"[Korean Name]" 네이버 지도 [district]`
- Kakao: Search `"[Korean Name]" site:place.map.kakao.com`
4. **Follow `18-seo-local-audit/code/CLAUDE.md` workflow** for the full audit (Steps 2-7)
5. **Important language**: Distinguish **"not discoverable via web search"** from **"does not exist."** GBP and Naver Map are JS-rendered; WebFetch cannot extract their listing data. Absence in search results does not confirm absence of the listing.
6. **Korean market priorities**: GBP and Naver Smart Place are both Critical. Kakao Map is High. US-centric directories (Yelp, Yellow Pages) are Low priority for Korean businesses.
## Health Score (Weighted 0-100)
| Category | Weight |