seo-content-marketing-commands
SEO and content marketing automation suite with keyword research, content audits, technical SEO, competitor analysis, and workflow orchestration
How do I install this agent skill?
npx skills add https://github.com/aradotso/marketing-skills --skill seo-content-marketing-commandsIs this agent skill safe to install?
- Gen Agent Trust Hubpass
The SEO and content marketing command suite provides a collection of structured prompts and instructional logic for website audits and keyword research. It is categorized as safe because it contains no executable scripts, follows industry standards for secret management, and provides transparent operations.
- Socketpass
No alerts
- Snykwarn
Risk: MEDIUM · 1 issue
What does this agent skill do?
SEO & Content Marketing Commands Skill
Skill by ara.so — Marketing Skills collection.
This skill enables AI coding agents to leverage a comprehensive SEO and content marketing automation suite derived from wshobson/commands. It provides 10 specialized commands and 5 multi-step workflows for keyword research, content audits, SERP analysis, technical SEO diagnostics, and content strategy orchestration.
What This Project Does
The SEO & Content Marketing Commands suite provides:
- Keyword Research: Deep keyword clustering, opportunity scoring, and SERP intent mapping
- Content Audits: Quality scoring, duplication detection, and cannibalization reports
- Technical SEO: Crawl budget analysis, Core Web Vitals, schema markup validation
- Competitor Analysis: Backlink gaps, topic gaps, featured snippet opportunities
- Content Workflows: Automated pipelines from keyword research to published content
- Structured Output: Consistent UI with progress tracking, findings tables, and action plans
All commands follow a 5-step interaction pattern: scope confirmation → live analysis → findings table → action plan → next steps.
Installation
Clone the Skill
# Clone into Claude skills directory
mkdir -p ~/.claude/skills
cd ~/.claude/skills
git clone https://github.com/Plateeocondense/r10-wshobson-commands-seo.git seo-content-marketing-commands
# Or copy directly
cp -r /path/to/r10-wshobson-commands-seo ~/.claude/skills/seo-content-marketing-commands/
Register with Claude Code
In a Claude Code session:
/read ~/.claude/skills/seo-content-marketing-commands/SKILL.md
Verify Installation
# List available SEO commands
/help seo
# Test a simple command
/keyword-research --help
Core Commands
Keyword Research
Performs deep keyword clustering with opportunity scoring and SERP intent mapping.
# Basic keyword research
/keyword-research "best running shoes"
# Advanced with filters
/keyword-research "best running shoes" --volume-min 1000 --difficulty-max 50 --intent transactional
# Export to CSV
/keyword-research "best running shoes" --output csv --file keywords.csv
Output Structure:
- Keyword clusters with search volume and difficulty
- SERP intent classification (informational/transactional/navigational)
- Opportunity score (1-100)
- Related questions and "People Also Ask"
- Long-tail variations
Content Audit
Full-site content quality assessment with duplication and cannibalization detection.
# Full site audit
/content-audit --scope full --output md
# Specific URL pattern
/content-audit --scope "/blog/*" --min-quality 60
# Check for cannibalization
/content-audit --check-cannibalization --output json
Audit Criteria:
- Content quality score (readability, structure, depth)
- Duplicate content detection
- Keyword cannibalization matrix
- Thin content identification (<300 words)
- Missing metadata (titles, descriptions, H1s)
Technical SEO
Comprehensive technical SEO diagnostics covering crawlability, performance, and indexability.
# Full technical audit
/technical-seo --scope full
# Focus on Core Web Vitals
/technical-seo --focus cwv --output json
# Check specific issues
/technical-seo --check indexability,schema,canonicals
Checks:
- Crawl budget optimization
- Core Web Vitals (LCP, FID, CLS)
- Schema markup validation
- Canonical tag issues
- Robots.txt and sitemap validation
- HTTPS and security headers
- Mobile-friendliness
Competitor Gap Analysis
Identifies backlink gaps, topic gaps, and featured snippet opportunities.
# Analyze against competitors
/competitor-gap --domain example.com --competitors competitor1.com,competitor2.com
# Backlink gap only
/competitor-gap --domain example.com --competitors competitor1.com --focus backlinks --min-dr 40
# Topic gap with content suggestions
/competitor-gap --domain example.com --competitors competitor1.com --focus topics --suggest-content
Output:
- Keywords competitors rank for (you don't)
- Backlink sources linking to competitors (not you)
- Featured snippet opportunities
- Content gap recommendations with estimated traffic
Content Brief Generation
AI-generated SEO content brief with outline, NLP terms, and word count targets.
# Generate content brief
/content-brief "how to train for a marathon"
# Advanced with specific intent
/content-brief "how to train for a marathon" --intent informational --min-words 2000 --include-faq
# Export to markdown
/content-brief "how to train for a marathon" --output md --file brief.md
Brief Includes:
- Target keyword and variations
- Recommended word count based on SERP analysis
- Content outline with H2/H3 structure
- NLP terms and entities to include
- Competitor content analysis
- FAQ section based on "People Also Ask"
- Internal linking suggestions
SERP Monitoring
Daily rank tracking with volatility alerts and CTR optimization tips.
# Monitor keywords
/serp-monitor --keywords "keyword1,keyword2,keyword3" --frequency daily
# Check specific domain
/serp-monitor --domain example.com --top-keywords 50 --alert-threshold 5
# Export tracking data
/serp-monitor --domain example.com --export json --file rankings.json
Monitoring Features:
- Position tracking (daily/weekly)
- Volatility alerts for significant rank changes
- SERP feature tracking (featured snippets, local pack, etc.)
- CTR estimates and optimization suggestions
- Competitor position tracking
Link Prospecting
Quality backlink prospect identification with DA/DR filters and outreach templates.
# Find link prospects
/link-prospecting --topic "sustainable fashion" --min-dr 30 --limit 100
# Include outreach templates
/link-prospecting --topic "sustainable fashion" --templates --output csv
# Filter by link type
/link-prospecting --topic "sustainable fashion" --type "guest-post,resource-page" --min-dr 40
Prospect Criteria:
- Domain Rating (DR) and Domain Authority (DA)
- Relevance score to your topic
- Link type (guest post, resource page, broken link, etc.)
- Contact information (when available)
- Outreach email templates
Page Speed SEO
Diagnose render-blocking resources, LCP, CLS, FID issues mapped to ranking impact.
# Analyze page speed
/page-speed-seo --url "https://example.com/page"
# Full site analysis
/page-speed-seo --scope full --prioritize-by impact
# Mobile vs Desktop
/page-speed-seo --url "https://example.com/page" --device mobile,desktop --compare
Analysis:
- Core Web Vitals scores
- Render-blocking resources
- Image optimization opportunities
- JavaScript execution time
- Ranking impact assessment
- Prioritized fix recommendations
Local SEO
NAP consistency checks, Google Business Profile optimization, and local citation audits.
# Local SEO audit
/local-seo --business-name "Joe's Coffee" --location "Seattle, WA"
# Citation audit
/local-seo --business-name "Joe's Coffee" --check citations --nap-consistency
# GBP optimization
/local-seo --business-name "Joe's Coffee" --optimize gbp --include-posts
Local SEO Checks:
- NAP (Name, Address, Phone) consistency across directories
- Google Business Profile completeness and optimization
- Local citation building opportunities
- Review monitoring and response templates
- Local keyword rankings
- Schema markup for local business
Content Calendar
Data-driven editorial calendar based on search demand and seasonality.
# Generate content calendar
/content-calendar --niche "fitness" --months 3 --posts-per-week 2
# Include seasonal trends
/content-calendar --niche "fitness" --months 12 --seasonal --output csv
# Based on keyword list
/content-calendar --keywords keywords.csv --schedule-by volume --output json
Calendar Features:
- Topic suggestions based on search volume trends
- Seasonal content recommendations
- Optimal publish dates based on search patterns
- Content type recommendations (blog, video, infographic)
- Keyword mapping to each piece
- Estimated traffic potential
Multi-Step Workflows
Full SEO Sprint
12-step comprehensive SEO sprint from audit to implementation.
# Run complete SEO sprint
/workflows:full-seo-sprint --domain example.com --scope full
# Skip specific steps
/workflows:full-seo-sprint --domain example.com --skip "backlink-audit,local-seo"
# Export all reports
/workflows:full-seo-sprint --domain example.com --export-all --format md
Sprint Steps:
- Technical SEO audit
- Content audit
- Keyword research
- Competitor analysis
- Backlink profile assessment
- On-page optimization recommendations
- Content gap identification
- Internal linking structure
- Schema markup implementation
- Core Web Vitals optimization
- Local SEO (if applicable)
- Implementation roadmap with priorities
Launch SEO
Pre-launch SEO checklist with validation for canonicals, hreflang, and sitemaps.
# Pre-launch audit
/workflows:launch-seo --domain staging.example.com --production-domain example.com
# Check specific items
/workflows:launch-seo --domain staging.example.com --check "canonicals,redirects,sitemap"
# Generate launch checklist
/workflows:launch-seo --domain staging.example.com --output checklist --file launch.md
Launch Checklist:
- Robots.txt configuration (staging vs. production)
- XML sitemap generation and submission
- Canonical tag verification
- Hreflang implementation (multi-language sites)
- 301 redirect mapping
- Schema markup validation
- Core Web Vitals baseline
- Analytics and Search Console setup
- SSL certificate verification
- Mobile-friendliness test
Content Refresh
Identify and refresh underperforming pages to recover lost rankings.
# Find content to refresh
/workflows:content-refresh --domain example.com --min-age 365 --traffic-drop 20
# Prioritize by opportunity
/workflows:content-refresh --domain example.com --sort-by opportunity --limit 20
# Include refresh templates
/workflows:content-refresh --domain example.com --templates --output md
Refresh Process:
- Identify declining pages (traffic drop >X%)
- Analyze SERP changes and new competitors
- Keyword gap analysis (current vs. historical)
- Content quality assessment
- Refresh recommendations (add sections, update stats, etc.)
- On-page SEO improvements
- Internal linking updates
- Re-promotion strategy
Authority Building
End-to-end digital PR and link-building campaign workflow.
# Launch authority campaign
/workflows:authority-building --domain example.com --niche "sustainable living" --duration 90
# Focus on specific tactics
/workflows:authority-building --domain example.com --tactics "guest-posts,digital-pr,broken-link"
# Track campaign progress
/workflows:authority-building --domain example.com --campaign-id abc123 --report
Campaign Steps:
- Competitor backlink analysis
- Link prospect identification
- Content asset creation (linkable assets)
- Outreach list building
- Email outreach sequences
- Digital PR opportunities
- Broken link building
- Resource page link building
- Follow-up automation
- Link acquisition tracking
- Campaign ROI analysis
AI Content Pipeline
Automated keyword-to-publish content pipeline.
# Set up content pipeline
/workflows:ai-content-pipeline --keywords keywords.csv --output-dir ./content --auto-publish false
# Full automation (careful!)
/workflows:ai-content-pipeline --keywords keywords.csv --auto-publish true --cms wordpress --wp-api-url $WP_API_URL
# Review mode
/workflows:ai-content-pipeline --keywords "best yoga mats" --review-mode --output md
Pipeline Stages:
- Keyword research and clustering
- Content brief generation
- AI draft creation
- SEO optimization (meta tags, headings, internal links)
- Fact-checking and quality review
- Image sourcing and optimization
- Schema markup injection
- Human review (if
--review-mode) - CMS publication (if
--auto-publish) - Performance tracking
Configuration
Environment Variables
Store configuration in environment variables for security and portability:
# Search API credentials
export SEO_AHREFS_API_KEY="your-ahrefs-key"
export SEO_SEMRUSH_API_KEY="your-semrush-key"
export SEO_SERPAPI_KEY="your-serpapi-key"
# Google APIs
export GOOGLE_SEARCH_CONSOLE_CREDENTIALS="path/to/credentials.json"
export GOOGLE_ANALYTICS_CREDENTIALS="path/to/ga-credentials.json"
# CMS Integration
export WP_API_URL="https://example.com/wp-json"
export WP_API_TOKEN="your-wp-token"
# OpenAI for content generation
export OPENAI_API_KEY="your-openai-key"
# Slack notifications (optional)
export SLACK_WEBHOOK_URL="https://hooks.slack.com/services/YOUR/WEBHOOK"
Configuration File
Create ~/.seo-commands/config.yaml:
# Default settings
defaults:
output_format: markdown
progress_display: true
auto_save: true
export_dir: ./seo-reports
# API Configuration
apis:
ahrefs:
enabled: true
rate_limit: 100 # requests per hour
semrush:
enabled: true
rate_limit: 50
serpapi:
enabled: true
# Audit Thresholds
thresholds:
content_quality_min: 60
page_speed_lcp_max: 2500 # milliseconds
page_speed_cls_max: 0.1
keyword_difficulty_max: 50
min_domain_rating: 30
# Workflow Defaults
workflows:
full_seo_sprint:
include_local: false
skip_steps: []
content_refresh:
min_age_days: 365
traffic_drop_threshold: 20
authority_building:
campaign_duration_days: 90
outreach_batch_size: 50
# Notifications
notifications:
slack:
enabled: true
channels:
errors: "#seo-alerts"
reports: "#seo-reports"
email:
enabled: false
Load Configuration
# Use custom config file
/keyword-research "topic" --config ~/my-custom-config.yaml
# Override config values
/technical-seo --config-override thresholds.page_speed_lcp_max=3000
Code Examples
Programmatic API Usage
While primarily a CLI tool, you can also use the underlying Python library:
from seo_commands import KeywordResearch, ContentAudit, TechnicalSEO
import os
# Initialize with API credentials
kr = KeywordResearch(
ahrefs_api_key=os.getenv('SEO_AHREFS_API_KEY'),
serpapi_key=os.getenv('SEO_SERPAPI_KEY')
)
# Perform keyword research
results = kr.analyze(
seed_keyword="best running shoes",
volume_min=1000,
difficulty_max=50,
intent="transactional"
)
# Access structured data
for cluster in results.clusters:
print(f"Cluster: {cluster.name}")
print(f"Opportunity Score: {cluster.opportunity_score}")
for keyword in cluster.keywords:
print(f" - {keyword.term} ({keyword.volume} vol, {keyword.difficulty} diff)")
# Export results
results.export_csv("keywords.csv")
results.export_json("keywords.json")
Content Audit Example
from seo_commands import ContentAudit
# Initialize
audit = ContentAudit(
domain="https://example.com",
gsc_credentials=os.getenv('GOOGLE_SEARCH_CONSOLE_CREDENTIALS')
)
# Run audit
report = audit.run(
scope="full",
check_cannibalization=True,
min_quality_score=60
)
# Access findings
print(f"Total pages audited: {report.total_pages}")
print(f"Thin content pages: {len(report.thin_content)}")
print(f"Cannibalization issues: {len(report.cannibalization_groups)}")
# Iterate over issues
for issue in report.issues:
if issue.severity == "high":
print(f"🔴 {issue.page_url}: {issue.description}")
print(f" Fix: {issue.recommendation}")
# Generate action plan
action_plan = report.generate_action_plan(prioritize_by="impact")
for action in action_plan.quick_wins:
print(f"✓ Quick win: {action.title} (Est. {action.time_estimate})")
Technical SEO Automation
from seo_commands import TechnicalSEO
from seo_commands.workflows import FullSEOSprint
# Run technical audit
tech_seo = TechnicalSEO(domain="https://example.com")
results = tech_seo.audit(
check_cwv=True,
check_schema=True,
check_mobile=True
)
# Check Core Web Vitals
for url, metrics in results.core_web_vitals.items():
if metrics.lcp > 2500: # Poor LCP
print(f"⚠️ {url} has poor LCP: {metrics.lcp}ms")
for fix in metrics.recommended_fixes:
print(f" - {fix}")
# Schema validation
for url, schema_issues in results.schema_validation.items():
if schema_issues:
print(f"Schema issues on {url}:")
for issue in schema_issues:
print(f" - {issue.type}: {issue.message}")
Workflow Orchestration
from seo_commands.workflows import FullSEOSprint, ContentRefresh
# Configure and run full SEO sprint
sprint = FullSEOSprint(
domain="https://example.com",
competitors=["competitor1.com", "competitor2.com"]
)
# Run with progress tracking
progress = sprint.run(
export_all=True,
export_format="markdown",
output_dir="./seo-reports"
)
# Monitor progress
for step in progress:
print(f"Step {step.number}/{step.total}: {step.name}")
print(f"Status: {step.status}")
if step.complete:
print(f"Findings: {step.summary}")
print(f"Action items: {len(step.action_items)}")
# Access final report
final_report = sprint.get_report()
print(f"\n=== SEO Sprint Summary ===")
print(f"Critical issues: {final_report.critical_count}")
print(f"Opportunities: {final_report.opportunity_count}")
print(f"Estimated traffic gain: {final_report.estimated_traffic_gain}")
Content Pipeline Integration
from seo_commands.workflows import AIContentPipeline
import os
# Set up pipeline
pipeline = AIContentPipeline(
openai_api_key=os.getenv('OPENAI_API_KEY'),
wordpress_api_url=os.getenv('WP_API_URL'),
wordpress_token=os.getenv('WP_API_TOKEN')
)
# Process keyword list
keywords = ["best yoga mats", "yoga mat for beginners", "thick yoga mats"]
for keyword in keywords:
# Generate brief
brief = pipeline.generate_brief(keyword)
# Create draft
draft = pipeline.create_draft(brief)
# Optimize for SEO
optimized = pipeline.optimize(draft)
# Review mode (manual approval)
if input(f"Publish '{optimized.title}'? (y/n): ").lower() == 'y':
# Publish to WordPress
post = pipeline.publish(
content=optimized,
status="draft", # or "publish" for immediate
categories=["Yoga"],
tags=brief.recommended_tags
)
print(f"✓ Published: {post.url}")
else:
# Save locally for manual editing
pipeline.save_draft(optimized, f"./{keyword.replace(' ', '-')}.md")
Common Patterns
Automated Weekly SEO Reporting
#!/bin/bash
# weekly-seo-report.sh
# Set date range
END_DATE=$(date +%Y-%m-%d)
START_DATE=$(date -d '7 days ago' +%Y-%m-%d)
# Run SERP monitoring
/serp-monitor \
--domain example.com \
--date-range "$START_DATE:$END_DATE" \
--export json \
--file "reports/serp-$(date +%Y%m%d).json"
# Check for technical issues
/technical-seo \
--scope full \
--output md \
--file "reports/technical-$(date +%Y%m%d).md"
# Content performance
/content-audit \
--scope "/blog/*" \
--date-range "$START_DATE:$END_DATE" \
--output md \
--file "reports/content-$(date +%Y%m%d).md"
# Send Slack notification
curl -X POST $SLACK_WEBHOOK_URL \
-H 'Content-Type: application/json' \
-d "{\"text\":\"📊 Weekly SEO report ready: reports/$(date +%Y%m%d)/\"}"
Content Refresh Workflow
# Find pages with declining traffic
/content-audit \
--check-traffic-trends \
--traffic-drop 20 \
--min-age 180 \
--output csv \
--file declining-pages.csv
# Analyze each page for refresh opportunities
cat declining-pages.csv | while IFS=, read -r url traffic_drop age; do
echo "Analyzing: $url"
# Generate refresh brief
/content-brief --url "$url" --mode refresh --output md --file "briefs/$(basename $url).md"
# Check competitor content
/competitor-gap --url "$url" --suggest-improvements
done
# Prioritize by opportunity
/workflows:content-refresh \
--input declining-pages.csv \
--prioritize-by opportunity \
--output action-plan \
--file refresh-plan.md
Link Building Campaign
# Identify link opportunities
/link-prospecting \
--topic "sustainable fashion" \
--min-dr 30 \
--type "guest-post,resource-page" \
--limit 200 \
--output csv \
--file prospects.csv
# Generate outreach templates
/link-prospecting \
--input prospects.csv \
--generate-templates \
--personalize \
--output-dir outreach/
# Track campaign
/workflows:authority-building \
--domain example.com \
--prospects prospects.csv \
--campaign-id "sustainable-2024" \
--track-responses \
--report-frequency weekly
Local SEO Optimization
# Audit local presence
/local-seo \
--business-name "Joe's Coffee" \
--location "Seattle, WA" \
--check citations,gbp,reviews \
--output md \
--file local-audit.md
# Find citation opportunities
/local-seo \
--business-name "Joe's Coffee" \
--find-citations \
--min-quality 50 \
--export csv \
--file citations.csv
# Monitor reviews
/local-seo \
--business-name "Joe's Coffee" \
--monitor-reviews \
--auto-respond \
--response-tone friendly \
--notify-on new,negative
Troubleshooting
API Rate Limits
If you encounter rate limit errors:
# Check current rate limit status
/debug:rate-limits
# Adjust rate limits in config
/config:set apis.ahrefs.rate_limit 50
/config:set apis.semrush.rate_limit 30
# Use cache to reduce API calls
/keyword-research "topic" --use-cache --cache-ttl 86400
Missing Credentials
# Verify credentials are set
env | grep SEO_
# Test API connection
/debug:test-apis
# Expected output:
# ✓ Ahrefs API: Connected
# ✓ SEMrush API: Connected
# ✗ SERPApi: Not configured (set SEO_SERPAPI_KEY)
Large Site Performance
For very large sites (>10,000 pages):
# Use sampling for initial audit
/content-audit --scope full --sample-size 1000
# Process in batches
/technical-seo --scope full --batch-size 500 --delay 100
# Use incremental crawling
/technical-seo --scope full --incremental --checkpoint-file crawl-checkpoint.json
Memory Issues
# Monitor memory usage
/debug:memory-usage
# Reduce memory footprint
/technical-seo --scope full --streaming --no-cache
# Process by section
/content-audit --scope "/blog/*" --output md
/content-audit --scope "/products/*" --output md
Export Failures
# Check export directory permissions
ls -la ./seo-reports
# Use absolute paths
/keyword-research "topic" --output csv --file ~/reports/keywords.csv
# Verify format support
/keyword-research "topic" --list-export-formats
# Outputs: csv, json, markdown, html, xlsx
Workflow Errors
# Enable verbose logging
/workflows:full-seo-sprint --domain example.com --verbose --log-file sprint.log
# Resume from checkpoint
/workflows:full-seo-sprint --domain example.com --resume-from step-5
# Skip failing steps
/workflows:full-seo-sprint --domain example.com --skip "backlink-audit" --continue-on-error
SERP Data Discrepancies
If keyword data doesn't match your expectations:
# Check data source
/keyword-research "topic" --show-sources
# Compare multiple sources
/keyword-research "topic" --sources ahrefs,semrush --compare
# Use specific location
/keyword-research "topic" --location "United States" --language en
# Force refresh (bypass cache)
/keyword-research "topic" --force-refresh
Schema Validation Errors
# Validate specific schema type
/technical-seo --check schema --schema-type "Product,Review,Organization"
# Get detailed schema errors
/technical-seo --check schema --verbose --export-errors schema-errors.json
# Test schema before deployment
/technical-seo --check schema --url "https://staging.example.com/product"
Best Practices
- Start with audits: Run
/technical-seoand/content-auditbefore implementing changes - Use workflows for comprehensive tasks: Prefer
/workflows:full-seo-sprintover individual commands for new projects - Export everything: Always use
--outputflags to save results for future reference - Monitor regularly: Set up cron jobs for weekly
/serp-monitorand monthly/content-audit - Prioritize by impact: Use
--sort-by impactto focus on high-value opportunities first - Validate before publishing: Use
--review-modefor AI-generated content - Track progress: Use
--campaign-idfor link building and content refresh workflows - Respect rate limits: Configure appropriate API rate limits to avoid throttling
- Use environment variables: Never commit API keys; always use
$ENV_VARreferences - Incremental implementation: Use
--incrementaland--checkpoint-filefor large sites
Additional Resources
How can the creator link this skill?
Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.
<a href="https://skillzs.dev/skills/aradotso/marketing-skills/seo-content-marketing-commands">View seo-content-marketing-commands on skillZs</a>