skills/seo-content-blogging/SKILL.md
Writing informational blog posts that rank in search -- genuine technical content that serves humans AND search engines. Covers topic research, keyword mapping, content structure for featured snippets, technical blog templates (tutorial, comparison, deep-dive, case study), internal linking strategy, meta tags, schema markup, content freshness cycles, and measuring ROI. Activate on 'SEO blog', 'blog post SEO', 'content strategy', 'keyword research', 'technical blog', 'blog ranking', 'search optimization', 'content calendar', 'featured snippets', 'schema markup'. NOT for social media or launch tactics (use tech-launch-channels) or general product announcements (use product-announcement-craft).
npx skillsauth add curiositech/windags-skills seo-content-bloggingInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Writing technical blog posts that rank in search engines -- not keyword stuffing, but genuinely useful content that also happens to satisfy every signal Google cares about. This skill covers the full lifecycle from topic research to published post to long-term maintenance.
Use for:
Do NOT use for:
RESEARCH → PLAN → WRITE → OPTIMIZE → PUBLISH → DISTRIBUTE → MEASURE → REFRESH
↑ │
└──────────────────────────────────────────────────────────────────────┘
Content is not "done" when published. The refresh cycle is what separates blogs that compound from blogs that decay.
Start with problems your audience searches for, not features you want to promote.
Sources for topic ideas:
Not all keywords are equal. Understand intent before writing.
| Intent | Example | What to Write | Conversion Potential | |--------|---------|---------------|---------------------| | Informational | "what is a DAG" | Tutorial / explainer | Low (top of funnel) | | Comparative | "Airflow vs Prefect" | Comparison post | Medium | | Problem-solving | "how to parallelize AI agents" | How-to guide | Medium-High | | Tool-seeking | "best DAG orchestration tool" | Listicle / review | High | | Transactional | "windags pricing" | Landing page (not blog) | Highest |
Primary keyword: "how to orchestrate AI agents"
Search volume: ~1,200/month
Difficulty: Medium
Intent: Problem-solving
Secondary keywords:
- "AI agent orchestration framework"
- "parallel AI agent execution"
- "multi-agent workflow"
Long-tail variations:
- "how to run multiple AI agents in parallel"
- "best way to coordinate Claude agents"
- "DAG-based AI workflow tool"
People Also Ask:
- "What is an AI agent orchestrator?"
- "How do AI agents communicate with each other?"
- "Can you run multiple AI agents at the same time?"
Map each article to ONE primary keyword and 3-5 secondary keywords. Never target the same primary keyword with two different articles (that is keyword cannibalization).
<article>
<!-- Title: Primary keyword near the front, under 60 chars -->
<h1>How to Orchestrate AI Agents with DAGs</h1>
<!-- Meta description: 150-160 chars, includes primary keyword, ends with value prop -->
<meta name="description" content="Learn how to orchestrate multiple AI agents using DAG-based workflows. Step-by-step guide with code examples for parallel execution." />
<!-- Hook: Answer the query in the first 2 sentences (featured snippet bait) -->
<p>AI agent orchestration is the process of coordinating multiple
AI agents to execute complex tasks in parallel. This guide shows
you how to build DAG-based workflows that...</p>
<!-- Table of Contents: Improves UX and creates jump links -->
<nav>Table of Contents</nav>
<!-- H2 sections: Each targets a secondary keyword or PAA question -->
<h2>What Is AI Agent Orchestration?</h2>
<h2>Why Use DAGs for Multi-Agent Workflows?</h2>
<h2>Step-by-Step: Building Your First Agent DAG</h2>
<h2>Common Mistakes and How to Avoid Them</h2>
<h2>Comparing Agent Orchestration Frameworks</h2>
<!-- FAQ section: Directly answers People Also Ask questions -->
<h2>Frequently Asked Questions</h2>
</nav>
</article>
Google pulls featured snippets from content that directly answers a question in a structured format. To win snippets:
For definitions:
## What Is [Term]?
[Term] is [40-60 word definition that directly answers the question].
For "how to" queries:
## How to [Do Thing]
1. **Step one** -- [brief description]
2. **Step two** -- [brief description]
3. **Step three** -- [brief description]
For comparisons:
## [Tool A] vs [Tool B]
| Feature | Tool A | Tool B |
|---------|--------|--------|
| Speed | Fast | Faster |
| Price | Free | $29/mo |
For lists:
## Best [Category] Tools in 2026
1. **[Tool]** -- [one-line description]
2. **[Tool]** -- [one-line description]
# How to [Achieve Outcome] with [Technology]
[2-sentence summary that answers the search query directly]
## Prerequisites
- [What the reader needs before starting]
## Step 1: [First Action]
[Explanation + code block]
## Step 2: [Second Action]
[Explanation + code block]
## Step 3: [Third Action]
[Explanation + code block]
## What You Built
[Screenshot/demo of the finished result]
## Next Steps
[Links to related tutorials, advanced topics]
## FAQ
[3-5 questions from People Also Ask, answered concisely]
SEO power: Tutorials rank for long-tail "how to" queries, which have high intent and low competition.
# [Tool A] vs [Tool B]: Which Should You Use in 2026?
[1-paragraph summary with recommendation for the impatient reader]
## Quick Comparison
| Criteria | Tool A | Tool B |
|----------|--------|--------|
| Best for | ... | ... |
| Price | ... | ... |
| Learning curve | ... | ... |
## [Tool A] Overview
[What it is, who it's for, strengths and weaknesses]
## [Tool B] Overview
[Same structure]
## Head-to-Head: [Specific Criterion]
[Detailed comparison on the dimension people care about most]
## When to Choose [Tool A]
## When to Choose [Tool B]
## FAQ
SEO power: Comparison queries ("X vs Y") have very high purchase intent. A fair, detailed comparison builds trust.
Structure: Problem Space, Architecture Overview, Component Deep-Dives (with code and diagrams), What We Tried That Didn't Work (honesty earns trust), Performance Characteristics (benchmarks), Lessons Learned.
SEO power: Architecture posts earn backlinks from other developers referencing your approach. Backlinks are the strongest off-page ranking signal.
Structure: The Challenge (specific problem with numbers), The Approach (step by step), The Results (time saved, cost reduced, performance improved), Key Takeaways (3-5 transferable bullet points).
SEO power: Case studies rank for problem-specific queries and build credibility signals (E-E-A-T).
Every blog post needs these meta tags:
How to Orchestrate AI Agents with DAGs | Windagsog:title, og:description, og:image (1200x630px), og:type = "article"twitter:card = "summary_large_image", twitter:title, twitter:imageAdd JSON-LD schema to every blog post for rich results in search. Use the appropriate type:
| Content Type | Schema Type | Rich Result |
|-------------|-------------|-------------|
| Any blog post | BlogPosting | Author, date, publisher info |
| FAQ sections | FAQPage | Expandable Q&A in search results |
| Tutorials | HowTo | Step-by-step display in search |
| Lists | ItemList | Numbered items in search |
Always include: headline, description, author (Person with name/url), datePublished, dateModified, publisher (Organization with logo), and mainEntityOfPage.
Internal links pass authority between pages and help search engines understand your site structure.
Rules:
Topic Cluster Model:
[Pillar Page]
"AI Agent Orchestration"
/ | \
[Cluster] [Cluster] [Cluster]
"DAG Basics" "Parallel "Skill
Execution" Matching"
The pillar page covers the broad topic and links to each cluster page. Each cluster page links back to the pillar and to sibling clusters.
Google rewards freshness, especially for technical content where tools and APIs change.
| Content Type | Update Frequency | What to Update | |-------------|-----------------|----------------| | Tutorials | Every 6 months | Code examples, API changes, screenshots | | Comparisons | Every 3-4 months | Pricing, new features, market changes | | Deep-dives | Annually | Architecture changes, performance data | | "Best of" lists | Every 3 months | New tools, removed tools, updated rankings |
When updating: change dateModified in schema, add "Updated [date] with [changes]" at top, refresh code examples, re-share on social.
Track with Google Search Console (free, essential) and Google Analytics 4:
| Metric | Target | |--------|--------| | Organic traffic | Growing month-over-month | | Average position | Top 5 for primary keyword | | Click-through rate | Above 3% for page 1 results | | Time on page | Above 3 minutes for tutorials | | Conversions | Track with UTM params per post |
The compound effect: SEO content grows over time. A post getting 100 visits/month at launch can reach 1,000/month by month 12 as it earns backlinks and authority. This is the opposite of social media, which spikes and dies.
Google does NOT penalize content for being AI-generated. They penalize content that is low-quality, regardless of how it was created. The policy: "Content created primarily for people" ranks. "Content created to manipulate rankings" does not.
What this means in practice:
Google AI Overviews now answer many queries directly in search results. This changes the game:
People now search Google, ChatGPT, Perplexity, and Bing simultaneously. To be visible across all:
Mistake: Forcing the target keyword into every paragraph, making the content unreadable. Fix: Use the primary keyword in the title, H1, first paragraph, and meta description. Use secondary keywords and natural language everywhere else.
Mistake: Content that reads like an SEO checklist was applied to a blank page. Fix: Write for a smart developer first. Optimize for search second. If the content would not be useful without Google, it should not exist.
Mistake: Writing a product pitch for an informational query ("what is X" answered with "buy our product that does X"). Fix: Match content to intent. Informational queries get educational content. Let the reader decide to try your product after being genuinely helped.
Mistake: Never updating published content. Fix: Schedule quarterly reviews. Update outdated examples, refresh screenshots, add new information. A well-maintained post from 2024 outranks a fresh but thin post from 2026.
Mistake: Every blog post is an island with no links to other content. Fix: Every post links to 3-5 related posts. Build topic clusters. Create pillar pages.
Mistake: Publishing the exact same article on your blog, Dev.to, Medium, and LinkedIn. Fix: Publish the canonical version on YOUR domain. Cross-post to Dev.to and Medium with canonical URL tags. Syndicate summaries to LinkedIn and Twitter.
Mistake: Targeting "AI" (billions of results, impossible to rank) instead of "how to orchestrate AI agents with DAGs" (specific, rankable). Fix: Target long-tail keywords with clear intent. Better to rank #1 for a 500-searches/month term than #50 for a 50,000-searches/month term.
datePublished and dateModified are accurate in schema markupdata-ai
license: Apache-2.0 NOT for unrelated tasks outside this domain.
development
Use when designing caching strategies (cache-aside, write-through, write-behind), implementing distributed locks, building rate limiters, leaderboards, real-time streams (XADD/consumer groups), pub/sub, or tuning eviction policies. Triggers: thundering-herd on cache miss, dogpile on key expiry, Redlock vs SET-NX-PX choice, sliding-window rate limiter, hot-key on a single cluster slot, big-key blowup, MULTI/EXEC across slots, KEYS in production. NOT for Redis Cluster operations/admin (different domain), embedded KV (SQLite, leveldb), in-process LRU caches, or Memcached.
tools
Drawing the `'use client'` boundary correctly in React Server Components apps (Next.js App Router, RSC frameworks) — leaf-pushing, slot composition, serialization rules, and environment poisoning prevention. Grounded in react.dev and Next.js 16 docs.
development
Use when designing rate limiting for an API, choosing between token bucket / sliding window / leaky bucket / fixed window, implementing it in Redis, deciding edge (Cloudflare/Upstash) vs origin enforcement, sizing per-user vs per-IP vs per-endpoint quotas, returning the right 429 response with Retry-After, or fixing the boundary-burst bug in fixed-window limiters. Triggers: 429 too many requests, INCR + EXPIRE, ZADD + ZREMRANGEBYSCORE + ZCARD, X-RateLimit-Remaining header, Cloudflare WAF rate limiting rules, Upstash @upstash/ratelimit, leaky bucket shaping vs policing, distributed rate limiter consistency. NOT for DDoS mitigation specifically (different scale), CAPTCHA / bot management, full WAF design, or per-user quota billing.