30x-seo-serp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited 30x-seo-serp (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.
Track rankings, monitor SERP changes, and analyze search result features using DataForSEO API via direct curl calls.
Credentials stored in ~/.config/dataforseo/auth (Base64 encoded).
# Read auth token
AUTH=$(cat ~/.config/dataforseo/auth)| Command | What it does |
|---|---|
/seo serp rank <domain> | Get all keywords domain ranks for |
/seo serp check <keyword> | Live SERP check for keyword |
/seo serp history <keyword> | Historical SERP changes |
/seo serp features <keyword> | Analyze SERP features present |
/seo serp competitors <keyword> | Who ranks for this keyword |
/seo serp overview <domain> | Domain ranking overview |
curl -s -X POST "https://api.dataforseo.com/v3/serp/google/organic/live/advanced" \
-H "Authorization: Basic $(cat ~/.config/dataforseo/auth)" \
-H "Content-Type: application/json" \
-d '[{"keyword": "TARGET_KEYWORD", "location_name": "United States", "language_code": "en", "depth": 100}]'curl -s -X POST "https://api.dataforseo.com/v3/dataforseo_labs/google/domain_rank_overview/live" \
-H "Authorization: Basic $(cat ~/.config/dataforseo/auth)" \
-H "Content-Type: application/json" \
-d '[{"target": "example.com", "location_name": "United States", "language_code": "en"}]'curl -s -X POST "https://api.dataforseo.com/v3/dataforseo_labs/google/ranked_keywords/live" \
-H "Authorization: Basic $(cat ~/.config/dataforseo/auth)" \
-H "Content-Type: application/json" \
-d '[{"target": "example.com", "location_name": "United States", "language_code": "en", "limit": 100}]'curl -s -X POST "https://api.dataforseo.com/v3/dataforseo_labs/google/historical_serps/live" \
-H "Authorization: Basic $(cat ~/.config/dataforseo/auth)" \
-H "Content-Type: application/json" \
-d '[{"keyword": "TARGET_KEYWORD", "location_name": "United States", "language_code": "en"}]'curl -s -X POST "https://api.dataforseo.com/v3/dataforseo_labs/google/serp_competitors/live" \
-H "Authorization: Basic $(cat ~/.config/dataforseo/auth)" \
-H "Content-Type: application/json" \
-d '[{"keywords": ["kw1", "kw2", "kw3"], "location_name": "United States", "language_code": "en"}]'curl -s -X POST "https://api.dataforseo.com/v3/dataforseo_labs/google/keyword_overview/live" \
-H "Authorization: Basic $(cat ~/.config/dataforseo/auth)" \
-H "Content-Type: application/json" \
-d '[{"keywords": ["kw1", "kw2"], "location_name": "United States", "language_code": "en"}]'Get complete ranking profile for a domain.
Input: domain (e.g., "example.com")
Output:
- Total ranking keywords
- Position distribution (1-3, 4-10, 11-20, 21-100)
- Estimated organic traffic
- Top ranking keywords
- SERP feature presencePosition Distribution Chart:
Position 1-3: ############ 45 keywords
Position 4-10: #################### 89 keywords
Position 11-20: ########## 42 keywords
Position 21-50: ######## 35 keywords
Position 51+: #### 18 keywordsGet current SERP for any keyword.
Input: keyword, location (optional)
Output:
- Top 10/20/100 results
- SERP features present
- Ads above/below organic
- Related searches
- People Also AskSERP Feature Detection:
| Feature | SEO Impact |
|---|---|
| AI Overview | Reduces organic CTR |
| Featured Snippet | High visibility opportunity |
| People Also Ask | Content expansion signals |
| Local Pack | Local SEO needed |
| Image Pack | Image optimization opportunity |
| Video Carousel | Video content opportunity |
| Knowledge Panel | Brand authority signal |
Track SERP changes over time.
Input: keyword
Output:
- SERP snapshots over time
- Position changes per domain
- Feature appearance/disappearance
- Volatility assessmentUse cases:
Find who's competing for keywords.
Input: keyword(s)
Output:
- All ranking domains
- Average position per domain
- Traffic share estimates
- Content type analysisCheck specific keyword positions for your domain.
Input: domain, keywords[]
Output:
- Current position per keyword
- URL ranking for each
- SERP features captured
- Position change from last check| Tier | Positions | CTR Estimate | Priority |
|---|---|---|---|
| Premium | 1-3 | 15-30% | Defend |
| Strong | 4-10 | 2-8% | Optimize |
| Striking Distance | 11-20 | 1-2% | Push |
| Opportunity | 21-50 | <1% | Content gap |
| Long-tail | 51+ | Minimal | Low priority |
DataForSEO provides estimated traffic based on:
Note: These are estimates, not actual traffic data.
# SERP Rankings: [domain]
Generated: [Date]
## Overview
- Total Keywords: X
- Estimated Monthly Traffic: X
- Average Position: X
- Keywords in Top 10: X
## Position Distribution
| Position | Keywords | % of Total |
|----------|----------|------------|
| 1-3 | X | X% |
| 4-10 | X | X% |
| 11-20 | X | X% |
| 21-50 | X | X% |
| 51+ | X | X% |
## Top Keywords
| Keyword | Position | Volume | URL |
|---------|----------|--------|-----|
| [kw1] | 3 | 5,400 | /page1 |
| [kw2] | 7 | 3,200 | /page2 |
## SERP Features Captured
| Feature | Count | Keywords |
|---------|-------|----------|
| Featured Snippet | 5 | kw1, kw2, ... |
| People Also Ask | 12 | ... |
## Opportunities
### Striking Distance (Position 11-20)
Keywords close to page 1 - prioritize optimization:
1. [keyword] - Position 12, Volume 2,400
2. [keyword] - Position 15, Volume 1,800# SERP Analysis: "[keyword]"
Location: [location]
Generated: [Date]
## SERP Composition
### Above the Fold
- Ads: 4
- AI Overview: Yes
- Featured Snippet: Yes (domain.com)
### Organic Results
1. domain1.com/page - Title
2. domain2.com/page - Title
...
### SERP Features Present
- [x] AI Overview
- [x] Featured Snippet
- [x] People Also Ask (4 questions)
- [ ] Local Pack
- [x] Image Pack
- [ ] Video Carousel
## Recommendations
1. Content type to create: [based on top results]
2. Target word count: [based on analysis]
3. SERP feature to target: [based on gaps]| Capability | DataForSEO (this skill) | GSC |
|---|---|---|
| Ranking data | Yes (estimated) | Yes (actual) |
| Click data | No | Yes |
| Impression data | No | Yes |
| CTR data | No | Yes |
| Any domain | Yes | Only verified |
| Historical depth | Months | 16 months |
| Real-time SERP | Yes | No |
| SERP features | Detailed | Limited |
Use DataForSEO when:
Use GSC when:
seo-keywords to find keywords to trackseo-content to optimize underperforming pagesseo-backlinks to understand ranking factors| Keyword Type | Check Frequency |
|---|---|
| Core (top 20) | Weekly |
| Secondary (21-50) | Bi-weekly |
| Long-tail (51+) | Monthly |
| Competitor tracking | Weekly |
| Signal | Action |
|---|---|
| Position drop >5 | Investigate content/links |
| New competitor in top 5 | Analyze their content |
| SERP feature lost | Re-optimize for feature |
| Position 11-15 | Push to page 1 |
[PROTOCOL]: Update this header on changes, then check CLAUDE.md
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.