seo-rank-tracker — Keyword Ranking Monitoring
Ranking Data Sources
Primary Sources
| Source |
Data Type |
Pros |
Cons |
| GSC Search Performance |
Avg position (impressions-weighted) |
Free, real data, query-level |
Averaged, 2-day delay, sampled |
| CrUX + GSC combined |
Position + performance correlation |
Links CWV to rankings |
Requires both APIs |
| Third-party SERP APIs |
Exact position, SERP features |
Real-time, geo-specific |
Paid, rate-limited |
| Manual spot checks |
Visual SERP inspection |
Accurate, sees full context |
Doesn't scale |
GSC Position Data Caveats
- Position is impressions-weighted average — a page ranking #3 for 100 impressions and #50 for 10 impressions shows as ~7.3
- Data is 2 days delayed (hourly granularity available via API since Dec 2025)
- Positions are sampled for high-volume queries
- Filter by
device to see mobile vs desktop separately
- Filter by
country for geo-specific rankings
SERP Feature Tracking (2026)
Features to Monitor
| Feature |
Prevalence |
Impact on Organic CTR |
| AI Overviews |
48% of queries |
-34 to -46% CTR for positions below |
| Featured Snippets |
~12% of queries |
+2x CTR if captured (Position 0) |
| People Also Ask (PAA) |
~65% of queries |
Moderate — clicks distributed |
| Video Carousel |
~20% of queries |
High for how-to/tutorial content |
| Image Pack |
~30% of queries |
Moderate — drives image search traffic |
| Local Pack |
~35% of local queries |
Very high — dominates local intent |
| Knowledge Panel |
~20% of brand queries |
Builds trust, reduces clicks to site |
| Shopping Results |
~25% of product queries |
High for e-commerce |
| AI Mode (Zero Links) |
Growing (180+ countries) |
100% — no organic results shown |
AI Overview Impact Analysis
When AI Overviews appear for your target queries:
- Cited in AIO: Position preserved, CTR may increase (trusted source signal)
- Not cited in AIO: CTR drops 34-46% even if ranking #1
- Strategy: Optimize for citation (see
seo-geo skill) rather than just ranking
Ranking Monitoring Framework
Keyword Categories
| Category |
Tracking Frequency |
Alert Threshold |
| Money keywords (high-intent, transactional) |
Daily |
±3 positions |
| Brand keywords |
Daily |
±5 positions |
| Content keywords (informational) |
Weekly |
±5 positions |
| Long-tail keywords |
Monthly |
±10 positions |
| Competitor brand keywords |
Weekly |
Any appearance/disappearance |
Position Buckets Analysis
| Bucket |
Interpretation |
Action |
| #1-3 |
Dominant positions |
Defend — monitor for competitors rising |
| #4-10 |
First page |
Optimize — quick wins available |
| #11-20 |
Second page |
Push to page 1 — content enhancement + links |
| #21-50 |
Discoverable |
Evaluate — worth investing or pivot keyword? |
| #50+ |
Not competitive |
Reassess — new content or abandon keyword |
Striking Distance Analysis
Keywords ranking #4-20 are "striking distance" — most ROI per effort:
- Filter GSC data for avg position 4-20
- Sort by impressions (high impressions = high opportunity)
- Analyze current page quality vs top 3 competitors
- Prioritize by:
opportunity = impressions × (target_ctr - current_ctr)
Local vs National Ranking
Local Ranking Factors
- Google Business Profile optimization (completeness, reviews, photos)
- NAP consistency (Name, Address, Phone across directories)
- Local content and landing pages
- Proximity to searcher (uncontrollable but measurable)
- Local link building (chambers of commerce, local media)
Geo-Specific Tracking
Track rankings for key locations separately:
Keyword: "plumber near me"
├── New York, NY: #3 (Local Pack: #1)
├── Los Angeles, CA: #7 (Local Pack: not listed)
├── Chicago, IL: #12 (Local Pack: #3)
└── National average: #8
Use geo-targeted SERP APIs (Bright Data, DataForSEO) for location-specific data.
Competitor Rank Comparison
Share of Voice (SOV) Calculation
SOV = Σ (estimated_clicks per keyword) / Σ (total_clicks for all tracked keywords) × 100
Where estimated_clicks = search_volume × CTR_for_position
Competitor Monitoring Checklist
Competitive Position Matrix
| Your Rank vs Competitor |
Strategy |
| You #1-3, them #4+ |
Defend: Monitor, maintain content freshness |
| You #4-10, them #1-3 |
Attack: Analyze their page, improve yours |
| Both #1-3 |
Differentiate: Unique angle, better UX, SERP feature targeting |
| Both #11+ |
Reassess: Is this keyword worth competing for? |
Ranking Volatility Analysis
Google Update Detection
- Track average position across all keywords daily
- Normal fluctuation: ±2-3 positions day-to-day
- Potential update: ±5+ positions across multiple keywords simultaneously
- Cross-reference with known Google update dates (MozCast, Semrush Sensor)
Volatility Scoring
| Volatility Level |
Daily Position Change |
Likely Cause |
| Low (0-2) |
±1-2 positions |
Normal SERP movement |
| Moderate (3-5) |
±3-5 positions |
Algorithm refinement or competitor changes |
| High (6-10) |
±6-10 positions |
Google update or significant site change |
| Extreme (10+) |
±10+ positions |
Major algorithm update or penalty |
Recovery Playbook
If rankings drop significantly:
- Check GSC for manual actions or security issues
- Check timing against known Google updates
- Analyze pattern: All keywords affected → site-wide issue. Specific cluster → topical issue
- Compare content against new top-ranking pages — what changed?
- Review technical: Any recent site changes? (migration, redesign, server issues)
- Cross-reference CrUX: Did CWV degrade simultaneously?
GSC Cross-Validation
Data Reconciliation
Compare rank tracker data with GSC:
- Rank tracker shows exact position for a single geo/device
- GSC shows average position across all impressions
- Discrepancies are normal — investigate only when directionally different (rank tracker says #3, GSC says #25)
Anomaly Detection Rules
| Signal |
Trigger |
Investigation |
| Position drop + impression increase |
Ranking dropped but query volume grew |
Seasonal trend masking decline |
| Position stable + click decrease |
Same rank but fewer clicks |
SERP feature stealing clicks (AI Overview?) |
| Position improvement + traffic decrease |
Higher rank, less traffic |
Search volume declining for keyword |
| Sudden 0 impressions |
Complete disappearance |
De-indexing, canonical issue, or robots.txt block |
Automated Monitoring Integration
Monitoring Frequency Configuration
| Keyword Type |
Check Frequency |
Data Source |
Alert Channel |
| Brand terms |
Daily |
GSC API (hourly since Dec 2025) |
Slack immediate |
| Core commercial |
Every 3 days |
GSC API + SERP API validation |
Slack + email digest |
| Content keywords |
Weekly |
GSC API batch |
Weekly digest |
| Long-tail |
Weekly |
GSC API batch |
Weekly digest |
| New content |
Daily for 30 days |
GSC URL Inspection API |
Slack if not indexed by day 3 |
Alert Rule Templates
Rule: Core Keyword Drop
Trigger: position drops ≥5 from 7-day average
Severity: HIGH
Action: Investigate → check competitor changes → check technical issues
Rule: Batch Drop
Trigger: 3+ tracked keywords drop simultaneously
Severity: HIGH
Action: Check Google update timeline → compare with SEMrush Sensor
Rule: SERP Feature Loss
Trigger: Lost Featured Snippet or AI Overview citation
Severity: MEDIUM
Action: Compare content with new feature holder → update content
Rule: Competitor Entry
Trigger: New competitor enters top 3 for core keyword
Severity: MEDIUM
Action: Analyze competitor page → identify advantages → plan response
Notification Templates
Slack Alert Format
🔴 [HIGH] Ranking Alert — {domain}
Keyword: "{keyword}"
Position: {old_pos} → {new_pos} (↓{drop})
URL: {page_url}
Possible cause: {analysis}
Action: {recommendation}
Weekly Digest Format
📊 Weekly Rank Report — {domain} — Week of {date}
Summary: {total_tracked} keywords | ↑{improved} | ↓{declined} | →{stable}
Top Movers: [table of top 5 up/down]
Alerts Triggered: {count} ({critical}/{high}/{medium})
SOV Change: {your_sov}% (was {last_week}%)
Action Items: [prioritized list]
Cross-reference: seo-monitor skill for comprehensive monitoring beyond rankings.
Cross-reference: seo-report skill for full report generation.
Scoring
| Category |
Weight |
| Keyword Coverage |
25% |
| Tracking Infrastructure |
20% |
| SERP Feature Monitoring |
20% |
| Competitor Tracking |
15% |
| Alerting & Reporting |
10% |
| Data Cross-Validation |
10% |
Output Format
Generate RANK-TRACKING-REPORT.md with:
- Ranking Health Score (0-100)
- Position Distribution (buckets: #1-3, #4-10, #11-20, #21-50, #50+)
- Striking Distance Opportunities (keywords #4-20 sorted by opportunity)
- SERP Feature Status (which features you own vs competitors)
- Share of Voice (your SOV vs top competitors)
- Volatility Analysis (recent ranking stability)
- Recommendations (prioritized by expected traffic impact)
1---2name: seo-rank-tracker3description: Keyword ranking monitoring methodology covering SERP position tracking, SERP feature detection (AI Overviews, Featured Snippets, PAA), local vs national ranking, competitor rank comparison, and ranking volatility analysis. Use when user says "rank tracker", "keyword ranking", "position tracking", "SERP monitoring", "ranking changes", or "rank check".4---56# seo-rank-tracker — Keyword Ranking Monitoring78## Ranking Data Sources910### Primary Sources11| Source | Data Type | Pros | Cons |12|--------|----------|------|------|13| **GSC Search Performance** | Avg position (impressions-weighted) | Free, real data, query-level | Averaged, 2-day delay, sampled |14| **CrUX + GSC combined** | Position + performance correlation | Links CWV to rankings | Requires both APIs |15| **Third-party SERP APIs** | Exact position, SERP features | Real-time, geo-specific | Paid, rate-limited |16| **Manual spot checks** | Visual SERP inspection | Accurate, sees full context | Doesn't scale |1718### GSC Position Data Caveats19- Position is **impressions-weighted average** — a page ranking #3 for 100 impressions and #50 for 10 impressions shows as ~7.320- Data is **2 days delayed** (hourly granularity available via API since Dec 2025)21- Positions are **sampled** for high-volume queries22- Filter by `device` to see mobile vs desktop separately23- Filter by `country` for geo-specific rankings2425## SERP Feature Tracking (2026)2627### Features to Monitor28| Feature | Prevalence | Impact on Organic CTR |29|---------|-----------|----------------------|30| **AI Overviews** | 48% of queries | -34 to -46% CTR for positions below |31| **Featured Snippets** | ~12% of queries | +2x CTR if captured (Position 0) |32| **People Also Ask (PAA)** | ~65% of queries | Moderate — clicks distributed |33| **Video Carousel** | ~20% of queries | High for how-to/tutorial content |34| **Image Pack** | ~30% of queries | Moderate — drives image search traffic |35| **Local Pack** | ~35% of local queries | Very high — dominates local intent |36| **Knowledge Panel** | ~20% of brand queries | Builds trust, reduces clicks to site |37| **Shopping Results** | ~25% of product queries | High for e-commerce |38| **AI Mode (Zero Links)** | Growing (180+ countries) | 100% — no organic results shown |3940### AI Overview Impact Analysis41When AI Overviews appear for your target queries:421. **Cited in AIO**: Position preserved, CTR may increase (trusted source signal)432. **Not cited in AIO**: CTR drops 34-46% even if ranking #1443. **Strategy**: Optimize for citation (see `seo-geo` skill) rather than just ranking4546## Ranking Monitoring Framework4748### Keyword Categories49| Category | Tracking Frequency | Alert Threshold |50|----------|-------------------|-----------------|51| **Money keywords** (high-intent, transactional) | Daily | ±3 positions |52| **Brand keywords** | Daily | ±5 positions |53| **Content keywords** (informational) | Weekly | ±5 positions |54| **Long-tail keywords** | Monthly | ±10 positions |55| **Competitor brand keywords** | Weekly | Any appearance/disappearance |5657### Position Buckets Analysis58| Bucket | Interpretation | Action |59|--------|---------------|--------|60| **#1-3** | Dominant positions | Defend — monitor for competitors rising |61| **#4-10** | First page | Optimize — quick wins available |62| **#11-20** | Second page | Push to page 1 — content enhancement + links |63| **#21-50** | Discoverable | Evaluate — worth investing or pivot keyword? |64| **#50+** | Not competitive | Reassess — new content or abandon keyword |6566### Striking Distance Analysis67Keywords ranking #4-20 are "striking distance" — most ROI per effort:681. Filter GSC data for avg position 4-20692. Sort by impressions (high impressions = high opportunity)703. Analyze current page quality vs top 3 competitors714. Prioritize by: `opportunity = impressions × (target_ctr - current_ctr)`7273## Local vs National Ranking7475### Local Ranking Factors76- Google Business Profile optimization (completeness, reviews, photos)77- NAP consistency (Name, Address, Phone across directories)78- Local content and landing pages79- Proximity to searcher (uncontrollable but measurable)80- Local link building (chambers of commerce, local media)8182### Geo-Specific Tracking83Track rankings for key locations separately:84```85Keyword: "plumber near me"86├── New York, NY: #3 (Local Pack: #1)87├── Los Angeles, CA: #7 (Local Pack: not listed)88├── Chicago, IL: #12 (Local Pack: #3)89└── National average: #890```9192Use geo-targeted SERP APIs (Bright Data, DataForSEO) for location-specific data.9394## Competitor Rank Comparison9596### Share of Voice (SOV) Calculation97```98SOV = Σ (estimated_clicks per keyword) / Σ (total_clicks for all tracked keywords) × 10099```100101Where estimated_clicks = search_volume × CTR_for_position102103### Competitor Monitoring Checklist104- [ ] Track same keywords for top 5 competitors105- [ ] Compare SOV trends monthly106- [ ] Detect new competitor pages targeting your keywords107- [ ] Monitor competitor SERP feature wins/losses108- [ ] Alert when competitor enters your top-3 keywords109110### Competitive Position Matrix111| Your Rank vs Competitor | Strategy |112|------------------------|----------|113| You #1-3, them #4+ | **Defend**: Monitor, maintain content freshness |114| You #4-10, them #1-3 | **Attack**: Analyze their page, improve yours |115| Both #1-3 | **Differentiate**: Unique angle, better UX, SERP feature targeting |116| Both #11+ | **Reassess**: Is this keyword worth competing for? |117118## Ranking Volatility Analysis119120### Google Update Detection121- Track average position across all keywords daily122- **Normal fluctuation**: ±2-3 positions day-to-day123- **Potential update**: ±5+ positions across multiple keywords simultaneously124- Cross-reference with known Google update dates (MozCast, Semrush Sensor)125126### Volatility Scoring127| Volatility Level | Daily Position Change | Likely Cause |128|----------------|-----------------------|-------------|129| **Low** (0-2) | ±1-2 positions | Normal SERP movement |130| **Moderate** (3-5) | ±3-5 positions | Algorithm refinement or competitor changes |131| **High** (6-10) | ±6-10 positions | Google update or significant site change |132| **Extreme** (10+) | ±10+ positions | Major algorithm update or penalty |133134### Recovery Playbook135If rankings drop significantly:1361. **Check GSC** for manual actions or security issues1372. **Check timing** against known Google updates1383. **Analyze pattern**: All keywords affected → site-wide issue. Specific cluster → topical issue1394. **Compare content** against new top-ranking pages — what changed?1405. **Review technical**: Any recent site changes? (migration, redesign, server issues)1416. **Cross-reference CrUX**: Did CWV degrade simultaneously?142143## GSC Cross-Validation144145### Data Reconciliation146Compare rank tracker data with GSC:147- Rank tracker shows **exact position** for a single geo/device148- GSC shows **average position** across all impressions149- Discrepancies are normal — investigate only when directionally different (rank tracker says #3, GSC says #25)150151### Anomaly Detection Rules152| Signal | Trigger | Investigation |153|--------|---------|--------------|154| Position drop + impression increase | Ranking dropped but query volume grew | Seasonal trend masking decline |155| Position stable + click decrease | Same rank but fewer clicks | SERP feature stealing clicks (AI Overview?) |156| Position improvement + traffic decrease | Higher rank, less traffic | Search volume declining for keyword |157| Sudden 0 impressions | Complete disappearance | De-indexing, canonical issue, or robots.txt block |158159---160161## Automated Monitoring Integration162163### Monitoring Frequency Configuration164| Keyword Type | Check Frequency | Data Source | Alert Channel |165|-------------|----------------|-------------|---------------|166| Brand terms | Daily | GSC API (hourly since Dec 2025) | Slack immediate |167| Core commercial | Every 3 days | GSC API + SERP API validation | Slack + email digest |168| Content keywords | Weekly | GSC API batch | Weekly digest |169| Long-tail | Weekly | GSC API batch | Weekly digest |170| New content | Daily for 30 days | GSC URL Inspection API | Slack if not indexed by day 3 |171172### Alert Rule Templates173```174Rule: Core Keyword Drop175 Trigger: position drops ≥5 from 7-day average176 Severity: HIGH177 Action: Investigate → check competitor changes → check technical issues178179Rule: Batch Drop180 Trigger: 3+ tracked keywords drop simultaneously181 Severity: HIGH182 Action: Check Google update timeline → compare with SEMrush Sensor183184Rule: SERP Feature Loss185 Trigger: Lost Featured Snippet or AI Overview citation186 Severity: MEDIUM187 Action: Compare content with new feature holder → update content188189Rule: Competitor Entry190 Trigger: New competitor enters top 3 for core keyword191 Severity: MEDIUM192 Action: Analyze competitor page → identify advantages → plan response193```194195### Notification Templates196197#### Slack Alert Format198```199🔴 [HIGH] Ranking Alert — {domain}200Keyword: "{keyword}"201Position: {old_pos} → {new_pos} (↓{drop})202URL: {page_url}203Possible cause: {analysis}204Action: {recommendation}205```206207#### Weekly Digest Format208```209📊 Weekly Rank Report — {domain} — Week of {date}210Summary: {total_tracked} keywords | ↑{improved} | ↓{declined} | →{stable}211Top Movers: [table of top 5 up/down]212Alerts Triggered: {count} ({critical}/{high}/{medium})213SOV Change: {your_sov}% (was {last_week}%)214Action Items: [prioritized list]215```216217Cross-reference: `seo-monitor` skill for comprehensive monitoring beyond rankings.218Cross-reference: `seo-report` skill for full report generation.219220## Scoring221222| Category | Weight |223|----------|--------|224| Keyword Coverage | 25% |225| Tracking Infrastructure | 20% |226| SERP Feature Monitoring | 20% |227| Competitor Tracking | 15% |228| Alerting & Reporting | 10% |229| Data Cross-Validation | 10% |230231## Output Format232233Generate `RANK-TRACKING-REPORT.md` with:2341. **Ranking Health Score** (0-100)2352. **Position Distribution** (buckets: #1-3, #4-10, #11-20, #21-50, #50+)2363. **Striking Distance Opportunities** (keywords #4-20 sorted by opportunity)2374. **SERP Feature Status** (which features you own vs competitors)2385. **Share of Voice** (your SOV vs top competitors)2396. **Volatility Analysis** (recent ranking stability)2407. **Recommendations** (prioritized by expected traffic impact)