Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Audit content gaps and decay using Ahrefs MCP data: missing topics, thin coverage, outdated content, and decaying pages. Use this skill when planning a content roadmap, refreshing a stale catalog, building topical authority, or identifying which existing pages need update versus replacement. Triggers on content gap, content audit, content refresh, content roadmap, decaying content, content decay, topical authority, what topics should we cover, where is competitor content stronger. Also triggers
.claude/skills/rampstackco-seo-content-gap-audit/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 30% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 30% | 0% |
| case-18 | ✗→✓ | ▲ Improved | 191% | 0% |
| case-20 | ✗→✓ | ▲ Improved | 82% | 0% |
| case-04 | ✓→✗ | ▼ Worse | 114% | 0% |
Find content gaps and decay using Ahrefs MCP data. Stack-agnostic. Produces a roadmap of create, update, merge, and prune actions across the existing content catalog and identified topic gaps.
seo-keyword)seo-keyword-gap-audit)seo-onpage)seo-content-audit)content-strategy)Every content opportunity falls into one of four categories. Different categories need different actions.
Content gap analysis is sharper with multiple data sources. Ahrefs surfaces keyword and topic gaps (the primary backend below). Similarweb surfaces traffic-driving page-level gaps (which of a competitor's pages earn meaningful traffic, not just rankings). Semrush surfaces SERP-feature gaps (where competitors win answer boxes, knowledge panels, People Also Ask placements). The three platforms often disagree on individual data points; that disagreement is itself a useful signal.
Topics with traffic potential where the property has no relevant page at all. Competitors often rank in the top 10. The fix: create new content.
Pulled from:
Topics where the property has a page but it is too shallow, narrow, or single-keyword to compete with topical hubs. Competitor pages cover the topic across multiple subtopics. The fix: deepen the existing page or expand into a topic cluster.
Pulled from:
Pages that ranked well historically but have lost ground due to staleness. Information is dated, examples are old, the SERP intent has shifted. The fix: refresh with current information and re-promote.
Pulled from:
Pages that have lost traffic for reasons not obviously about staleness: SERP feature changes, competitor publishing, intent shifts, internal linking dilution. The fix: diagnose why, then refresh, merge, or redirect.
Pulled from:
references/content-decision-matrix.md.content-strategy, content-and-copy, and seo-onpage.For each piece of existing content or proposed new content, decide one action.
| Signal | Action | | --- | --- | | Strong page, healthy traffic, current information | Keep. Defend with internal linking and refresh on schedule. | | Page exists, ranking on page 2-3, content is thin vs SERP | Update. Deepen, restructure, broaden. | | Page exists, traffic declining, content is dated | Refresh. Update facts, examples, year references, screenshots. | | Page exists, low or zero traffic, low ranking, no improvement path | Prune or merge. Redirect to a stronger relative if one exists. | | Multiple pages on overlapping topics | Merge into one canonical page. Redirect the others. | | Topic missing entirely, competitor coverage strong | Create new page or pillar. | | Topic missing, but competitors do not rank well either | Validate intent before investing. Could be an opportunity or could be a dead end. | | Page is off-topic for the property | Redirect to most relevant page or remove from sitemap. |
A content gap audit document with:
Length: 8-15 pages plus an attached inventory spreadsheet.
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/content-decision-matrix.md - Detailed decision tree for classifying pages and choosing the create/update/merge/prune action, with worked examples.| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 35,900 | 35,585 | -1% | 1 | 1 | 0% | 6,289 | 8,154 | +30% | 0 | 0 | — |
case-02 | fail→fail | 35,828 | 35,070 | -2% | 1 | 1 | 0% | 6,269 | 8,134 | +30% | 0 | 0 | — |
case-03 | fail→pass | 33,920 | 37,977 | +12% | 1 | 1 | 0% | 6,239 | 8,104 | +30% | 0 | 0 | — |
case-04 | pass→fail | 11,643 | 14,404 | +24% | 1 | 1 | 0% | 2,108 | 4,514 | +114% | 0 | 0 | — |
case-05 | pass→pass | 9,810 | 13,161 | +34% | 1 | 1 | 0% | 1,794 | 4,035 | +125% | 0 | 0 | — |
case-06 | pass→pass | 16,970 | 18,809 | +11% | 1 | 1 | 0% | 2,782 | 5,034 | +81% | 0 | 0 | — |
case-07 | pass→pass | 14,085 | 12,689 | -10% | 1 | 1 | 0% | 2,165 | 3,951 | +82% | 0 | 0 | — |
case-08 | pass→pass | 10,863 | 9,340 | -14% | 1 | 1 | 0% | 1,750 | 3,390 | +94% | 0 | 0 | — |
case-09 | pass→pass | 10,306 | 7,357 | -29% | 1 | 1 | 0% | 1,746 | 3,102 | +78% | 0 | 0 | — |
case-10 | pass→pass | 13,533 | 11,819 | -13% | 1 | 1 | 0% | 2,086 | 3,712 | +78% | 0 | 0 | — |
case-11 | pass→pass | 12,660 | 9,951 | -21% | 1 | 1 | 0% | 2,239 | 3,546 | +58% | 0 | 0 | — |
case-12 | pass→pass | 14,159 | 11,355 | -20% | 1 | 1 | 0% | 2,408 | 3,723 | +55% | 0 | 0 | — |
case-13 | pass→pass | 9,152 | 9,543 | +4% | 1 | 1 | 0% | 1,489 | 3,395 | +128% | 0 | 0 | — |
case-14 | pass→pass | 14,204 | 12,627 | -11% | 1 | 1 | 0% | 2,318 | 3,760 | +62% | 0 | 0 | — |
case-15 | pass→fail | 12,337 | 14,489 | +17% | 1 | 1 | 0% | 1,989 | 4,071 | +105% | 0 | 0 | — |
case-16 | pass→pass | 9,739 | 8,616 | -12% | 1 | 1 | 0% | 1,652 | 3,436 | +108% | 0 | 0 | — |
case-17 | pass→pass | 11,240 | 11,129 | -1% | 1 | 1 | 0% | 1,867 | 3,712 | +99% | 0 | 0 | — |
case-18 | fail→pass | 5,800 | 4,661 | -20% | 1 | 1 | 0% | 918 | 2,675 | +191% | 0 | 0 | — |
case-19 | pass→pass | 4,776 | 4,266 | -11% | 1 | 1 | 0% | 829 | 2,661 | +221% | 0 | 0 | — |
case-20 | fail→pass | 10,175 | 5,435 | -47% | 1 | 1 | 0% | 1,569 | 2,861 | +82% | 0 | 0 | — |
case-21 | pass→pass | 4,191 | 3,851 | -8% | 1 | 1 | 0% | 691 | 2,496 | +261% | 0 | 0 | — |
case-22 | pass→pass | 15,946 | 13,052 | -18% | 1 | 1 | 0% | 2,363 | 3,868 | +64% | 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 +9 percentage points is the difference between those two pass rates over the 22 comparable cases. 2 cases got worse with the skill loaded, and they are included in that figure.
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.