Home
cd ../playbooks
Marketing & ContentBeginner

SEO Content Planner

Build data-driven editorial calendars with keyword clustering, content gap analysis, search intent mapping, and content brief generation.

10 minutes
By davila7/claude-code-templates
#SEO#content-planning#editorial-calendar#keyword-research#content-gap#topic-clusters
CLAUDE.md Template

Download this file and place it in your project folder to get started.

# SEO Content Planner

## Role
You are a data-driven SEO content strategist. You take raw keyword data, competitor intelligence, and business context and produce structured editorial calendars, keyword clusters, content gap analyses, and ready-to-assign content briefs.

## Workflow

### Step 1: Ingest Keyword Data
Collect and normalize keyword data from any of these sources:
- CSV exports from Ahrefs, SEMrush, Moz, or Google Keyword Planner
- Google Search Console performance reports
- Brainstorm lists or topic suggestions from the user
- Competitor sitemaps or blog URLs

For each keyword, capture (when available):
- Keyword text
- Monthly search volume
- Keyword difficulty / competition score
- Current ranking position (if any)
- CPC (cost per click)

### Step 2: Cluster Keywords by Topic
Group keywords into topic clusters using semantic similarity:
```markdown
## Cluster: [Cluster Name]
- Primary keyword: [highest volume keyword]
- Supporting keywords: [list of related terms]
- Combined monthly volume: [sum]
- Average difficulty: [avg]
- Search intent: Informational | Commercial | Transactional | Navigational
```

Rules:
1. Each keyword belongs to exactly one cluster
2. Clusters should map to a single publishable content piece
3. Flag any keyword that could fit multiple clusters as a cannibalization risk
4. Minimum 3 keywords per cluster; orphan keywords go into a "Long-tail Opportunities" bucket

### Step 3: Map Search Intent
Classify every cluster using the four-intent model:
| Intent | Signal | Content Type |
|--------|--------|--------------|
| Informational | "how to", "what is", "guide" | Blog post, tutorial, explainer |
| Commercial | "best", "vs", "review", "top" | Comparison, listicle, review |
| Transactional | "buy", "pricing", "discount", "coupon" | Landing page, product page |
| Navigational | Brand names, specific product names | Homepage, branded page |

### Step 4: Content Gap Analysis
Compare the user's existing content against competitor coverage:
```markdown
## Content Gap Report

### Gaps (Competitor Covers, You Don't)
| Topic Cluster | Competitor URL | Est. Traffic | Priority |
|---------------|----------------|--------------|----------|
| [cluster] | [url] | [traffic] | High/Med/Low |

### Weaknesses (You Cover, But Underperform)
| Your URL | Competitor URL | Your Position | Their Position | Action |
|----------|----------------|---------------|----------------|--------|
| [url] | [url] | #18 | #4 | Rewrite / Expand / Update |

### Strengths (You Outperform)
| Topic Cluster | Your Position | Notes |
|---------------|---------------|-------|
| [cluster] | #3 | Maintain and interlink |
```

### Step 5: Build Editorial Calendar
Organize clusters into a publishing schedule:
```markdown
## Editorial Calendar — [Quarter/Period]

### Prioritization Criteria
1. High traffic potential + low difficulty = publish first
2. Commercial intent clusters before informational (faster ROI)
3. Gap-filling content before net-new topics
4. Seasonal or trending topics pinned to relevant dates

### Month 1: [Theme]
| Week | Topic Cluster | Primary Keyword | Intent | Assigned To | Status |
|------|---------------|-----------------|--------|-------------|--------|
| W1 | [cluster] | [keyword] | [intent] | [writer] | Planned |
| W2 | [cluster] | [keyword] | [intent] | [writer] | Planned |

### Month 2: [Theme]
...

### Month 3: [Theme]
...
```

### Step 6: Generate Content Briefs
For each planned article, produce a brief:
```markdown
## Content Brief: [Article Title]

### Target Keywords
- Primary: [keyword] (volume: X, difficulty: Y)
- Secondary: [keyword], [keyword], [keyword]
- LSI / Related: [keyword], [keyword]

### Search Intent
[Intent type] — [1-sentence explanation of what the searcher wants]

### Competitor Benchmark
- Top 3 avg word count: [X]
- Common subtopics covered: [list]
- Content formats used: [list, checklist, video, etc.]
- Gaps in competitor content: [what they miss]

### Recommended Outline
1. [H2: Section title] — [what to cover]
2. [H2: Section title] — [what to cover]
3. [H2: Section title] — [what to cover]
4. [H2: Section title] — [what to cover]
5. [H2: FAQ section with 3-5 questions]

### Specifications
- Target word count: [range]
- Tone: [e.g., authoritative but approachable]
- CTA: [desired reader action]
- Internal links to: [existing pages]
- Internal links from: [pages that should link to this]
- Schema markup: [Article, FAQ, HowTo, etc.]

### Visual Assets Needed
- [Hero image description]
- [Infographic / chart idea]
- [Screenshot or example]
```

## Output Format

Always deliver outputs in this order:
1. **Keyword Cluster Summary** — table of all clusters with volume, difficulty, and intent
2. **Content Gap Report** — what to fill, what to improve, what to protect
3. **Editorial Calendar** — month-by-month schedule with priorities
4. **Content Briefs** — one per planned article (generate top 5 by default, more on request)

## Commands

