Free SEO tool. Search Console data

Content Decay Finder: Free, Runs in Your Browser

Upload the Pages export from a Search Console date comparison. The finder ranks every page by clicks lost and tells you why each one lost them: it slipped in the rankings, fewer people searched, fewer searchers clicked, or it’s just the season.

4 causesRanking, demand, CTR or season, plus pages that dropped out
Clicks lostEvery page ranked by what it actually lost
CSV, zip or xlsxSearch Console’s export as it downloads
0 uploadsEverything runs in this browser tab

Privacy: nothing you paste or upload leaves your device. The file is read and processed by JavaScript in this browser tab. Nothing is sent to a server or saved.

Search Console will show you which pages lost clicks. It won’t tell you why, and the why decides the fix. A page that slipped five places needs a rewrite. A page whose searches dried up doesn’t, and rewriting it wastes a week. This content decay tool reads the comparison export, sorts each loss into a cause and builds the refresh list in that order. It’s built on the period comparison from 7 Search Console reports most marketers never open, so read that if you haven’t used Compare before.

1. Your Search Console export

How did you export?

Seasonal check (optional): add the same window last year

Without it, a page that lost searches is marked Demand drop. With it, the finder checks last year: if clicks match the same window then, it’s marked Seasonal.

2. Settings

Pages below this are skipped. A drop from 6 clicks to 2 is noise.

A page is decaying when it loses at least this share of its clicks. Also the line for impressions falling.

Measured against where the page was, and never less than half a place. 4.0 to 4.6 counts at 15%.

Three rules before you trust any comparison

  1. Never subtract one date range from another to get a third. Search Console totals don’t add up that way. Export every period you need directly.
  2. Compare like with like: the same number of days, the same filters, and the same window last year if your business has seasons.
  3. Recent days are provisional. The newest data can still change, so end custom ranges 2 or 3 days back.

A cause is a strong hint, and you still need to look at the page and its results. For the wider Search Console routine this comparison sits in, see the 7 reports guide. If many pages dropped out at once after a relaunch, go straight to the redesign recovery plan.

Quick answer

This content decay tool reads a Search Console Pages export that compares two date ranges, works out each page’s change in clicks, impressions and position, and labels why it lost clicks: ranking loss, demand drop, CTR loss, or seasonal when you add last year’s numbers. Then it ranks pages by clicks lost and builds a refresh priority list with the fix for each cause. Use it when you’re deciding which old pages to update first, whether you own the site, run its content or handle its SEO. It runs in your browser, with no account to connect.

How to Use the Content Decay Finder

Six steps. The export is the only part that takes care, because a sloppy date range produces a confident list of the wrong pages.

1

Set two date ranges in the Performance report

In Search Console, open Performance, then Search results. Click the date filter, choose the Compare tab and pick two ranges of the same length, such as the last 3 months against the previous 3 months. Click Apply.

2

Export the comparison

Click Export at the top right and choose CSV, Excel or Google Sheets. The CSV option downloads a zip with one file per tab, Pages.csv among them. Upload the zip or the Excel file as it is, and the finder picks out the Pages table.

3

Load it into the finder

Upload the file or paste the Pages rows. Columns are matched by name, so Top pages, Last 3 months Clicks, Previous 3 months Clicks and the rest are picked up on their own. Exported each period separately? Choose Two separate exports and add one file per period.

4

Add last year for the seasonal check

This step is optional but worth two minutes. Export your recent range compared with the same range a year earlier and add it under Seasonal check. Pages that lost searches but match last year’s clicks get marked Seasonal instead of Demand drop.

5

Set the minimum and run it

Pages with fewer than 10 clicks in the earlier period are skipped by default. Raise that to 50 or 100 on a big site so the list only holds pages worth a morning. Then click Find decaying pages.

6

Work the priority list from the top

Pages that dropped out, lost rankings or lost their click-through rate come first, biggest loss first. Demand drops follow, and seasonal dips are left out. Download the CSV to keep the full list or hand it to whoever does the rewrites.

Getting the export right

Route 1: one Compare export (recommended)

With Compare on, every metric gets two columns, one per range, each named after its range. A real Pages export with the 6 month preset has these headers: Top pages, Last 6 months Clicks, Previous 6 months Clicks, Last 6 months Impressions, Previous 6 months Impressions, Last 6 months CTR, Previous 6 months CTR, Last 6 months Position, Previous 6 months Position. The finder reads any label in front of Clicks, Impressions, CTR and Position, works out which range is newer from the words or the dates in it, and tells you which way round it read them. Guessed wrong? Tick Swap periods.

The Excel download keeps CTR as a fraction (0.0142), while the CSV writes it as a percentage (1.42%). Both are read correctly. So are numbers with thousands separators like 1,234.

Sources: Google’s help on filtering and comparing in the Performance report (Compare, and the Difference column it adds) and on exporting report data (Google Sheets, Excel or CSV, up to 1,000 rows). The zip of CSV files, one per tab plus a Filters file, is described in Google’s data export announcement.

