Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Set up and run rank tracking using Ahrefs MCP: pick the right keywords to track, segment them by purpose, set baselines, and define alert thresholds. Use this skill when starting a new tracking project, baselining for a campaign, choosing what to monitor, or building a rank reporting cadence. Triggers on rank tracking, keyword tracking, monitor rankings, track positions, what should we track, ranking dashboard, baseline rankings, alert thresholds. Also triggers when a stakeholder wants weekly or
.claude/skills/rampstackco-seo-rank-tracking/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 12% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 22% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 87% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 27% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 65% | 0% |
Set up and run an ongoing rank tracking program using Ahrefs MCP data. Stack-agnostic. Produces a tracked keyword set, segmentation, baseline, alert thresholds, and a review cadence.
seo-keyword)seo-keyword-gap-audit)seo-traffic-diagnosis)seo-onpage)A good tracked keyword set has structure. Random keyword lists produce noisy dashboards. Segmented keyword sets produce signal.
Group every tracked keyword into one of four buckets.
Queries containing the brand name (and major variants and misspellings).
Why track:
Volume in this bucket: typically 10-30 keywords for most brands.
Healthy signal: position 1 for all variants. Anything else is investigate-worthy.
Queries that drive (or should drive) revenue: high-intent transactional and evaluation-stage queries directly tied to the business model.
Why track:
Volume in this bucket: 30-100 keywords for most properties. More for ecommerce.
Healthy signal: top 3-5 positions. Watch for position drift in either direction.
Queries the property is currently ranking on page 2-3 (positions 11-30) with potential to break into top 10.
Why track:
Volume in this bucket: 50-200 keywords typically.
Healthy signal: trending toward page 1 over a 90-day window.
A representative sample of head and torso queries shared with the competitor set, used to track relative position over time.
Why track:
Volume in this bucket: 50-150 keywords.
Healthy signal: relative position improving or holding within a defined competitive band.
seo-keyword-gap-audit outputQuality over volume. 50 well-chosen money keywords beats 500 noisy ones.
Refresh this bucket quarterly. Opportunity is a moving target.
This bucket is for relative comparison, not absolute targeting.
Tag every tracked keyword on additional dimensions for filtering:
| Tag | Purpose | | --- | --- | | Topic or pillar | Group by editorial theme | | Funnel stage | TOFU, MOFU, BOFU | | Content type expected | Article, product page, calculator, etc. | | Page mapped | Which URL is targeting this query | | Country and language | For multi-market sites | | Device | Desktop, mobile | | SERP feature presence | Featured snippet, AI overview, video, etc. |
Tagging up front pays off when filtering reports later.
Capture the starting state on day one.
For each keyword, record:
Baselines are the reference for measuring future movement. Without one, every dashboard is just current state.
Not every position change deserves attention. Set thresholds that filter noise.
| Bucket | Alert if | | --- | --- | | Brand | Position drops below 1 for any tracked variant | | Money | Position drops by 5+ places, or out of top 10 | | Opportunity | Position rises into top 10 (positive alert), or drops past 30 | | Competitor benchmark | Aggregate share-of-voice changes by 10%+ |
Adjust thresholds based on volatility of the niche. High-competition spaces need looser thresholds to reduce false alarms.
references/dashboard-template.md.A rank tracking setup document with:
Plus a recurring rank report at the chosen cadence (typically weekly or monthly).
This skill's output depends on data, measurements, or tool results it cannot generate on its own. When a required input, tool, or data source is unavailable or unverifiable, the sanctioned output is the deliverable with the gap stated: what was needed, what was actually obtained or verified, and which parts of the output are affected. Fabricating, estimating, or interpolating a required number to complete the deliverable is never sanctioned. A stated gap is a complete answer.
references/dashboard-template.md - Template for the rank tracking dashboard layout, including the recurring report structure for weekly and monthly cadences.| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 35,390 | 25,375 | -28% | 1 | 1 | 0% | 6,230 | 6,966 | +12% | 0 | 0 | — |
case-02 | fail→fail | 34,559 | 30,471 | -12% | 1 | 1 | 0% | 6,230 | 7,554 | +21% | 0 | 0 | — |
case-03 | fail→pass | 31,745 | 30,012 | -5% | 1 | 1 | 0% | 6,223 | 7,573 | +22% | 0 | 0 | — |
case-04 | pass→pass | 10,201 | 7,609 | -25% | 1 | 1 | 0% | 1,751 | 3,403 | +94% | 0 | 0 | — |
case-05 | fail→pass | 17,649 | 17,886 | +1% | 1 | 1 | 0% | 2,798 | 5,237 | +87% | 0 | 0 | — |
case-06 | fail→pass | 16,812 | 8,113 | -52% | 1 | 1 | 0% | 2,830 | 3,600 | +27% | 0 | 0 | — |
case-07 | fail→fail | 12,269 | 11,872 | -3% | 1 | 1 | 0% | 2,063 | 3,965 | +92% | 0 | 0 | — |
case-08 | fail→pass | 11,659 | 7,516 | -36% | 1 | 1 | 0% | 2,093 | 3,452 | +65% | 0 | 0 | — |
case-09 | fail→pass | 13,125 | 9,343 | -29% | 1 | 1 | 0% | 2,100 | 3,734 | +78% | 0 | 0 | — |
case-10 | pass→pass | 13,253 | 8,352 | -37% | 1 | 1 | 0% | 2,272 | 3,538 | +56% | 0 | 0 | — |
case-11 | fail→pass | 14,641 | 7,897 | -46% | 1 | 1 | 0% | 2,442 | 3,461 | +42% | 0 | 0 | — |
case-12 | fail→fail | 14,280 | 7,155 | -50% | 1 | 1 | 0% | 2,230 | 3,304 | +48% | 0 | 0 | — |
case-13 | pass→pass | 11,969 | 9,980 | -17% | 1 | 1 | 0% | 1,973 | 3,978 | +102% | 0 | 0 | — |
case-14 | fail→pass | 12,727 | 10,312 | -19% | 1 | 1 | 0% | 2,131 | 3,872 | +82% | 0 | 0 | — |
case-15 | pass→pass | 11,489 | 7,966 | -31% | 1 | 1 | 0% | 1,763 | 3,592 | +104% | 0 | 0 | — |
case-16 | fail→pass | 12,970 | 6,845 | -47% | 1 | 1 | 0% | 2,180 | 3,227 | +48% | 0 | 0 | — |
case-17 | fail→pass | 10,700 | 4,136 | -61% | 1 | 1 | 0% | 1,740 | 2,809 | +61% | 0 | 0 | — |
case-18 | pass→pass | 14,994 | 4,689 | -69% | 1 | 1 | 0% | 2,257 | 2,897 | +28% | 0 | 0 | — |
case-19 | pass→pass | 15,582 | 4,850 | -69% | 1 | 1 | 0% | 2,258 | 2,833 | +25% | 0 | 0 | — |
case-20 | fail→pass | 5,671 | 1,872 | -67% | 1 | 1 | 0% | 798 | 2,489 | +212% | 0 | 0 | — |
case-21 | pass→pass | 15,596 | 12,327 | -21% | 1 | 1 | 0% | 2,239 | 3,970 | +77% | 0 | 0 | — |
case-22 | pass→pass | 12,559 | 9,719 | -23% | 1 | 1 | 0% | 1,747 | 3,622 | +107% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +50 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.