content-decay
Skill0 starsChanged 21 days agoMITView on GitHub
Find, triage, and build recovery plans for decaying content in Google Search Console using the GSC Wizard MCP tools (get_decay_overview, find_decaying_content, per-page drill-downs, optional traffic forecast). Use when the user asks about decaying content, pages losing traffic, content refresh candidates, which pages are dying, declining organic clicks, or wants a content refresh or recovery plan.
1 other project uses a version of this.
Adopted by
Most recently taken up by
- DarynaRodriguez/seo-skillstheir own version, first seen Aug 27, 2026
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 1
- DarynaRodriguez/seo-skills★ 1same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository33 other files it gives its agents.
- ai-assistant-trafficSkill
- anomaly-checkSkill
- bing-crawl-healthSkill
- bing-performanceSkill
- branded-splitSkill
- cannibalizationSkill
- client-reportSkill
- content-groupsSkill
- core-web-vitalsSkill
- country-deviceSkill
- ctr-optimizationSkill
- experiment-resultsSkill
- ga4-overviewSkill
- indexing-healthSkill
- indexing-trackerSkill
- indexnow-submitSkill
- long-tail-analysisSkill
- merchant-center-healthSkill
- onpage-auditSkill
- page-deep-diveSkill
- portfolio-overviewSkill
- property-setupSkill
- query-deep-diveSkill
- quick-winsSkill
- ranking-changesSkill
- shopping-performanceSkill
- site-auditSkill
- sitemap-auditSkill
- site-migrationSkill
- traffic-dropSkill
- traffic-forecastSkill
- weekly-reportSkill
- yandex-performanceSkill
The file
We split this skill into the rules it gives an agent
9 rules. About 0 are common, 2 are distinctive, and 7 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
7
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 12
Resolve the property: If the user's request or the conversation names a property, use it as siteUrl (GSC formats: sc-domain:example.com or …
- Very specific: line 14
Aggregate trend:
get_decay_overview: Call it with dimension: "page", metric: "clicks", and the default granularity (month) and window … - Distinctive: line 15
Read the per-period TOTALS to describe the site-wide trajectory: steadily declining, seasonal dip, cliff after a specific month, or flat.
- Very specific: line 16
If a sharp cliff is visible, note the month.
- Very specific: line 17
Check the response dataSource.
- Very specific: line 19
Ranked decliners:
find_decaying_content: Call with dimension: "page". - Distinctive: line 49
Default date logic: last 28 days vs the previous period unless the user says otherwise.
- Very specific: line 54
Do not fabricate rows the tools did not return.
- Very specific: line 55
If a tool call fails with an authentication or subscription error, tell the user to run /mcp to (re)authenticate, and that a GSC Wizard …
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Content Decay Triage
Identify which content is losing search traffic, diagnose why per page, and produce a concrete recovery plan. The user's request may contain a property (e.g. sc-domain:example.com) and/or a focus hint such as a URL path, a topic, or a custom date range; honor it if present.
Workflow
- Resolve the property. If the user's request or the conversation names a property, use it as
siteUrl(GSC formats:sc-domain:example.comorhttps://www.example.com/). Otherwise calllist_sitesand pick the match; if several sites plausibly match, ask the user which one before proceeding. - Aggregate trend:
get_decay_overview. Call it withdimension: "page",metric: "clicks", and the default granularity (month) and window (last 16 complete months) unless the user specified a range.- Read the per-period TOTALS to describe the site-wide trajectory: steadily declining, seasonal dip, cliff after a specific month, or flat.
- If a sharp cliff is visible, note the month; you may optionally call
detect_change_pointsto pin down the exact date and cross-referencelist_algo_updatesfor a coinciding Google update. - Check the response
dataSource; if history looks short, mention whether data came from the warehouse or the live API.
- Ranked decliners:
find_decaying_content. Call withdimension: "page".- Period semantics:
startDate/endDateis the RECENT period;comparisonStartDate/comparisonEndDateis the earlier BASELINE. - Defaults (last 28 days vs the previous period) are fine unless the user asked for something else, but for slow decay a wider gap is more revealing, e.g. recent 28 days vs the same-length window 6-12 months earlier, guided by where the overview showed the peak.
- Results are bucketed by click loss: severe (> 50%), moderate (20-50%), mild (< 20%).
- Present the top decliners as a compact markdown table: page, baseline clicks, recent clicks, change %, severity, position change.
- Period semantics:
- Drill into the worst 5-10 pages. Pick by absolute clicks lost, not percentage alone (a 60% drop on 5 clicks matters less than a 25% drop on 5,000). For each page:
get_page_performancewith the fullpageUrland a window covering both periods: read the shape of the decline (gradual erosion vs step change) and which metric moved first (position, impressions, or CTR).query_search_analyticstwice, filtered to the page, to find which queries drove the loss:dimensions: ["query"],filters: [{ dimension: "page", operator: "equals", expression: "<pageUrl>" }]- one call for the recent period, one for the baseline period; diff the two result sets per query.
- Classify the loss pattern:
- position slipped on the same queries: content freshness or competition;
- impressions collapsed: demand drop, deindexing, or cannibalization;
- CTR fell at stable position: SERP feature or title/snippet problem;
- or the page lost a single dominant query.
- Optional: quantify the cost with
forecast_traffic. If the user wants to know what continued decay costs, call it for the property withmetric: "clicks"; if the user supplies a conversion rate or average order value, pass them ascvr(decimal, e.g. 0.025) andaovto derive revenue. Contrast the projected trajectory with the baseline-period run rate. Frame it as an estimate. Output a recovery plan. Per triaged page, recommend exactly one primary action with a one-line justification tied to the diagnosis:
- Refresh: position slipping on still-valuable queries; update content, add current data, improve depth.
- Consolidate: several decaying pages split the same query set; merge into the strongest URL and redirect.
- Retarget: the page ranks for queries with drifting intent; rewrite for what the queries now mean.
- Improve internal links: gradual position erosion with thin internal linking; add contextual links from strong pages.
- Retire: demand is gone (impressions collapsed across all queries); prune or redirect, reclaim crawl budget.
End with a short prioritized list of concrete recommendations (highest clicks-at-stake first).
Conventions
- Default date logic: last 28 days vs the previous period unless the user says otherwise; decay-specific defaults above take precedence where noted.
- GSC data lags about 2 to 3 days. Never treat the most recent 2 days as complete; if a dip appears at the right edge of a chart or range, say explicitly that it is likely the reporting lag, not real decay.
ctrvalues are already percentages on a 0-100 scale. Never multiply them by 100.position: lower is better. A move toward a lower number is an improvement; call position increases "slipped" or "lost rank".- Present multi-row results as compact markdown tables; keep prose for interpretation, and keep tables to the columns that matter (page/query, clicks before/after, change %, position before/after).
- Do not fabricate rows the tools did not return. If
find_decaying_contentreturns nothing above the threshold, say the property shows no meaningful decay and stop after step 3. - If a tool call fails with an authentication or subscription error, tell the user to run
/mcpto (re)authenticate, and that a GSC Wizard account with an active plan or trial plus a connected Google Search Console account is required.
Grounding
Every number you report must name the tool it came from and the date range it covers, for example "clicks 12,340 (get_site_summary, 2026-09-21 to 2026-09-27)". For a table, state the tool and date range once on the line above it. If you derive a figure yourself (a delta, a sum, a share), say so and name the tool outputs it was computed from. Never report a number no tool returned.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

