About
This skill performs comprehensive keyword research by identifying search terms, classifying their intent, and clustering them into topical groups for content planning. It helps developers prioritize SEO opportunities when starting new sites, planning content calendars, or building topical strategies. The skill is stack-agnostic and works with any keyword data source.
Quick Install
Claude Code
Recommendednpx skills add rampstackco/claude-skills -a claude-code/plugin add https://github.com/rampstackco/claude-skillsgit clone https://github.com/rampstackco/claude-skills.git ~/.claude/skills/seo-keywordCopy and paste this command in Claude Code to install this skill
Documentation
Keyword Research
Find the queries worth ranking for, classify them by intent, cluster them into topics, and prioritize what to produce. Stack-agnostic. Tool-agnostic (works with any keyword tool).
When to use
- Starting a new site or content section
- Planning a content calendar
- Looking for ranking opportunities on an existing site
- Understanding search intent before writing
- Building topic clusters for internal linking
- Identifying content gaps vs competitors
When NOT to use
- Optimizing a single page where the target query is already known (use
seo-onpage) - Comparing your site to a competitor across many dimensions (use
seo-competitor) - Auditing existing content for performance (use
seo-content-audit)
Required inputs
- The site or topic area
- The target audience and what they need
- A keyword tool (Ahrefs, Semrush, Moz, Google Keyword Planner, or similar) OR access to search console for an existing site
- Optional: 3 to 5 known competitors to seed the research
If no tool is available, the skill still works using SERP inspection and search console data alone, but the volume estimates will be rough.
The framework: 4 stages
Stage 1: Discover
Cast a wide net. Sources:
- Seed terms from the brief or the user's vocabulary
- Competitor keywords (any keyword tool will export these)
- Search console queries for an existing site (find the page-1 and page-2 queries)
- Related searches and "People also ask" in actual SERPs
- Customer language (support tickets, sales calls, reviews)
- Forum and community language (Reddit, niche forums, Stack Overflow)
Goal: 200 to 500 candidate keywords for a typical content sprint. More if planning a year of content.
Stage 2: Classify by intent
Every keyword maps to one of four intents. Get this right or the rest is noise.
| Intent | Signal | Page type that wins |
|---|---|---|
| Informational | "how to," "what is," "why," "best way to" | Article, guide, tutorial |
| Navigational | brand or product name + modifier | Brand homepage, product page |
| Commercial | "best," "review," "vs," "comparison," "alternatives" | Listicle, comparison, review |
| Transactional | "buy," "price," "deal," "near me," "for sale" | Product page, category page |
A keyword tool's volume tells you the demand. The SERP tells you the intent. When in doubt, look at what's actually ranking. If page 1 is articles, the query is informational. If page 1 is product pages, it's transactional.
Hybrid intents exist. "Best running shoes" is commercial-investigational. "Best running shoes under $100" is the same intent narrowed by a budget filter. Treat hybrids as their dominant intent and note the modifier.
Stage 3: Cluster
Group keywords that should target the same page (or topic cluster).
Two clustering approaches:
Approach A: SERP overlap. If two keywords share at least 3 of the top 10 results, they target the same page. This is mechanical and reliable.
Approach B: Topical relevance. Group keywords by the underlying topic, not just word overlap. "How to start a podcast" and "podcast equipment for beginners" are the same topic, different facets.
Use both. A typical cluster has:
- 1 primary keyword (highest volume, broadest intent)
- 5 to 15 secondary keywords (variations and long-tails)
- 1 page that targets them all
Stage 4: Prioritize
For each cluster, score on three dimensions:
Opportunity (1 to 5):
- Volume (raw search demand)
- Click potential (some queries answer themselves in the SERP, lowering CTR)
- Conversion potential (does this query attract buyers or browsers?)
Difficulty (1 to 5):
- Domain authority of top results
- Backlink count of top results
- Content depth and freshness of top results
- Whether the SERP has features (featured snippets, AI overview, video carousel) that compete with organic
Strategic fit (1 to 5):
- Does it serve our audience?
- Does it support our positioning?
- Does it link to commercial pages naturally?
Priority score = Opportunity + Strategic fit - Difficulty.
Rank the clusters. Top 20 percent get produced first.
Workflow
- Define the scope. What site, what topic area, what audience.
- Run discovery. Pull seeds, competitor exports, search console data, SERP inspections. Aim for 200 to 500 candidates.
- Deduplicate and clean. Remove obvious junk, brand misspellings, irrelevant terms.
- Classify by intent. Mark each keyword.
- Cluster. Group into topical clusters. Aim for 20 to 50 clusters.
- Score each cluster on opportunity, difficulty, and strategic fit.
- Prioritize. Rank by composite score. Identify the top 10 to 20 clusters to produce first.
- Output. Use the template in
references/keyword-research-template.md.
Failure patterns
- Chasing volume without intent. A 10,000-volume informational keyword does not drive purchases. Match query to commercial outcome.
- Targeting impossibly competitive keywords. New sites cannot rank for "credit cards." Find the underserved long-tail variant.
- Ignoring search console. Existing sites already rank for queries they did not target. These are the easiest wins.
- Treating clusters as one-keyword-per-page. A page can target 10 to 30 related keywords. One-keyword-per-page leads to thin, cannibalized content.
- Ignoring SERP features. A query with a featured snippet, AI overview, and a video carousel above the organic results may not be worth pursuing.
- Static keyword research. Search demand shifts. Refresh the research at least annually for evergreen sites, quarterly for fast-moving topics.
Output format
Default output: a spreadsheet (CSV or sheet) with one row per keyword and one row per cluster, plus a markdown summary with the top 10 to 20 clusters detailed.
Recommended columns for the keyword sheet:
| Column | Source |
|---|---|
| Keyword | Discovery |
| Volume | Tool |
| Difficulty | Tool |
| Intent | Manual classification |
| SERP features | Manual or tool |
| Cluster | Stage 3 |
| Cluster role (primary/secondary) | Stage 3 |
| Opportunity score | Stage 4 |
| Strategic fit | Stage 4 |
| Priority | Composite |
| Notes | Free text |
If required data is unavailable
This skill's output depends on data, measurements, or tool results it cannot generate on its own. When a required input, tool, or data source is unavailable or unverifiable, the sanctioned output is the deliverable with the gap stated: what was needed, what was actually obtained or verified, and which parts of the output are affected. Fabricating, estimating, or interpolating a required number to complete the deliverable is never sanctioned. A stated gap is a complete answer.
Reference files
references/keyword-research-template.md- Spreadsheet column definitions and a markdown summary template.references/intent-classification-guide.md- Detailed examples of each of the four intent categories.
GitHub Repository
Frequently asked questions
What is the seo-keyword skill?
seo-keyword is a Claude Skill by rampstackco. Skills package instructions and resources that Claude loads on demand, so Claude can perform seo-keyword-related tasks without extra prompting.
How do I install seo-keyword?
Use the install commands on this page: add seo-keyword to Claude Code as a plugin, or clone its repository into your skills directory, then restart Claude so it picks up the skill.
What category does seo-keyword belong to?
seo-keyword is in the Meta category.
Is seo-keyword free to use?
Yes. seo-keyword is listed on AIMCP and free to install.
Related Skills
This skill provides a production-tested setup for Content Collections, a TypeScript-first tool that transforms Markdown/MDX files into type-safe data collections with Zod validation. Use it when building blogs, documentation sites, or content-heavy Vite + React applications to ensure type safety and automatic content validation. It covers everything from Vite plugin configuration and MDX compilation to deployment optimization and schema validation.
This skill enables developers to build applications with the Polymarket prediction markets platform, including API integration for trading and market data. It also provides real-time data streaming via WebSocket to monitor live trades and market activity. Use it for implementing trading strategies or creating tools that process live market updates.
This skill helps developers create OpenCode plugins that hook into 25+ event types like commands, files, and LSP operations. It provides the plugin structure, event API specifications, and implementation patterns for JavaScript/TypeScript modules. Use it when you need to intercept, monitor, or extend the OpenCode AI assistant's lifecycle with custom event-driven logic.
SGLang is a high-performance LLM serving framework that specializes in fast, structured generation for JSON, regex, and agentic workflows using its RadixAttention prefix caching. It delivers significantly faster inference, especially for tasks with repeated prefixes, making it ideal for complex, structured outputs and multi-turn conversations. Choose SGLang over alternatives like vLLM when you need constrained decoding or are building applications with extensive prefix sharing.
