mcpbeat Sign in

Content Decay Detector Agent Skill

> Monitor existing content for ranking drops and trigger refresh workflows. "ranking drops", "traffic decline", "stale content", "content audit", "what to refresh", "outdated content", "content performance check", "update old articles", "declining rankings", "content maintenance", "refresh priority list", "which articles are losing traffic", "SEO content audit".

2k tokens
context cost
the whole folder, loaded on every use
1
files
instructions only
0
copies elsewhere
how many repositories repackaged it
583
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/Affitor/affiliate-skills --skill content-decay-detector

The instruction itself

20 sections, as written by the author

Content Decay Detector

Monitor existing content for ranking drops and generate a prioritized refresh queue. Refreshing decaying content is the highest-ROI SEO activity — it's faster and cheaper than creating new content, and recovering a lost position is easier than earning a new one.

Stage

S3: Blog & SEO — Blog maintenance and optimization. This skill keeps your existing content competitive and prevents rankings from silently eroding.

When to Use

  • User has existing blog content and wants to check for decay
  • User notices traffic declining on specific pages
  • User asks "what content needs updating?"
  • User says "content decay", "ranking drops", "stale content", "refresh", "content audit"
  • Monthly maintenance check — should run every 30 days on active blogs
  • After seo-audit reveals declining pages

Input Schema

site_url: string              # REQUIRED — the site to audit
                              # e.g., "myblog.com", "example.com/blog"

content_list: object[]        # OPTIONAL — specific pages to check
  - url: string               # Page URL
    title: string             # Page title
    publish_date: string      # Original publish date
    last_updated: string      # Last update date
    target_keyword: string    # Primary keyword

check_competitors: boolean    # OPTIONAL — whether to check if competitors published fresher content
                              # Default: true

timeframe: string             # OPTIONAL — "30d" | "90d" | "6m" | "1y"
                              # Default: "90d"

Chaining from S6 seo-audit: Use declining_pages as the content_list.

Workflow

Step 1: Gather Content Data

If content_list not provided:

  • web_search: site:[site_url] — discover indexed pages
  • Identify the top 15-20 most important pages (by topic relevance)
  • For each page, note: title, URL, apparent publish/update date

Step 2: Check for Decay Signals

Read shared/references/seo-strategy.md for decay signals and refresh methodology.

For each page:

  • web_search for the page's target keyword — check current ranking position
  • Look for decay signals:
  • Outdated information: Product features, pricing, dates mentioned
  • Competitor freshness: Newer, better content published by competitors
  • Missing elements: No images, no data, thin content compared to current SERP
  • Broken patterns: "2023" in a title when it's 2025+, discontinued products mentioned

Step 3: Score Decay Priority

For each decaying page, assign priority:

| Factor | Score | Criteria |

|---|---|---|

| Revenue impact | 1-5 | Contains affiliate links + had traffic = high revenue impact |

| Decay severity | 1-5 | Major outdated info = 5, minor = 1 |

| Fix effort | 1-5 (inverted) | Easy fix = 5, full rewrite = 1 |

| Competitor threat | 1-5 | Competitor published better version = 5 |

Priority = Revenue × Decay × Fix_Ease × Competitor_Threat (normalized)

Step 4: Generate Refresh Instructions

For each page in priority order, specify:

  • What's decayed — specific outdated elements
  • What to update — concrete changes to make
  • What to add — new sections, data, or elements competitors have
  • Internal linking — new pages to link to/from since original publish
  • Estimated effort — time to refresh

Step 5: Self-Validation

  • [ ] Decay signals are evidence-based (not guesses)
  • [ ] Priority ordering makes business sense (revenue-impacting first)
  • [ ] Refresh instructions are specific and actionable
  • [ ] Effort estimates are realistic
  • [ ] Not recommending refreshes for content that's performing fine

Output Schema

output_schema_version: "1.0.0"
content_decay:
  site: string
  pages_analyzed: number
  pages_decaying: number
  total_refresh_effort: string  # Estimated total hours

  decaying_pages:
    - url: string
      title: string
      priority: string          # "P0-critical" | "P1-high" | "P2-medium" | "P3-low"
      decay_signals: string[]
      refresh_actions: string[]
      estimated_effort: string
      revenue_impact: string    # "high" | "medium" | "low"

  healthy_pages: string[]       # Pages that don't need refresh

chain_metadata:
  skill_slug: "content-decay-detector"
  stage: "blog"
  timestamp: string
  suggested_next:
    - "affiliate-blog-builder"
    - "seo-audit"
    - "internal-linking-optimizer"
    - "keyword-cluster-architect"

Output Format

## Content Decay Report: [Site]

