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:
@@ -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 |
|
||||
|
||||
@@ -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 |
|
||||
|
||||
Reference in New Issue
Block a user