Perform keyword research and SERP analysis using DataForSEO MCP tools. Analyzes search volume, difficulty, intent, trends, and competitor gaps.
Perform comprehensive keyword research using DataForSEO MCP tools. Outputs a structured keyword data file for use by seo-outline and seo-write skills.
Read ../../references/dataforseo-workflows.md (relative to this skill's base directory) for exact tool parameters and sequences.
docs/seo/brand-voice.md for niche contextdocs/seo/topical-clusters.md (if exists) to understand pillar context, related posts, and strategic roledocs/seo/<slug>/ or the skill infers it from the seed keywordAll per-article files live in docs/seo/<slug>/. If the user provides a slug or article directory, use it. Otherwise, derive from the seed keyword (lowercase, hyphenated, 3-5 words). If a prompt.md already exists in the directory (from /seo-research), that confirms the correct directory.
Use keyword_suggestions AND keyword_ideas with the seed keyword(s).
Use search_intent on the merged keyword list (max 100).
Filter rules:
informational, commercial_investigationtransactional (may be better as product/landing page, not blog)navigational (skip for blog content)Use bulk_keyword_difficulty on filtered keywords.
Categorize and advise:
| KD Range | Label | Guidance |
|---|---|---|
| 0-30 | Easy | Good target for any domain |
| 31-50 | Medium | Target for domains with some authority |
| 51-70 | Hard | Need strong backlink strategy |
| 71+ | Very hard | Skip unless domain has high DA; suggest alternatives |
If primary keyword is KD > 70, proactively suggest lower-difficulty alternatives from the expanded list.
Use keyword_overview on the top 20 candidates.
Extract: search_volume, cpc, competition_level, clickstream data.
Reject if:
Use dfs_trends_explore for the primary keyword and top 3 secondaries.
Use serp_organic_live_advanced for the primary keyword.
For each of the top 5 results, use on_page_content_parsing to extract:
Use backlinks_summary for each top 5 URL to get referring domain count.
If brand-voice.md lists competitors, use domain_intersection to find keywords they rank for that you don't.
Also use related_keywords and serp_competitors to identify additional opportunities.
Use relevant_pages to check if your domain already has a page that could rank (update vs. create new).
Write results to docs/seo/<slug>/keyword-data.md:
# Keyword Research: {{Primary Keyword}}
**Date**: {{YYYY-MM-DD}}
**Market**: {{US/UK/etc}} | **Seed**: {{original seed keyword}}
## Primary Keyword
| Metric | Value |
| ------------------ | ----------------------------------- |
| Keyword | {{keyword}} |
| Search Volume | {{monthly}} |
| Keyword Difficulty | {{KD score}} ({{Easy/Medium/Hard}}) |
| CPC | ${{value}} |
| Intent | {{informational/commercial}} |
| Trend | {{Rising/Stable/Declining}} |
**Rationale**: {{Why this keyword was selected as primary}}
## Secondary Keywords
Map to planned H2 headings:
| Keyword | Volume | KD | Intent | Target H2 |
| ------- | ------- | ------ | ---------- | ----------- |
| {{kw1}} | {{vol}} | {{kd}} | {{intent}} | {{heading}} |
| ... | | | | |
## LSI / Related Terms
For natural distribution in body text:
| Term | Relevance |
| --------- | --------------- |
| {{term1}} | {{High/Medium}} |
| ... | |
## SERP Features
| Feature | Present? |
| ---------------- | ---------- |
| Featured Snippet | {{Yes/No}} |
| People Also Ask | {{Yes/No}} |
| Video Results | {{Yes/No}} |
| Image Pack | {{Yes/No}} |
| Knowledge Panel | {{Yes/No}} |
## Top 5 Competitor Analysis
| # | URL | Word Count | H2 Count | Referring Domains |
| --- | ------- | ---------- | -------- | ----------------- |
| 1 | {{url}} | {{wc}} | {{h2s}} | {{rd}} |
| ... | | | | |
### Common Heading Structure
{{List the H2 headings that appear across multiple top results}}
## Content Gap Opportunities
{{Topics/angles that top results miss or cover poorly}}
## Backlink Benchmark
- Median referring domains (top 5): {{N}}
- Minimum to compete: {{estimated}}
## Recommendations
- **Content type**: {{Comprehensive guide / How-to / List post / Comparison}}
- **Target word count**: {{range based on competitor analysis}}
- **Difficulty assessment**: {{Achievable/Challenging/Long-term play}}
- **Featured snippet opportunity**: {{Yes/No — format to target}}
Present these alerts prominently: