Content Decay Analyser
Use cases
Identifies months with sufficient data coverage by comparing actual vs expected days.
Groups clicks by page and month.
Peak = maximum clicks across analysed months.
Clicks Lost = latest month - peak month (negative = decay).
OpenPyXL Excel with conditional formatting, hyperlinked URLs, customisable peak highlight colour.
Platform
Browser-based (no installation required)
Input
GSC export CSV with dates
UTF-8 or Latin-1 encoding supported
Output
Excel: styled workbook with hyperlinked URLs, peak month highlighted, clicks lost calculated. Info sheet included. CSV export option.
Features
- Complete month detection (actual vs expected days)
- Peak month calculation per page
- Clicks lost: latest - peak (negative = decay)
- Months to analyse slider (3-24, default 12)
- Minimum peak clicks threshold (0-10,000)
- OpenPyXL Excel with hyperlinks and conditional formatting
How to use
- 1 Export GSC data as CSV
- 2 Upload to the tool
- 3 Set months to analyse (3-24)
- 4 Set minimum peak clicks threshold
- 5 Choose peak highlight colour
- 6 Download styled Excel or CSV
Frequently asked questions
- What data do I need, and will a standard GSC export work?
- You need daily page-level rows with date, page and clicks columns. The standard Search Console UI Pages export will not work because it has no date column; use the GSC API or a connector export that includes both the date and page dimensions. Column names are mapped via dropdowns (defaults: date, page, clicks), and a query column is fine to leave in since clicks are summed per page and month.
- What counts as a 'complete month'?
- A month is complete when your data's date span covers every day of that month; incomplete months, typically the current one, are excluded. The tool then analyses the most recent 3 to 24 complete months (default 12), and 'latest month' in the Clicks Lost calculation means the last complete month, not today.
- Why do some of my pages not appear in the results?
- Only decaying pages are kept: a page must have negative Clicks Lost (latest complete month below its peak month) and a peak of at least the minimum peak clicks setting (default 10). Pages that are flat, growing, or peaked in the latest month are excluded by design, so the report is a fix-list, not a full inventory.
- Does it distinguish genuine decay from seasonality?
- No. Clicks Lost is a single comparison of the latest complete month against the peak month, so a seasonal page examined outside its season will look like it is decaying. The per-month columns in the output show the full pattern, so check whether the peak is an annual spike before scheduling a rewrite.
- How are months with no data for a page handled?
- Missing page-month combinations are filled with zero clicks. That means a page that only started getting traffic recently still shows a full row of months, and a page that disappeared from search shows zeros in recent months rather than being dropped.
Want me to run this for you?
I run this tool as a managed service, or build something custom around your data. You get the insights without touching the code.
Related Tools
Scrape Google Search Status page for algorithm update history.
Parse ValueSERP batch JSON exports and report your domain's organic appearances.
Forecast search trends using NeuralProphet ML.
Generate BCG matrix visualisations from GA landing page reports with cascading folder analysis.
Capture screenshots at GA visitor resolutions using Pyppeteer async browser automation.
Calculate Return on Ad Spend from revenue and ad costs.
Need something built for your business?
This tool started as bespoke client work. I build custom scripts, data pipelines, and full apps for SEO and product data problems that off-the-shelf tools don't solve.
Tell Me What You Need