$npx -y skills add norahe0304-art/30x-seo --skill 30x-seo-serpTrack SERP rankings, monitor position changes, analyze SERP features, and identify ranking opportunities using DataForSEO. Alternative to Google Search Console for ranking data. Use when user says "rankings", "SERP tracking", "position monitoring", "rank tracking", "keyword posit
| 1 | # SEO SERP Tracking |
| 2 | |
| 3 | Track rankings, monitor SERP changes, and analyze search result features using DataForSEO API via direct curl calls. |
| 4 | |
| 5 | ## API Configuration |
| 6 | |
| 7 | Credentials stored in `~/.config/dataforseo/auth` (Base64 encoded). |
| 8 | |
| 9 | ```bash |
| 10 | # Read auth token |
| 11 | AUTH=$(cat ~/.config/dataforseo/auth) |
| 12 | ``` |
| 13 | |
| 14 | ## Quick Reference |
| 15 | |
| 16 | | Command | What it does | |
| 17 | |---------|-------------| |
| 18 | | `/seo serp rank <domain>` | Get all keywords domain ranks for | |
| 19 | | `/seo serp check <keyword>` | Live SERP check for keyword | |
| 20 | | `/seo serp history <keyword>` | Historical SERP changes | |
| 21 | | `/seo serp features <keyword>` | Analyze SERP features present | |
| 22 | | `/seo serp competitors <keyword>` | Who ranks for this keyword | |
| 23 | | `/seo serp overview <domain>` | Domain ranking overview | |
| 24 | |
| 25 | ## API Endpoints |
| 26 | |
| 27 | ### Live SERP Check |
| 28 | ```bash |
| 29 | curl -s -X POST "https://api.dataforseo.com/v3/serp/google/organic/live/advanced" \ |
| 30 | -H "Authorization: Basic $(cat ~/.config/dataforseo/auth)" \ |
| 31 | -H "Content-Type: application/json" \ |
| 32 | -d '[{"keyword": "TARGET_KEYWORD", "location_name": "United States", "language_code": "en", "depth": 100}]' |
| 33 | ``` |
| 34 | |
| 35 | ### Domain Rank Overview |
| 36 | ```bash |
| 37 | curl -s -X POST "https://api.dataforseo.com/v3/dataforseo_labs/google/domain_rank_overview/live" \ |
| 38 | -H "Authorization: Basic $(cat ~/.config/dataforseo/auth)" \ |
| 39 | -H "Content-Type: application/json" \ |
| 40 | -d '[{"target": "example.com", "location_name": "United States", "language_code": "en"}]' |
| 41 | ``` |
| 42 | |
| 43 | ### Ranked Keywords (Site Rankings) |
| 44 | ```bash |
| 45 | curl -s -X POST "https://api.dataforseo.com/v3/dataforseo_labs/google/ranked_keywords/live" \ |
| 46 | -H "Authorization: Basic $(cat ~/.config/dataforseo/auth)" \ |
| 47 | -H "Content-Type: application/json" \ |
| 48 | -d '[{"target": "example.com", "location_name": "United States", "language_code": "en", "limit": 100}]' |
| 49 | ``` |
| 50 | |
| 51 | ### Historical SERP |
| 52 | ```bash |
| 53 | curl -s -X POST "https://api.dataforseo.com/v3/dataforseo_labs/google/historical_serps/live" \ |
| 54 | -H "Authorization: Basic $(cat ~/.config/dataforseo/auth)" \ |
| 55 | -H "Content-Type: application/json" \ |
| 56 | -d '[{"keyword": "TARGET_KEYWORD", "location_name": "United States", "language_code": "en"}]' |
| 57 | ``` |
| 58 | |
| 59 | ### SERP Competitors |
| 60 | ```bash |
| 61 | curl -s -X POST "https://api.dataforseo.com/v3/dataforseo_labs/google/serp_competitors/live" \ |
| 62 | -H "Authorization: Basic $(cat ~/.config/dataforseo/auth)" \ |
| 63 | -H "Content-Type: application/json" \ |
| 64 | -d '[{"keywords": ["kw1", "kw2", "kw3"], "location_name": "United States", "language_code": "en"}]' |
| 65 | ``` |
| 66 | |
| 67 | ### Keyword Overview |
| 68 | ```bash |
| 69 | curl -s -X POST "https://api.dataforseo.com/v3/dataforseo_labs/google/keyword_overview/live" \ |
| 70 | -H "Authorization: Basic $(cat ~/.config/dataforseo/auth)" \ |
| 71 | -H "Content-Type: application/json" \ |
| 72 | -d '[{"keywords": ["kw1", "kw2"], "location_name": "United States", "language_code": "en"}]' |
| 73 | ``` |
| 74 | |
| 75 | ## Analysis Modes |
| 76 | |
| 77 | ### 1. Domain Ranking Overview |
| 78 | |
| 79 | Get complete ranking profile for a domain. |
| 80 | |
| 81 | ``` |
| 82 | Input: domain (e.g., "example.com") |
| 83 | Output: |
| 84 | - Total ranking keywords |
| 85 | - Position distribution (1-3, 4-10, 11-20, 21-100) |
| 86 | - Estimated organic traffic |
| 87 | - Top ranking keywords |
| 88 | - SERP feature presence |
| 89 | ``` |
| 90 | |
| 91 | **Position Distribution Chart:** |
| 92 | ``` |
| 93 | Position 1-3: ############ 45 keywords |
| 94 | Position 4-10: #################### 89 keywords |
| 95 | Position 11-20: ########## 42 keywords |
| 96 | Position 21-50: ######## 35 keywords |
| 97 | Position 51+: #### 18 keywords |
| 98 | ``` |
| 99 | |
| 100 | ### 2. Live SERP Check |
| 101 | |
| 102 | Get current SERP for any keyword. |
| 103 | |
| 104 | ``` |
| 105 | Input: keyword, location (optional) |
| 106 | Output: |
| 107 | - Top 10/20/100 results |
| 108 | - SERP features present |
| 109 | - Ads above/below organic |
| 110 | - Related searches |
| 111 | - People Also Ask |
| 112 | ``` |
| 113 | |
| 114 | **SERP Feature Detection:** |
| 115 | | Feature | SEO Impact | |
| 116 | |---------|-----------| |
| 117 | | AI Overview | Reduces organic CTR | |
| 118 | | Featured Snippet | High visibility opportunity | |
| 119 | | People Also Ask | Content expansion signals | |
| 120 | | Local Pack | Local SEO needed | |
| 121 | | Image Pack | Image optimization opportunity | |
| 122 | | Video Carousel | Video content opportunity | |
| 123 | | Knowledge Panel | Brand authority signal | |
| 124 | |
| 125 | ### 3. Historical SERP Analysis |
| 126 | |
| 127 | Track SERP changes over time. |
| 128 | |
| 129 | ``` |
| 130 | Input: keyword |
| 131 | Output: |
| 132 | - SERP snapshots over time |
| 133 | - Position changes per domain |
| 134 | - Feature appearance/disappearance |
| 135 | - Volatility assessment |
| 136 | ``` |
| 137 | |
| 138 | **Use cases:** |
| 139 | - Track algorithm update impact |
| 140 | - Identify ranking trends |
| 141 | - Detect competitor movements |
| 142 | - Plan content updates |
| 143 | |
| 144 | ### 4. SERP Competitor Analysis |
| 145 | |
| 146 | Find who's competing for keywords. |
| 147 | |
| 148 | ``` |
| 149 | Input: keyword(s) |
| 150 | Output: |
| 151 | - All ranking domains |
| 152 | - Average position per domain |
| 153 | - Traffic share estimates |
| 154 | - Content type analysis |
| 155 | ``` |
| 156 | |
| 157 | ### 5. Keyword Position Check |
| 158 | |
| 159 | Check specific keyword positions for your domain. |
| 160 | |
| 161 | ``` |
| 162 | Input: domain, keywords[] |
| 163 | Output: |
| 164 | - Current positio |