Files
our-claude-skills/custom-skills/23-seo-content-strategy/SKILL.md
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

8.1 KiB
Raw Blame History

name, description
name description
seo-content-strategy Content strategy and planning for SEO. Triggers: content audit, content strategy, content gap, topic clusters, content brief, editorial calendar, content decay, 콘텐츠 전략, 콘텐츠 감사.

SEO Content Strategy

Purpose

Audit existing content performance, identify topic gaps vs competitors, map topic clusters, detect content decay, and generate SEO content briefs. Supports Korean content patterns (Naver Blog format, 후기/review content, 추천 listicles).

Core Capabilities

  1. Content Audit - Inventory, performance scoring, decay detection
  2. Content Gap Analysis - Topic gaps vs competitors, cluster mapping
  3. Content Brief Generation - Outlines, keywords, word count targets
  4. Editorial Calendar - Prioritized content creation schedule
  5. Korean Content Patterns - Naver Blog style, 후기, 추천 format analysis

Data Source Selection

This skill can pull content + keyword + traffic data from multiple backends. Pick one backend per data type per task — content strategy spans multiple data classes, so you'll often combine 2 backends (e.g., one for keyword discovery + one for on-page inventory).

Backend Best for Notes
Semrush MCP (mcp__semrush__*) Default for organic content discovery, keyword expansion, top pages by traffic organic_research, keyword_research, overview_researchget_report_schemaexecute_report.
Ahrefs MCP (mcp__ahrefs__*) Top-pages-by-traffic for competitor sites, content-decay candidates, Korean platform refdomains site-explorer-top-pages, site-explorer-pages-history, keywords-explorer-*, gsc-pages (first-party).
OurSEO MCP (mcp__ourseo__*) On-page content inventory — what the target site itself publishes crawl_website for content URLs + titles + H1s; find_similar_pages for topic clustering. Pair with a keyword backend for performance data.
OurSEO CLI (our keywords *, our serp *) DataForSEO under the hood for Korean batch keyword + competitor pulls Claude Code only (Bash). Best for --location 2410 Korean content gap work.
GSC (via our research search-console or Ahrefs gsc-*) Cannibalization detection — query × page where multiple URLs split impressions; first-party content performance Only first-party source — required for accurate decay detection on the target site.
DataForSEO MCP (mcp__dfs-mcp__*) Fallback when our CLI isn't running Same data as our keywords * / our serp *.

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 is content decay / cannibalization on the target site → use GSC (first-party impression data is required).
  4. Task is on-page content inventory → use OurSEO crawl_website.
  5. Default for keyword + competitor pulls: Semrush MCP (English markets); OurSEO CLI (--location 2410) for Korean markets.
  6. Still ambiguous + non-trivial → ask once via AskUserQuestion.

Backend call patterns

Semrush MCP (default keyword/content discovery):

mcp__semrush__organic_research(query="<domain>", database="us")
mcp__semrush__keyword_research(query="<seed>", database="us")
mcp__semrush__get_report_schema(report_id="...")
mcp__semrush__execute_report(report_id="...", params={...})

Ahrefs MCP (top pages by traffic, decay candidates):

mcp__ahrefs__site-explorer-top-pages(target="<domain>", country="us", limit=100)
mcp__ahrefs__site-explorer-pages-history(target="<domain>", history="monthly")
mcp__ahrefs__keywords-explorer-overview(keyword="<seed>", country="us")

OurSEO MCP (on-page content inventory):

mcp__ourseo__crawl_website(url="<target>", max_pages=200)
mcp__ourseo__find_similar_pages(crawl_path="<path/to/crawl.json>", query="<topic>")

OurSEO CLI (Korean batch):

our keywords ideas "<seed>" --location 2410 --limit 50
our keywords for-site <competitor.com> --location 2410 --limit 100
our serp ranked-keywords <domain> --location 2410 --limit 100

GSC (cannibalization + decay):

our research search-console combined --site sc-domain:<domain> --days 90
# Group by query; flag queries where multiple pages share impressions.

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

Always record the chosen data source(s) in the report Overview so future audits can compare like-for-like.

Workflow

1. Content Audit

  1. Crawl sitemap to discover all content URLs
  2. Fetch top pages data via our-seo-agent CLI, pre-fetched JSON, or WebSearch
  3. Classify content types (blog, product, service, landing, resource)
  4. Score each page performance (0-100 composite)
  5. Detect decaying content (traffic decline patterns)
  6. Analyze freshness distribution (fresh/aging/stale)
  7. Identify Korean content patterns (후기, 추천, 방법 formats)
  8. Generate recommendations

2. Content Gap Analysis

  1. Gather target site keywords via our-seo-agent CLI or pre-fetched data
  2. Gather competitor top pages and keywords
  3. Identify topics present in competitors but missing from target
  4. Score gaps by priority (traffic potential + competition coverage)
  5. Build topic clusters using TF-IDF + hierarchical clustering
  6. Generate editorial calendar with priority and dates
  7. Detect Korean market content opportunities

3. Content Brief Generation

  1. Analyze top 5-10 ranking pages for target keyword
  2. Extract headings, word counts, content features (FAQ, images, video)
  3. Build recommended H2/H3 outline from competitor patterns
  4. Suggest primary, secondary, and LSI keywords
  5. Calculate target word count (avg of top 5 +/- 20%)
  6. Find internal linking opportunities on the target site
  7. Detect search intent (informational, commercial, transactional, navigational)
  8. Add Korean format recommendations based on intent

Output Format

## Content Audit: [domain]

### Content Inventory
- Total pages: [count]
- By type: blog [n], product [n], service [n], other [n]
- Average performance score: [score]/100

### Top Performers
1. [score] [url] (traffic: [n])
...

### Decaying Content
1. [decay rate] [url] (traffic: [n])
...

### Content Gaps vs Competitors
1. [priority] [topic] (est. traffic: [n], difficulty: [level])
...

### Topic Clusters
1. **[Pillar Topic]** ([n] subtopics)
   - [subtopic 1]
   - [subtopic 2]

### Editorial Calendar
- [date] [topic] ([type], [word count], priority: [level])
...

### Recommendations
1. [Priority actions]

Common Issues

Issue Impact Fix
No blog content High Build blog content strategy with topic clusters
Content decay (traffic loss) High Refresh and update declining pages
Missing competitor topics Medium Create content for high-priority gaps
No 후기/review content Medium Add Korean review-style content for conversions
Stale content (>12 months) Medium Update or consolidate outdated pages
No topic clusters Medium Organize content into pillar/cluster structure
Missing FAQ sections Low Add FAQ schema for featured snippet opportunities

Limitations

  • our-seo-agent CLI or pre-fetched JSON required for traffic and keyword data
  • Competitor analysis limited to publicly available content
  • Content decay detection uses heuristic without historical data in standalone mode
  • Topic clustering requires minimum 3 topics per cluster
  • Word count analysis requires accessible competitor pages (no JS rendering)

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: CONTENT-YYYYMMDD-NNN