seo-keyword-research — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited seo-keyword-research (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
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 wellWhen 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.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.