Loading...
Loading...
SEO & Content Marketing skill suite with keyword research, content audits, SERP analysis, technical SEO commands and multi-step workflows
npx skill4agent add aradotso/marketing-skills datalocastle-r03-anthropics-skills-seoSkill by ara.so — Marketing Skills collection.
# Clone to Claude Code skills directory
mkdir -p ~/.claude/skills
cd ~/.claude/skills
git clone https://github.com/Datalocastle/r03-anthropics-skills-seo.git
# Or manually copy
cp -r /path/to/r03-anthropics-skills-seo ~/.claude/skills//read ~/.claude/skills/r03-anthropics-skills-seo/SKILL.md~/.claude/config.ymlskills:
- path: ~/.claude/skills/r03-anthropics-skills-seo
enabled: true/keyword-research <target>
/keyword-research "email marketing tools" --depth extensive
/keyword-research "seo" --scope commercial --output json<target>--depthquickstandardextensive--scopeinformationalcommercialtransactionalall--outputmdjsoncsv╔═══════════════════════════════════════════════════════╗
║ Keyword Research — email marketing tools ║
╠═══════════════════════════════════════════════════════╣
║ Gathering seeds … [██████████] 100% ✓ Done ║
║ Expanding clusters … [██████████] 100% ✓ Done ║
║ Analyzing SERP intent … [████████░░] 80% 342/428 ║
╚═══════════════════════════════════════════════════════╝
┌──────────────────────────┬────────┬────┬────────┬──────────────┐
│ Keyword │ Volume │ KD │ Intent │ Opportunity │
├──────────────────────────┼────────┼────┼────────┼──────────────┤
│ email marketing software │ 12 100 │ 78 │ 🔵 COM │ 🟢 High │
│ best email tools │ 8 900 │ 65 │ 🔵 COM │ 🟢 High │
│ email automation │ 6 700 │ 58 │ 🟡 MIX │ 🟡 Medium │
│ mailchimp alternatives │ 4 200 │ 52 │ 🔵 COM │ 🟢 High │
└──────────────────────────┴────────┴────┴────────┴──────────────┘
Action Plan:
🟢 Quick Wins (0-2 weeks)
□ Target "mailchimp alternatives" — low KD, high commercial intent
□ Create comparison table content for "best email tools"
🟡 Medium-Term (2-8 weeks)
□ Build topic cluster around "email automation"
□ Develop feature comparison pages/content-audit --scope full --output md
/content-audit --url https://example.com --scope pages --filter /blog/*
/content-audit --scope full --min-words 300 --export audit-report.csv--scopefullpagespostscategory:<name>--url--filter--min-words--export╔═══════════════════════════════════════════════════════╗
║ Content Audit — example.com ║
╠═══════════════════════════════════════════════════════╣
║ Crawling pages … [██████████] 100% ✓ 1 204 ║
║ Analyzing quality … [██████████] 100% ✓ Done ║
║ Checking duplication … [██████████] 100% ✓ Done ║
╚═══════════════════════════════════════════════════════╝
Quality Score Distribution:
🟢 Excellent (80-100): 342 pages (28%)
🟡 Good (60-79): 568 pages (47%)
🟠 Fair (40-59): 234 pages (19%)
🔴 Poor (0-39): 60 pages ( 5%)
Top Issues:
🔴 Critical (60 pages)
• Thin content (<300 words): 42 pages
• Missing meta descriptions: 18 pages
🟠 Warning (234 pages)
• Low word count (300-500): 156 pages
• Keyword cannibalization: 78 page pairs
Action Plan:
🔴 Immediate (this week)
□ Add meta descriptions to 18 critical pages
□ Merge or 301 redirect 12 duplicate product pages
🟠 High Priority (2 weeks)
□ Expand 42 thin content pages to 800+ words
□ Resolve cannibalization for "pricing" queries (6 pages)/technical-seo <url>
/technical-seo https://example.com --depth full --include-vitals
/technical-seo --url https://example.com --crawl-limit 5000<url>--depthbasicstandardfull--include-vitals--crawl-limit╔═══════════════════════════════════════════════════════╗
║ Technical SEO Audit — example.com ║
╠═══════════════════════════════════════════════════════╣
║ Crawling site … [██████████] 100% ✓ 1 204 ║
║ Checking indexability … [██████████] 100% ✓ Done ║
║ Validating schema … [████████░░] 80% 962/1204 ║
╚═══════════════════════════════════════════════════════╝
┌─────────────────────────┬──────────┬──────────┬──────────┐
│ Metric │ Current │ Target │ Status │
├─────────────────────────┼──────────┼──────────┼──────────┤
│ Crawlable pages │ 1 204 │ 1 505 │ ⚠ 80 % │
│ Pages w/ title tag │ 1 180 │ 1 204 │ ✓ 98 % │
│ Pages w/ meta desc │ 902 │ 1 204 │ ✗ 75 % │
│ Core Web Vitals │ Good │ Good │ ✓ Pass │
│ Mobile-friendly │ 97 │ 100 │ ⚠ 97 % │
│ Valid schema markup │ 645 │ 1 204 │ ✗ 54 % │
│ HTTPS coverage │ 1 204 │ 1 204 │ ✓ 100 % │
└─────────────────────────┴──────────┴──────────┴──────────┘
Issues Found:
🔴 Critical (24 issues)
• 301 redirect chains (12 pages) — avg 3.4 hops
• Mixed content warnings (8 pages)
• Orphaned pages (4 pages) — no internal links
🟠 Warning (156 issues)
• Missing canonical tags (89 pages)
• Duplicate title tags (45 pages)
• Missing schema markup (22 pages)/competitor-gap <target> <competitor1> <competitor2> ...
/competitor-gap example.com competitor1.com competitor2.com --gap-type all
/competitor-gap example.com competitor.com --gap-type backlinks --min-dr 40<target><competitor1>--gap-typebacklinkstopicssnippetsall--min-dr/content-brief <keyword>
/content-brief "best email marketing software" --format long
/content-brief "seo tools" --include-serp --competitor-count 10<keyword>--formatshortlongcomprehensive--include-serp--competitor-count# Content Brief: "best email marketing software"
## Target Keyword Metrics
- Primary Keyword: best email marketing software
- Search Volume: 12,100/month
- Keyword Difficulty: 78/100
- Search Intent: Commercial + Comparison
- Current Rank: Not ranking
## SERP Analysis (Top 10)
- Avg Word Count: 3,450 words
- Avg Images: 12
- Common Content Type: Comparison list + detailed reviews
- Featured Snippet: Yes (comparison table)
- People Also Ask: 8 questions
## Recommended Outline
1. Introduction (150-200 words)
- Hook: email marketing ROI statistics
- Brief overview of selection criteria
2. Quick Comparison Table
- 10-12 tools, 5-7 key features
3. Detailed Reviews (2,400-2,800 words)
- Tool #1: [Name] (300-350 words each)
- Key features
- Pricing
- Pros/cons
- Best for
[Repeat for 8-10 tools]
4. Buying Guide (400-500 words)
- How to choose
- Key features explained
- Pricing considerations
## NLP Terms to Include
Must-have (use 5+ times):
- email campaigns, automation, templates, subscribers, analytics
Should-have (use 2-4 times):
- deliverability, segmentation, A/B testing, integrations, CRM
## Technical Requirements
- Target Word Count: 3,200-3,800 words
- Images: 10-15 (screenshots, comparison graphics)
- Internal Links: 4-6
- External Links: 8-12 (to official tool sites)
- Schema: Article + FAQPage/serp-monitor --keywords keywords.csv --frequency daily
/serp-monitor --domain example.com --auto-discover/link-prospecting <topic> --min-da 30 --limit 50
/link-prospecting "marketing tools" --type guest-post --export prospects.csv/page-speed-seo <url>
/page-speed-seo https://example.com/page --device mobile/local-seo <business-name> --location "New York, NY"
/local-seo "Joe's Pizza" --location "Brooklyn" --check-citations/content-calendar --topic "email marketing" --months 3
/content-calendar --keywords keywords.csv --start 2026-06-01 --export calendar.csv/workflows:full-seo-sprint <domain> --scope full
/workflows:full-seo-sprint example.com --duration 4-weeks --export sprint-report//workflows:launch-seo <domain> --checklist full
/workflows:launch-seo staging.example.com --export launch-checklist.md/workflows:content-refresh --domain example.com --rank-drop 5+
/workflows:content-refresh --url-list declining-pages.csv/workflows:authority-building <domain> --campaign-type guest-post
/workflows:authority-building example.com --target-dr 50+ --duration 12-weeks/workflows:ai-content-pipeline --keywords keywords.csv --auto-publish false
/workflows:ai-content-pipeline --topic "seo tools" --count 10.seo-config.yml# SEO Suite Configuration
domain: example.com
analytics:
google_analytics_id: ${GA_MEASUREMENT_ID}
google_search_console: ${GSC_PROPERTY_URL}
search_data:
api_provider: semrush # semrush | ahrefs | moz
api_key: ${SEO_API_KEY}
crawl_settings:
max_pages: 10000
user_agent: "SEO-Skills-Bot/1.0"
respect_robots: true
crawl_delay_ms: 100
content_audit:
min_word_count: 300
quality_thresholds:
excellent: 80
good: 60
fair: 40
reporting:
output_format: markdown # markdown | json | csv
export_path: ./seo-reports/
include_screenshots: true.env# Required for keyword research
SEO_API_KEY=your_semrush_or_ahrefs_key
# Optional: Google Search Console API
GSC_PROPERTY_URL=https://example.com/
GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json
# Optional: Google Analytics
GA_MEASUREMENT_ID=G-XXXXXXXXXX# Run comprehensive monthly audit
/technical-seo https://example.com --depth full --include-vitals
/content-audit --scope full --min-words 300
/serp-monitor --keywords top-keywords.csv --compare-last-month
# Generate report
/workflows:full-seo-sprint example.com --scope audit-only --export monthly-report/# 1. Research keywords
/keyword-research "target topic" --depth extensive --output csv
# 2. Generate content brief
/content-brief "chosen keyword" --format comprehensive --include-serp
# 3. Create content calendar
/content-calendar --keywords selected-keywords.csv --months 3
# 4. Generate first draft (using brief)
# ... write content ...
# 5. Pre-publish SEO check
/technical-seo <draft-url> --depth basic# 1. Identify competitor gaps
/competitor-gap example.com competitor1.com competitor2.com --gap-type all
# 2. Find keyword opportunities
/keyword-research "competitor topic" --scope commercial
# 3. Build better content
/content-brief "target keyword" --competitor-count 10
# 4. Get backlinks
/link-prospecting "topic" --min-da 40 --type guest-post# 1. Identify declining pages
/serp-monitor --domain example.com --rank-drop 5+ --last-30-days
# 2. Audit affected pages
/content-audit --url-list declining-pages.csv
# 3. Run refresh workflow
/workflows:content-refresh --url-list declining-pages.csv
# 4. Check technical issues
/technical-seo https://example.com --depth full# Python example (requires Python bindings)
from seo_skills import KeywordResearch, ContentAudit
# Keyword research
kr = KeywordResearch(api_key=os.getenv('SEO_API_KEY'))
results = kr.analyze(
seed_keyword="email marketing",
depth="extensive",
intent_filter="commercial"
)
for keyword in results.opportunities:
print(f"{keyword.term}: {keyword.volume} vol, {keyword.difficulty} KD")
# Content audit
audit = ContentAudit(domain="example.com")
report = audit.run(scope="full", min_words=300)
print(f"Quality distribution: {report.quality_distribution}")
print(f"Critical issues: {len(report.critical_issues)}")# Process multiple keywords from CSV
cat keywords.csv | while read keyword; do
/content-brief "$keyword" --format long --export "briefs/${keyword}.md"
done
# Audit multiple domains
for domain in $(cat domains.txt); do
/technical-seo "$domain" --export "audits/${domain}.json"
done# .seo-config.yml
crawl_settings:
crawl_delay_ms: 500 # Increase delay
concurrent_requests: 2 # Reduce concurrencyecho $SEO_API_KEY.seo-config.yml# .seo-config.yml
crawl_settings:
respect_robots: false # Only for your own sites!
# Or add your user agent to robots.txt:
# User-agent: SEO-Skills-Bot
# Allow: /# Run schema-only check
/technical-seo https://example.com --check-schema-only --verbose
# Test specific page
curl -s https://example.com/page | grep -o '<script type="application/ld+json">.*</script>'# .seo-config.yml
content_audit:
similarity_threshold: 85 # Default: 75 (increase to reduce false positives)
ignore_boilerplate: true # Ignore headers/footers/sidebars~/.claude/aliases.ymlaliases:
quick-seo: "technical-seo {0} --depth basic && content-audit --url {0} --scope pages"
content-sprint: "workflows:ai-content-pipeline --topic {0} --count 5"
rank-check: "serp-monitor --keywords {0} --frequency daily"/quick-seo https://example.com
/content-sprint "email marketing"
/rank-check top-keywords.csv# .github/workflows/seo-audit.yml
name: Weekly SEO Audit
on:
schedule:
- cron: '0 9 * * 1' # Every Monday at 9 AM
jobs:
seo-audit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Run SEO audit
env:
SEO_API_KEY: ${{ secrets.SEO_API_KEY }}
run: |
/technical-seo https://example.com --depth full --export audit.json
/content-audit --scope full --export content-audit.csv
- name: Upload reports
uses: actions/upload-artifact@v3
with:
name: seo-reports
path: |
audit.json
content-audit.csv.seo-config.ymlnotifications:
webhook_url: ${SLACK_WEBHOOK_URL}
alert_on:
- rank_drop: 5 # Alert if any keyword drops 5+ positions
- critical_issues: true
- core_vitals_fail: true/technical-seo <your-domain>/workflows:full-seo-sprint <your-domain> --scope full/serp-monitor --domain <your-domain> --auto-discover