Performs SEO keyword research using Google Trends via SerpApi to find breakout keywords for tech/developer blogs. Generates SEO-optimized outlines, content structures, and plans for posts or calendars.
npx claudepluginhub varnan-tech/opendirectory --plugin opendirectory-gtm-skillsThis skill is limited to using the following tools:
Find trending, high-opportunity keywords BEFORE writing blog content. This skill turns generic blog topics into SEO-optimized content that ranks.
Generates detailed blog post content briefs including keyword research, outlines, competitive analysis, stats/images/charts suggestions, word counts, internal linking, 12 templates, TL;DR, citations, and distribution plans optimized for Google SEO and AI citations.
Generates SERP-oriented blog outlines: analyzes top 5 search results for structure/gaps, outputs word-counted skeletons with templates. --full adds keyword research, competitor analysis, E-E-A-T, visuals.
Generates and prioritizes content topics using the 6 Circles Method for budget keyword research. Use when planning content strategy or deciding what to write about.
Share bugs, ideas, or general feedback.
Find trending, high-opportunity keywords BEFORE writing blog content. This skill turns generic blog topics into SEO-optimized content that ranks.
Always research keywords BEFORE generating blog content.
BAD: Write blog -> Hope it ranks -> Usually doesn't
GOOD: Research keywords -> Find breakout opportunity -> Write optimized blog -> Ranks well
When analyzing Google Trends RELATED_QUERIES results, prioritize keywords in this order:
formatted_value: "Breakout" = 5000%+ growthformatted_value: "+100%" or higherformatted_value: "+50%" to "+99%"Query RELATED_QUERIES with the user's blog topic:
curl -s "https://serpapi.com/search?engine=google_trends&q=USER_TOPIC&data_type=RELATED_QUERIES&date=today+3-m&api_key=$SERPAPI_KEY"
From the response, extract:
Select the primary keyword:
Query RELATED_TOPICS with the same topic:
curl -s "https://serpapi.com/search?engine=google_trends&q=USER_TOPIC&data_type=RELATED_TOPICS&date=today+3-m&api_key=$SERPAPI_KEY"
Extract topic titles from rising + top results. These become your H2 section headings (pick 3-5).
Only if choosing between multiple candidate keywords or validating viability:
curl -s "https://serpapi.com/search?engine=google_trends&q=KEYWORD&data_type=TIMESERIES&date=today+12-m&api_key=$SERPAPI_KEY"
Compare recent 2-month average vs. earlier 2-month average. If recent > earlier, trend is rising — proceed. If declining, consider a different keyword.
Build the outline using this structure:
Title: [Primary Keyword] — [Benefit/Number] [Year]
(max 60 characters, must include primary keyword)
Meta Description: (150-160 chars, primary + 1-2 secondary keywords)
# [H1 — same as or variation of title]
## Introduction (150 words)
- Primary keyword in first 100 words
- Hook with a problem or question
- Preview what they'll learn
## [H2: Related Topic 1 from Step 2]
### [H3: Long-tail question from Step 1]
Content answering the question (150-200 words)
### [H3: Another long-tail question]
Content (150-200 words)
## [H2: Related Topic 2]
### [H3: Long-tail question]
### [H3: Long-tail question]
## [H2: Related Topic 3]
### [H3: Long-tail question]
### [H3: Long-tail question]
## Conclusion (100 words)
- Summarize key points
- Primary keyword mentioned once
- Call-to-action
Target: 1500-2500 words total
| Location | Rule |
|---|---|
| Title | Include primary keyword, max 60 chars |
| H1 | Same as title or slight variation |
| H2 headings (3-5) | Use related topics, natural language |
| H3 headings (8-12) | Use long-tail keywords, question format |
| First paragraph | Primary keyword in first 100 words |
| Body content | Primary keyword 1-2% density, secondary 0.5-1% |
| Conclusion | Primary keyword once |
| Meta description | Primary + 1-2 secondary, 150-160 chars |
Never keyword-stuff. Content must read naturally. Google penalizes unnatural repetition.
Before generating the blog, verify:
If no breakout or high-growth keywords exist for the topic, inform the user that SEO opportunity is limited and suggest alternative angles or related topics that do have growth.
Free tier: 250 searches/month
| Strategy | Calls/Blog | Monthly Capacity |
|---|---|---|
| Minimal (recommended) | 2 | 125 blogs |
| Standard | 3 | 83 blogs |
| Complete | 4 | 62 blogs |
Default to 2 calls (RELATED_QUERIES + RELATED_TOPICS). Only add TIMESERIES or GEO_MAP when specifically needed.
For a complete working example, run:
python scripts/blog_seo_research.py "your blog topic"
See scripts/blog_seo_research.py for the implementation.