Seo gsc content decay
Skill lionkiii/claude-seo-skills/skills/seo-gsc-content-decay
Detect content decay by identifying pages that are losing both clicks and impressions over a 90-day comparison window in Google Search Console. Surfaces pages with true long-term decline (not seasonal variation) and assigns decay severity ratings. Use when user says "content decay", "declining pages", "losing rankings", "pages losing traffic over time", or "90 day decline".From its SKILL.md
npx -y skills add lionkiii/claude-seo-skills --skill seo-gsc-content-decayAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 20 stars20 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
- runs commandsInstructs the agent to run 5 commands, including `currentEnd=$(date -v-3d +%Y-%m-%d)` and 4 more.
SKILL.md
5.2 KB, ~1.2k tokens by cl100k_base, as published. Nobody here has run it
GSC Content Decay — 90-Day Decline Detection
@skills/seo/references/mcp-degradation.md @skills/seo/references/gsc-api-reference.md
Identifies pages experiencing true content decay: both clicks AND impressions declining over a 90-day comparison period. Filters out seasonal variation by requiring both metrics to decline simultaneously.
MCP Check
Before calling any GSC tool, verify the MCP is connected:
- Use ToolSearch with query
+google-search-console - If tools returned — note the actual tool name prefix, proceed to Inputs
- If no tools returned — display the GSC MCP error template from
references/mcp-degradation.mdand stop:
## Google Search Console MCP Not Available
The `/seo gsc content-decay` command requires the GSC MCP, which is not currently connected.
**What you can do:**
- Use `/seo technical <url>` for crawlability and indexability analysis (no live data)
- Use `/seo audit <url>` for a full static SEO audit
**To connect GSC MCP:**
- Install and configure a Google Search Console MCP server (see README for setup)
- Add it to ~/.claude/mcp.json at user scope (NOT project scope)
- Verify GSC property access before running commands (domain vs URL prefix format)
- See references/gsc-api-reference.md for property format details
Inputs
site: The GSC property URL. Accept both formats:- Domain property:
sc-domain:example.com - URL prefix:
https://example.comorhttps://www.example.com - If user provides a bare domain (no prefix), call
list_sitesto identify the correct property format registered in GSC.
- Domain property:
Date Calculation
Use Bash to calculate 90-day comparison windows (GSC has ~3 day delay):
currentEnd=$(date -v-3d +%Y-%m-%d)
currentStart=$(date -v-93d +%Y-%m-%d)
previousEnd=$(date -v-93d +%Y-%m-%d)
previousStart=$(date -v-183d +%Y-%m-%d)
echo "Current: $currentStart to $currentEnd | Previous: $previousStart to $previousEnd"
Execution
Call compare_performance with 90-day window:
siteUrl: the site propertycurrentStartDate: currentStartcurrentEndDate: currentEndpreviousStartDate: previousStartpreviousEndDate: previousEnddimension:"page"limit: 1000
Post-processing — identify true decay: Filter results to rows where BOTH conditions are true:
clicksChange < 0(clicks declined)- Impressions declined (if
impressionsChangefield available, checkimpressionsChange < 0; if not available, use the presence of lower current impressions vs previous)
This double-filter removes pages that lost clicks but maintained/grew impressions (which often indicates seasonal or competitor CTR changes, not content decay).
Sort by clicksChangePercent ascending (most severe decay first).
Calculate decay severity:
For each decaying page, compute click change percentage if not provided:
changePercent = abs(clicksChange / previousClicks) * 100
Severity classification:
changePercent > 50: CRITICALchangePercent >= 30 and <= 50: HIGHchangePercent >= 10 and < 30: MEDIUM
Recommendation per page based on position change:
- Position declined significantly (positionChange > 5): "Review competitor content — rankings lost"
- Position stable but impressions fell: "Check for technical issues — may have indexing problems"
- Position slightly declined (positionChange 1-5): "Update and refresh content to regain relevance"
- Position improved but clicks fell: "Review search intent — content may no longer match query intent"
CTR display rule: API returns CTR as decimal — multiply by 100 for display.
Output Format
## GSC Content Decay: [site property]
**Current Period:** [currentStart] to [currentEnd] (90 days)
**Previous Period:** [previousStart] to [previousEnd] (90 days)
**Decay pages found:** [count]
### Content Decay Report
| Decay Severity | URL | Current Clicks | Previous Clicks | Change% | Curr Position | Prev Position | Pos Change | Action |
|----------------|-----|---------------|-----------------|---------|---------------|---------------|------------|--------|
| CRITICAL | [url] | [n] | [n] | -X.X% | [X.X] | [X.X] | ↑/↓ X.X | [action] |
| HIGH | [url] | [n] | [n] | -X.X% | [X.X] | [X.X] | ↑/↓ X.X | [action] |
| MEDIUM | [url] | [n] | [n] | -X.X% | [X.X] | [X.X] | ↑/↓ X.X | [action] |
...
### Summary by Severity
| Severity | Pages | Avg Click Loss |
|----------|-------|----------------|
| CRITICAL (>50% drop) | [n] | [X.X%] |
| HIGH (30-50% drop) | [n] | [X.X%] |
| MEDIUM (10-30% drop) | [n] | [X.X%] |
Truncate long URLs to 60 characters with ... for readability.
If no decay pages found, report: "No content decay detected. No pages show simultaneous
decline in both clicks and impressions over the 90-day comparison period."
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.
Gives 0 of the 12 instructions most marketing audience skills give in ~1.2k tokens
Counted across 690 of the 894 authors here whose files we hold, read 2026-08-07
- Apply Poppins font to headingsin 41 of 690, across 6 files
- Apply Lora font to body textin 41 of 690, across 6 files
- Use Arial fallback for headingsin 39 of 690, across 4 files
- Use Georgia fallback for body textin 39 of 690, across 4 files
- Maintain text hierarchy and formattingin 39 of 690, across 4 files
- Use accent colors for non-text shapesin 38 of 690, across 3 files
- Use RGB values for precise color matchingin 38 of 690, across 3 files
- Use brand colors for primary text and backgroundsin 36 of 690, across 1 file
- Read product marketing context file before asking questions, starting, or auditingin 35 of 690, across 23 files
- Use active voice instead of passive voicein 26 of 690, across 10 files
- Implement or generate appropriate JSON-LD structured datain 24 of 690, across 17 files
- Prioritize clarity over clevernessin 22 of 690, across 8 files
Said here and by no other author read
- identify correct property format for bare domains
- multiply ctr decimal by 100 for display
- Truncate long URLs to 60 characters
- Verify the GSC MCP is connected
- Calculate 90-day comparison windows
- Filter results for declining clicks and impressions
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.