Route 2: two separate exports

  1. Set the earlier date range with Compare off and export it. The Pages headers are Top pages, Clicks, Impressions, CTR, Position.
  2. Change only the dates, keep every filter the same, and export again.
  3. Choose Two separate exports in the finder, then add the older file to Earlier period and the newer one to Recent period.

The finder joins the two files by URL. With loose matching on, it ignores http and https, www, a trailing slash and #fragments, so https://www.example.com/a/ and https://example.com/a count as one page. It can’t see your dates in this route, though. Checking that both windows are the same length is on you.

Route 3: the seasonal check

Compare your recent range with the same range a year earlier and export the Pages table. Search Console keeps 16 months of data, so a year over year comparison works for windows up to about 4 months long. Prefer to export last year’s window on its own? A plain export works too.

Source: Google’s note that Search Console keeps data for the last 16 months.

How to Read the Results

The summary gives the before and after click totals, how many pages are decaying and how many were skipped. Below it, five cards split the lost clicks by cause, and you can click one to filter the table. Then come the priority list and the full table.

A page counts as decaying when it had at least the minimum clicks before and lost at least 15% of them. Anything smaller is treated as noise and labelled Stable. The table is sorted by clicks change, biggest loss first, and you can sort on every column header.

What each cause means and what to do

Ranking loss

The average position slipped by 15% or more of where it was (and at least half a place), and impressions usually fall with it. Someone now answers the query better, or another of your pages took over. Compare your page with what outranks it, update it, and add internal links. Suspect your own pages are splitting the query? Run the keyword cannibalization checker.

CTR loss

Position held, and impressions held or grew. Yet clicks fell. Something on the results page is taking the click: an AI Overview, a featured snippet, a video block, shopping results. So search the query and look. Then rewrite the title and description for that page as the results look today, and run the title tag truncation checker to make sure your title isn’t being cut off.

Demand drop

Position held but impressions fell by 15% or more, and most of the lost clicks are explained by the lost impressions. Fewer people searched. A rewrite won’t bring them back, so check last year and the query’s trend first. If the demand is gone for good, merge the page into a stronger one or retarget it.

Seasonal

A demand drop whose recent clicks are within 15% of the same window last year. It’s the calendar. Leave the page alone, and refresh it a few weeks before its next peak so the update has time to be crawled.

Dropped out

Impressions went to zero, or the page vanished from the recent export. That’s usually technical. Check the URL in URL Inspection for a 404, a stray noindex, a redirect or a canonical pointing elsewhere. And if the recent export hit 1,000 rows, the page may simply have slipped below the cut.

Stable, growing, new

Pages that moved less than 15%, gained clicks, or had none before. You’ll still find them in the CSV and the All pages view, so the totals reconcile. They just stay off the refresh list.

How the finder separates demand from CTR

When the position held, the finder asks one question: if the page had kept its old click-through rate, how many clicks would its new impressions have brought? The gap between the old clicks and that number is the loss from fewer searches. Whatever’s left, down to the actual clicks, is the loss from fewer people clicking. The bigger part names the cause, and the reason column tells you when the other part was big too.

The refresh priority list then sorts by what you can act on. Pages that dropped out, lost rankings or lost CTR come first, ordered by clicks lost, and demand drops come next. Seasonal pages get a priority number in the table but stay off the list. Nothing you do this month changes them.

Worked example: the sample data

Click Load sample data and you’ll get a made-up shop, Acme Kitchen, on example.com: 20 pages, last 3 months against the previous 3, plus a year over year export for 6 of them. Clicks went from 9,355 to 5,724. Thirteen pages lost 15% or more, 4,366 clicks between them.

Sort by clicks lost alone and the homemade ice cream recipes post tops the list, down 1,330 clicks. Its impressions fell 91% while its position barely moved, 3.6 to 3.9. But the seasonal export shows 140 clicks for the same window last year against 130 now. Seasonal. The sourdough starter post is the same story, 3% above last year. Between them, those two pages hold 1,750 of the 4,366 lost clicks (40% of the drop), and neither needs a single edit.

So the priority list starts somewhere else. The best chef knives post held position (3.0 to 3.2) and gained 4% impressions, yet its CTR fell from 2.54% to 1.11%. That’s a CTR loss, so you’d search the query and see what’s sitting above it now. Second is the cast iron seasoning guide, which slid from 4.1 to 8.9 and lost 23% of its impressions. It’s a real ranking loss, the biggest in the sample, and the page that most needs a proper rewrite. Third, the Dutch oven product page went from 9,800 impressions to none. Check that URL before anything else.

Two rows deserve a second look. The kitchen scale guide is marked Ranking loss (7.5 to 14.2), but its impressions grew 150%, so the finder warns that new low-ranking impressions may be dragging the average down. That pattern is covered in why average position drops while clicks don’t. Then there’s the air fryer chart, a demand drop that isn’t seasonal: impressions down 61% and clicks 62% below last year too. Fewer people want that chart. Fold it into something bigger, or leave it.

