Install
$ agentstack add skill-lionkiii-claude-seo-skills-seo-gsc-content-decay ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
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.md and 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 ` for crawlability and indexability analysis (no live data)
- Use `/seo audit ` 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.
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 50: CRITICAL
- `changePercent >= 30 and = 10 and 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."
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: lionkiii
- Source: lionkiii/claude-seo-skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.