Skip to content
All Skills

SEO Blog Post Writer

Researches keywords and competitor content via Brave Search, generates SEO-optimized blog posts with proper heading structure, meta descriptions, and internal linking suggestions. Prerequisites: brave-search MCP, python3.

Content Creation|v1|Updated 5/18/2026
MCP get_skill({ skillId: "seo-blog-post-writer-642405e6" })

Use this skill with your agent

Create a free account and connect via MCP

Get Started Free
# SEO Blog Post Writer

Research keywords, analyze competitor content, and generate SEO-optimized blog posts with proper structure and meta tags.

## When to Use

- "Write a blog post about {topic}"
- "Create an SEO-optimized article on {topic}"
- "Research and write a 2000-word post about {topic}"

## Requirements

- **Brave Search MCP** for keyword research and competitor analysis
- **python3** for word count and readability scoring

## Workflow

### Step 1 — Topic & Audience

- **Topic/keyword** (primary keyword to target)
- **Target audience** (developers, marketers, beginners, etc.)
- **Tone** (professional, conversational, authoritative, friendly)
- **Word count target** (800, 1500, 2500)
- **CTA** (what should the reader do after reading?)

### Step 2 — Keyword & Competitor Research

```
brave_web_search: "{PRIMARY_KEYWORD} {YEAR}"
brave_web_search: "{PRIMARY_KEYWORD} guide tutorial"
brave_web_search: "{PRIMARY_KEYWORD} tips best practices"
brave_web_search: "related:{PRIMARY_KEYWORD} people also ask"
```

Extract from top results:
- Common headings and structure
- Sub-topics covered
- Average word count
- Related keywords / "People Also Ask" questions
- Content gaps (what top results don't cover)

### Step 3 — Build Outline

```markdown
## Article Outline

**Title (H1):** {60 chars max — includes primary keyword}
**Meta description:** {155 chars — includes keyword + CTA}
**Primary keyword:** {keyword}
**Secondary keywords:** {kw1}, {kw2}, {kw3}

### Structure
1. **Introduction** (~150 words) — Hook + what reader learns
2. **H2: {Section}** (~300 words) — {Key point}
   - H3: {Subsection}
   - H3: {Subsection}
3. **H2: {Section}** (~400 words) — {Key point}
4. **H2: {Section}** (~300 words) — {Key point}
5. **H2: FAQ** — 3-4 "People Also Ask" questions
6. **Conclusion + CTA** (~150 words)
```

Present outline for approval before writing.

### Step 4 — Write the Post

SEO rules while writing:
- Primary keyword in: title, first 100 words, one H2, meta description
- Secondary keywords naturally distributed
- Short paragraphs (2-4 sentences)
- Bullet lists and numbered lists for scannability
- One image suggestion per major section

### Step 5 — Readability Check

```bash
python3 << 'PYEOF'
text = """{ARTICLE_TEXT}"""

words = text.split()
sentences = text.count('.') + text.count('!') + text.count('?')
paragraphs = text.count('\n\n') + 1

avg_sentence_len = len(words) / max(sentences, 1)

# Flesch-Kincaid approximation
fk_grade = 0.39 * avg_sentence_len + 11.8 * (sum(1 for w in words if len(w) > 6) / max(len(words),1)) - 15.59

print(f"Word count: {len(words)}")
print(f"Sentences: {sentences}")
print(f"Avg sentence length: {avg_sentence_len:.1f} words")
print(f"Readability: ~Grade {max(fk_grade, 1):.0f} (target: 6-8)")
print(f"Paragraphs: {paragraphs}")

h2_count = text.count('## ')
print(f"H2 headings: {h2_count} (target: {len(words)//300}-{len(words)//200})")
PYEOF
```

### Step 6 — Save Article

```bash
mkdir -p outputs/content
cat > "outputs/content/blog-{SLUG}-{DATE}.md" << 'EOF'
---
title: "{TITLE}"
meta_description: "{META_DESCRIPTION}"
keywords: ["{KW1}", "{KW2}", "{KW3}"]
author: "{AUTHOR}"
date: "{DATE}"
---

{ARTICLE}
EOF
```

## Important Rules

- Research first, write second — content must be accurate and current
- Don't keyword-stuff — use primary keyword naturally (1-2% density)
- Every claim should be supportable by search results
- Include original insights, not just rephrased competitor content
- Present outline before writing — don't waste effort on wrong direction

## Example Prompts

- "Write an SEO blog post about 'Kubernetes vs Docker Swarm'"
- "Create a 2000-word guide on home composting for beginners"
- "Write a listicle: 10 best productivity tools for remote teams"
#content#blog#SEO#brave-searchbrave-searchpython3

Explore Other Categories

Skills from other categories with shared topics

Ab Test Setup

Ab Test Setup linked from Corey Haines marketing skills, with the upstream skill instructions available on GitHub.

Business, Marketing & Sales#work-life#productivity

Ab Testing

When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program. Also use when the user mentions "A/B test," "split test," "experiment," "test this change," "variant copy," "multivariate test," "hypothesis," "should I test this," "which version is better," "test two versions," "statistical significance," "how long should I run this test," "growth experiments," "experiment velocity," "experiment backlog," "ICE score," "experimentation program," or "experiment playbook." Use this whenever someone is comparing two approaches and wants to measure which performs better, or when they want to build a systematic experimentation practice. For tracking implementation, see analytics. For page-level conversion optimization, see cro.

Business, Marketing & Sales#work-life#productivity

Ad Creative

When the user wants to generate, iterate, or scale ad creative — headlines, descriptions, primary text, or full ad variations — for any paid advertising platform. Also use when the user mentions 'ad copy variations,' 'ad creative,' 'generate headlines,' 'RSA headlines,' 'bulk ad copy,' 'ad iterations,' 'creative testing,' 'ad performance optimization,' 'write me some ads,' 'Facebook ad copy,' 'Google ad headlines,' 'LinkedIn ad text,' or 'I need more ad variations.' Use this whenever someone needs to produce ad copy at scale or iterate on existing ads. For campaign strategy and targeting, see ads. For landing page copy, see copywriting.

Business, Marketing & Sales#work-life#productivity