Static SEO triage · 56-day upload-only analysis

Search Console Decay Radar

Upload one Google Search Console page-performance CSV, compare the last 28 days against the previous 28 days, and turn page-level loss into a ranked content refresh queue. No OAuth. No backend. No black box.

1. Upload a page export

Accepted logical columns: date, page, clicks, impressions, CTR, and position. Header aliases are normalized, and CTR is recalculated from clicks and impressions.

Upload GSC page CSV The file must cover both 28-day windows. Rows missing date, page, clicks, impressions, or position are excluded.
No CSV loaded yet.
What this is good for
A weekly refresh queue for pages losing clicks, visibility, or snippet efficiency.
What this does not claim
No technical SEO diagnosis, no query-level attribution, and no content rewriting.

2. Coverage summary

The tool ranks only eligible URLs. Stable, new, or low-sample pages stay in the coverage summary but not the refresh queue.

Parsed rows
0
All non-empty CSV rows after the header.
Valid rows used
0
Rows that passed required-field parsing.
Unique URLs
0
Distinct pages found in the upload.
Ranked URLs
0
Pages that qualify for scoring.
Excluded URLs
0
New pages, stable pages, or low-sample pages.
Analysis windows
Previous 28 days versus recent 28 days.
Coverage breakdown
  • Upload a CSV to view exclusions and window coverage.
Warnings
  • Uploaded CSV may be partial due to GSC export row limits.
3. How Decay score works
The score is intentionally transparent. It combines relative click loss, absolute click loss, impression decline, CTR decline, and ranking deterioration. Recent versus previous windows are fixed at 28 days each.
rawScore = 35 × clickLossRate + 25 × absoluteClickLossRate + 15 × impressionLossRate + 15 × ctrLossRate + 10 × positionWorseningRate decayScore = round(rawScore)
Reason tags and refresh actions
  • possible-deindex → Check indexing, canonicals, robots, and recent template changes before refreshing content.
  • rank-down → Refresh headings, examples, and internal links to better match current search intent.
  • ctr-down → Rewrite title and meta description, tighten the intro, and improve snippet clarity.
  • demand-down → Update stale sections, dates, examples, and external references to restore freshness.
  • mixed-decay → Run a full refresh: improve intent coverage, update facts, and rework snippet hooks.

4. Ranked content refresh queue

Default sort follows the scoring contract. Click any column header to change the client-side sort.
No ranked output yet
Load the sample fixture or upload your own GSC export to compute a deterministic decay queue.