Files
Andrew Yim 6ac547e78f
Some checks failed
Verify Skills / verify-skills (push) Has been cancelled
refactor(skills): clean skill names (strip NN- prefix from name:) — convention change
Adopt: directory keeps its NN- ordering prefix; skill `name:` is the clean form
without it (dir 16-seo-schema-validator → name: seo-schema-validator). Nicer to
invoke, matches the original desktop/SKILL.md names, still globally unique.

- 71 root SKILL.md: name: NN-foo → name: foo (flat skills + reference-curator suite).
  Plugins (mac-optimizer/multi-agent-guide/dintel-bootstrap) already clean; 95 already clean.
- scripts/migrate_skill_root.py: derive name = dirname minus NN- prefix (skill_name()).
- CLAUDE.md + SKILL-MIGRATION-GUIDE.md: document the dir-prefix / clean-name convention.

verify_skills.py: 0 name collisions across all renamed skills. (The ~/.claude/skills
symlinks were re-pointed to the clean names separately — filesystem only.)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-28 02:11:01 +09:00

7.3 KiB

name, description
name description
seo-serp-analysis SERP analysis for Google and Naver search results. Triggers: SERP analysis, search results, featured snippet, SERP features, Naver SERP, 검색결과 분석, SERP 분석.

SEO SERP Analysis

Purpose

Analyze search engine result page composition for Google and Naver. Detect SERP features (featured snippets, PAA, knowledge panels, local pack, video, ads), map competitor positions, score SERP feature opportunities, and analyze Naver section distribution.

Core Capabilities

  1. Google SERP Feature Detection - Identify featured snippets, PAA, knowledge panels, local pack, video carousel, ads, image pack, site links, shopping
  2. Competitor Position Mapping - Extract domains, positions, content types for top organic results
  3. Opportunity Scoring - Score SERP opportunity (0-100) based on feature landscape and competition
  4. Search Intent Validation - Infer intent (informational, navigational, commercial, transactional, local) from SERP composition
  5. Naver SERP Composition - Detect sections (blog, cafe, knowledge iN, Smart Store, brand zone, books, shortform, influencer), map section priority, analyze brand zone presence

Data Source Selection

This skill can pull SERP data from multiple backends. Pick one per task — don't fan out by default (cost + rate limits).

Backend Best for Notes
Semrush MCP (mcp__semrush__*) Default Google SERP overview, organic competitor positions, SERP-feature presence overview_research / organic_researchget_report_schemaexecute_report. database="us" default; "kr" for Korean.
Ahrefs MCP (mcp__ahrefs__*) When user wants Ahrefs SERP overview or already has an Ahrefs project serp-overview exposes top organic, SERP features, paid layout per keyword.
OurSEO MCP (mcp__ourseo__check_serp) Live position spot-check for a single keyword/domain pair Cheap; good for rank-only confirmations without full SERP pull.
OurSEO CLI (our serp *) DataForSEO under the hood — full SERP JSON with all features, Korean-aware via --location 2410 Claude Code only (Bash). Commands: our serp live, our serp competitors, our serp ranked-keywords, our serp domain-overview.
OurSEO CLI — Naver (our research naver serp) Naver SERP composition (blog, cafe, knowledge iN, Smart Store, brand zone, shortform, influencer) Naver-only; required for Korean-market analysis since Semrush/Ahrefs don't cover Naver SERP.
DataForSEO MCP (mcp__dfs-mcp__*) Fallback when our CLI isn't running serp_organic_live_advanced, dataforseo_labs_google_serp_competitors.

How to pick

  1. User named a backend explicitly → use it.
  2. User preference memory — read feedback_seo_tool_preferences.md; honor the task-type default.
  3. Task needs a capability only one backend has (Naver SERP → our research naver serp; full SERP JSON → DataForSEO / OurSEO CLI) → use that backend.
  4. Default: Semrush MCP for Google SERP overview; our research naver serp for Naver.
  5. Still ambiguous + non-trivial → ask once via AskUserQuestion.

Backend call patterns

Semrush MCP (default Google):

mcp__semrush__overview_research(query="<keyword>", database="us")
mcp__semrush__get_report_schema(report_id="...")
mcp__semrush__execute_report(report_id="...", params={...})

OurSEO CLI — DataForSEO (full Google SERP JSON):

our serp live "<keyword>" --location 2410 --language ko
our serp competitors <domain> --location 2410
our serp ranked-keywords <domain> --location 2410 --limit 50
our serp domain-overview <domain> --location 2410

OurSEO CLI — Naver SERP (Korean market):

our research naver serp "<keyword>"
our research naver serp "<keyword>" --domain <target.com>

OurSEO MCP (single-keyword spot-check):

mcp__ourseo__check_serp(keyword="<keyword>", domain="<target.com>", country="kr")

Ahrefs MCP:

mcp__ahrefs__serp-overview(keyword="<keyword>", country="us")

Common parameters

Concept Semrush Ahrefs DataForSEO / our CLI
Korean market database="kr" country="kr" --location 2410
US market database="us" country="us" --location 2840
Japan database="jp" country="jp" --location 2392
Language (database-bound) (country-bound) --language ko/en/ja

Always record the chosen data source in the report Overview so future analyses can compare like-for-like.

Workflow

1. Google SERP Analysis

  1. Fetch SERP via our serp live "<keyword>" --location 2410 --language ko --format json
  2. Parse SERP features from response (featured_snippet, people_also_ask, local_pack, etc.)
  3. Map competitor positions from organic_results (domain, URL, title, position)
  4. Classify content type for each result (blog, product, service, news, video)
  5. Calculate opportunity score (0-100) based on feature landscape
  6. Validate search intent from SERP composition
  7. Get competitor domain overview via our serp domain-overview <competitor> --location 2410

2. Naver SERP Analysis

  1. Fetch Naver search page for the target keyword
  2. Detect SERP sections (blog, cafe, knowledge iN, Smart Store, brand zone, news, encyclopedia, books, shortform, influencer)
  3. Map section priority (above-fold order)
  4. Check brand zone presence and extract brand name
  5. Count items per section
  6. Identify dominant content section

3. Report Generation

  1. Compile results into structured JSON
  2. Generate Korean-language report
  3. Save to Notion SEO Audit Log database

Output Format

{
  "keyword": "치과 임플란트",
  "country": "kr",
  "serp_features": {
    "featured_snippet": true,
    "people_also_ask": true,
    "local_pack": true,
    "knowledge_panel": false,
    "video_carousel": false,
    "ads_top": 3,
    "ads_bottom": 2
  },
  "competitors": [
    {
      "position": 1,
      "url": "https://example.com/page",
      "domain": "example.com",
      "title": "...",
      "content_type": "service_page"
    }
  ],
  "opportunity_score": 72,
  "intent_signals": "commercial",
  "timestamp": "2025-01-01T00:00:00"
}

Common SERP Features

Feature Impact Opportunity
Featured Snippet High visibility above organic Optimize content format for snippet capture
People Also Ask Related question visibility Create FAQ content targeting PAA
Local Pack Dominates local intent SERPs Optimize Google Business Profile
Knowledge Panel Reduces organic CTR Focus on brand queries and schema
Video Carousel Visual SERP real estate Create video content for keyword
Shopping Transactional intent signal Product feed optimization

Limitations

  • SERP data may have a delay depending on data source (not real-time)
  • Naver SERP HTML structure changes periodically
  • Brand zone detection depends on HTML class patterns
  • Cannot detect personalized SERP results

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, Priority, Found Date, Audit ID
  • Language: Korean with English technical terms
  • Audit ID Format: SERP-YYYYMMDD-NNN