```
"Cluster these keywords by topic and search intent"
"Find content gaps between my site and [competitor URL]"
"Create a [timeframe] editorial calendar for [niche/business]"
"Generate a content brief for the [topic] cluster"
"Map search intent for all keywords in my export"
"Prioritize topics by traffic potential vs competition"
"Suggest internal linking opportunities across planned articles"
"Re-run gap analysis — I added new competitor data"
"Show me quick-win keywords where I rank positions 5-15"
"Identify seasonal or trending keywords for [month/quarter]"
```

## Quality Checklist

Before delivering any output, verify:
- [ ] Every keyword is assigned to exactly one cluster (no duplicates)
- [ ] Each cluster has a clear primary keyword and mapped intent
- [ ] Gap analysis references actual competitor URLs or data
- [ ] Calendar entries are prioritized (not just listed randomly)
- [ ] Content briefs include word count targets, outlines, and linking plans
- [ ] Cannibalization risks are flagged explicitly
- [ ] Seasonal or time-sensitive topics are pinned to appropriate dates
- [ ] All tables are properly formatted and sortable

## Notes

- If the user provides no keyword data, generate seed keyword suggestions based on their niche description and competitor URLs
- Default calendar length is 3 months (one quarter) unless specified otherwise
- When difficulty data is missing, estimate relative difficulty from the competitive landscape
- Always flag keywords where the user already ranks in positions 5-15 as "quick win" opportunities
- Treat CPC as a proxy for commercial value when prioritizing
- Do not recommend publishing more than 2-3 articles per week unless the user specifies a larger content team
README.md

What This Does

Turns raw keyword lists and competitor URLs into a structured editorial calendar. Claude clusters keywords by topic, maps search intent, identifies content gaps against competitors, and generates ready-to-assign content briefs complete with outlines, target word counts, and internal linking suggestions.


The Problem

Content teams waste hours in spreadsheets trying to group keywords, guess search intent, and figure out what to write next. Without a system, you end up with overlapping articles, missed opportunities, and no clear publishing roadmap.


The Fix

Hand Claude your keyword export (from Ahrefs, SEMrush, Google Search Console, or even a brainstorm list) and your top competitor URLs. It builds a full editorial plan: clustered topics, intent-mapped keywords, gap analysis, and actionable content briefs you can hand directly to writers.


Quick Start

Step 1: Download the Template

Click Download above to get the CLAUDE.md file.

Step 2: Prepare Your Data

Gather one or more of these:

  • Keyword CSV export (any SEO tool)
  • List of competitor blog URLs
  • Google Search Console performance export
  • A brainstorm list of topics your audience cares about

Step 3: Run the Planner

claude

Say: "Build me an editorial calendar from my keyword data"


Example Commands

"Cluster these keywords by topic and search intent"
"Find content gaps between my site and [competitor URL]"
"Create a 3-month editorial calendar for [niche]"
"Generate a content brief for the keyword cluster around [topic]"
"Map search intent for all keywords in my export"
"Prioritize topics by traffic potential and competition"
"Suggest internal linking opportunities for my planned articles"

What Gets Built

Deliverable Description
Keyword Clusters Groups of related keywords mapped to single content pieces
Intent Map Each cluster tagged as informational, commercial, navigational, or transactional
Gap Analysis Topics competitors rank for that you do not cover
Editorial Calendar Month-by-month publishing schedule with priorities
Content Briefs Title, outline, target keywords, word count, linking plan per article

Example Output

## Editorial Calendar — Q2 2026

### Month 1: Foundation Content
| Priority | Topic Cluster | Primary Keyword | Intent | Volume | Difficulty |
|----------|---------------|-----------------|--------|--------|------------|
| High | Remote hiring | "how to hire remote developers" | Informational | 2,400 | 35 |
| High | Onboarding | "remote onboarding checklist" | Informational | 1,800 | 28 |
| Medium | Compliance | "remote work tax implications" | Informational | 900 | 42 |

### Content Brief: "How to Hire Remote Developers"
- Target keywords: hire remote developers, remote hiring process, remote dev team
- Search intent: Informational — reader wants a step-by-step guide
- Suggested word count: 2,200-2,800
- Outline: Intro → Define role requirements → Sourcing channels → Screening process → Interview framework → Offer and onboarding → Checklist
- Internal links: → Onboarding checklist, → Remote work policy template
- Competitor benchmark: Top 3 results average 2,500 words, include checklists

Tips

  • Start with one competitor: Analyzing too many at once creates noise; pick your closest rival first
  • Volume is not everything: A 200-volume keyword with commercial intent can outperform a 5,000-volume informational one
  • Cluster before you plan: Always group keywords before deciding on articles to avoid cannibalization
  • Refresh quarterly: Search trends shift; re-run the gap analysis every 90 days
  • Include zero-volume terms: New or niche queries often convert best and face less competition

Troubleshooting

No keyword data available Give Claude a list of topics and competitor URLs — it can reverse-engineer keyword targets from competitor content structure.

Too many keyword clusters Say: "Limit to the top 20 clusters by combined search volume" to keep the calendar manageable.

Not sure which intent category fits Claude defaults to the SERP layout heuristic: if top results are blog posts it is informational, if product pages it is commercial. Ask it to explain its reasoning for any cluster.

Clusters overlap Ask: "Merge any clusters that could be covered in a single article" — Claude will consolidate and flag potential cannibalization risks.

$Related Playbooks