### Summary
- **Pages analyzed:** XX
- **Pages decaying:** XX
- **Total refresh effort:** XX hours
- **Estimated traffic recovery:** XX%

### Priority Refresh Queue

#### P0 — Critical (do this week)

**[Page Title]** — [URL]
- Decay: [what's wrong]
- Action: [what to do]
- Effort: [time estimate]
- Impact: [expected result]

#### P1 — High (do this month)
[same structure]

#### P2 — Medium (schedule)
[same structure]

### Healthy Pages (no action needed)
- [Page] — still ranking, content fresh
- [Page] — recently updated

### Monthly Maintenance Schedule
- Week 1: Refresh P0 pages
- Week 2: Refresh P1 pages
- Week 3: Create new content for gaps found
- Week 4: Internal linking review

Error Handling

  • No site URL: "I need your blog URL to check for content decay. What's the site?"
  • Site has no indexed pages: "I can't find indexed pages for this URL. Check that the site is public and indexed by search engines."
  • All content is fresh: "Great news — no significant decay detected. Run this check again in 30 days."
  • Can't determine ranking positions: Use available signals (content age, competitor freshness, outdated info) for prioritization.

Examples

Example 1: "Check my blog for content decay"

→ Discover indexed pages, check each for decay signals, generate prioritized refresh queue with specific actions per page.

Example 2: "Which of my articles need updating?"

→ Analyze content list, identify outdated pricing, stale comparisons, missing new products. Rank by revenue impact.

Example 3: "Content decay check" (after seo-audit)

→ Pick up declining pages from seo-audit output. Deep-dive each with competitor analysis and specific refresh instructions.

Flywheel Connections

Feeds Into

  • affiliate-blog-builder (S3) — refresh instructions for specific articles
  • internal-linking-optimizer (S6) — decaying pages may need better internal links
  • keyword-cluster-architect (S3) — content gaps revealed by decay analysis

Fed By

  • seo-audit (S6) — declining pages to investigate
  • internal-linking-optimizer (S6) — pages with weak link structure may be decaying
  • performance-report (S6) — traffic decline data

Feedback Loop

  • After refreshing, seo-audit (S6) tracks whether rankings recovered → measure refresh ROI, refine decay detection sensitivity

Quality Gate

Before delivering output, verify:

  • Would I share this on MY personal social?
  • Contains specific, surprising detail? (not generic)
  • Respects reader's intelligence?
  • Remarkable enough to share? (Purple Cow test)
  • Irresistible offer framing? (refresh actions feel actionable)

Any NO → rewrite before delivering.

References

  • shared/references/seo-strategy.md — Decay signals, refresh methodology, priority matrix
  • shared/references/flywheel-connections.md — Master connection map

Other skills for the same job

different authors, same section of the catalogue
Internal Comms
by anthropics
vendor ×13

A set of resources to help me write all kinds of internal communications, using the formats that my company likes to use. Claude should use this skill whenever asked to write some sort of internal communications (status reports, leadership updates, 3P updates, company newsletters, FAQs, incident reports, project updates, etc.).

6k tokens
Competitive Ads Extractor
by frostant
×10

Extracts and analyzes competitors' ads from ad libraries (Facebook, LinkedIn, etc.) to understand what messaging, problems, and creative approaches are working. Helps inspire and improve your own ad campaigns.

2k tokens
Lead Research Assistant
by frostant
×8

Identifies high-quality leads for your product or service by analyzing your business, searching for target companies, and providing actionable contact strategies. Perfect for sales, business development, and marketing professionals.

2k tokens
Developer Growth Analysis
by frostant
×6

Analyzes your recent Claude Code chat history to identify coding patterns, development gaps, and areas for improvement, curates relevant learning resources from HackerNews, and automatically sends a personalized growth report to your Slack DMs.

4k tokens
App Store Optimization
by alirezarezvani
×3

Complete App Store Optimization (ASO) toolkit for researching, optimizing, and tracking mobile app performance on Apple App Store and Google Play Store

55k tokens scripts
Deeptools
by christophacham
×3

NGS analysis toolkit. BAM to bigWig conversion, QC (correlation, PCA, fingerprints), heatmaps/profiles (TSS, peaks), for ChIP-seq, RNA-seq, ATAC-seq visualization.

21k tokens scripts
Pymatgen
by christophacham
×3

Materials science toolkit. Crystal structures (CIF, POSCAR), phase diagrams, band structure, DOS, Materials Project integration, format conversion, for computational materials science.

26k tokens scripts
Enhance Prompt
by google-labs-code
vendor ×2

Transforms vague UI ideas into polished, Stitch-optimized prompts. Enhances specificity, adds UI/UX keywords, injects design system context, and structures output for better generation results.

3k tokens

How to use it

Copy the folder

Take affitor/content-decay-detector from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.