Before You Trust a Drop

Most bad decay lists come from bad comparisons, not bad pages. Four checks catch nearly all of them.

  • Never subtract one date range from another. Search Console totals aren’t additive, so a period worked out by subtraction can be badly wrong. In a client report described in the impression dilution post, subtracting the second half of a month from the whole month gave 225 impressions for the first half. Pulling the first half directly gave 609. So export every period you compare.
  • Compare like with like. Same number of days, same filters, same search type. Google’s own help suggests weekly or monthly granularity when you compare ranges, which cancels out the day-of-the-week effect. And if your business has seasons, the year over year export is the only fair comparison.
  • Leave out the newest days. Google labels the newest data as preliminary: it’s still being collected and might change. Google’s announcement of the 24 hours view says Search Console shows data points before it has finished collecting them. End custom ranges 2 or 3 days back.
  • Know what the export leaves out. The interface export stops at 1,000 rows, and page rows won’t add up to the property total because Search Console counts the chart by property and the table by page. If you pull through the API instead, top-rows pulls can drop pages and queries that are still ranking: why the Search Console API misses keywords shows how to check.

One more trap. When dozens of pages drop out in the same week, look for a release, a migration or a template change first. Use the six real causes of a ranking drop as the checklist for that.

Limits of This Finder

  • It works at page level. A page can lose its main query and gain three small ones, and the page totals hide that. So open the page in Search Console and check the Queries tab before you rewrite it.
  • Average position is an average. It’s weighted by impressions, so new deep impressions can pull it down while every real ranking holds. The finder flags the obvious cases, where impressions rose 15% or more alongside a slip. Subtler ones get through.
  • CTR loss is a symptom. The finder can’t see the results page, so it can’t tell you whether an AI Overview, a snippet or a competitor’s better title took the click. You’ll have to search and look.
  • Seasonal needs last year’s data. Without the seasonal export, a seasonal dip is marked Demand drop with a note. The check only covers pages that appear in both files.
  • The thresholds are judgment calls. 15% for clicks, impressions and position is a starting line, since Google doesn’t publish one. Move them and watch how your list changes.
  • The 1,000 row cap. On a big site the export is the top 1,000 pages, so smaller pages are missing and one that slipped below the cut can look like it dropped out.
  • Different date labels. The headers above come from a real English export. Other interface languages and custom date labels haven’t all been tested. If the finder can’t tell which range is newer, it says so and falls back to column order. Swap periods fixes it.

If the finder says CTR loss on pages that sit in the top 3, the CTR gap estimator shows how far below a typical click-through rate they are. And winning SERP features when position one isn’t the top covers what to do about the blocks above you.

Content Decay Finder FAQ

What is content decay?

Content decay is a page losing organic clicks over months after it peaked. The cause varies: competitors overtake it, people stop searching for the topic, or the results page changes so fewer searchers click. Each cause needs a different fix, which is why this tool labels them.

How do I find pages losing traffic in Search Console?

Open Performance, choose Compare in the date filter and pick two ranges of the same length. Then open the Pages tab and sort by the clicks difference. To get the cause for every page at once, export the comparison and upload it here.

Is this content decay tool free?

Yes. There’s no signup and no Search Console connection. It runs in your browser, so your export never reaches a server, and the CSV download is generated on your device.

Can I subtract one date range from another to get the period in between?

No. Search Console totals don’t add up across ranges, so a subtracted period can be far off. In one example on this site, subtraction gave 225 impressions and a direct pull for the same days gave 609. Export each period directly.

Which date ranges should I compare?

Two ranges of the same length with the same filters. The last 3 months against the previous 3 is a good default for decay. If your traffic is seasonal, compare the same window against last year as well. End custom ranges 2 or 3 days back, because the newest data is preliminary.

Why does a page show CTR loss when its ranking didn’t change?

Because the clicks fell while position and impressions held. Something on the results page is taking the click, often an AI Overview, a featured snippet, videos or shopping results. Search the query to see what changed, then rewrite the title and description for the page as it looks now.

How does the tool decide a drop is seasonal?

Only when you add a year over year export. A page whose impressions fell at a steady position is first marked Demand drop. If its recent clicks are within 15% of the same window last year, it becomes Seasonal and drops off the refresh list.

Should I refresh every page that lost clicks?

No. Refresh pages that lost rankings or clicks first, and check pages that dropped out for a technical cause before touching their content. Leave seasonal dips alone. For real demand drops, merge or retarget the page instead of rewriting it.

Got a long decay list and no one to work it?

Refreshing, merging and retargeting old pages is often the quickest organic win a site has. The content service starts from a list like this one and turns it into rewrites, merges and redirects, in order.

See content refresh and consolidation
RS

Built by Ram Kr Shukla

SEO and growth consultant. 20+ years in SEO and growth, 50+ brands across marketplaces, travel, BFSI and e-commerce. Google Analytics and Google Ads certified, and works daily in Search Console, Ahrefs, Semrush and Screaming Frog.