The story of our complacency, how we almost gave up, and recovery that took 4 months!
On 28 September 2026, a site we had nearly given up on picked up 9,064 clicks from Google in a single day. A week earlier it was scraping along at roughly 300.
I refreshed Search Console about four times before I believed it. Then I scrolled back through the last nine months, because that number only makes sense once you know how we lost it in the first place.
This is that story: how we built a site, watched it climb to nearly 10,000 organic clicks a day, ignored the early warning signs, got flattened by three Google updates, spent a quiet summer fixing what we had broken, and came back the week Google rolled out its next update.
The launch, and a January we didn’t see coming
In December 2025, my team launched a new content site in the education space. It was a companion to an existing product of ours, and the idea was simple: take a library of study resources that used to sit behind a paywall and open them up for anyone to read.
Everything was organised the way our audience searches. Resources were grouped by class, then subject, then term, which gave us a clean, predictable URL architecture. Readers could read every page in full, but the content was copy-protected. If they wanted a downloadable copy, the download button sent them to our paid storefront. Free to read a section of it, paid to keep and see a full version.
We published more than 2,000 of these resources in the first few weeks, and Google liked them a lot. By January, daily clicks were in the 8,000 to 9,000 range. On Monday 19 January we hit our high-water mark: 9,980 clicks from 165,463 impressions in a single day.
The peak: 9,980 clicks on 19 January. Notice everything that happens to the right of it.
For a site barely a month old, that felt unreal. It also made us a little complacent.
February: the dip we explained away
In February, clicks started sliding. We weren’t worried. Our niche is seasonal, and we fully expected demand to cool between February and late March before picking up again in April. A dip was in the plan.
So we filed it under seasonality and kept going. That was our first mistake, and the most expensive one in this whole story. Seasonality was real, but it was also a very comfortable explanation. It meant we didn’t have to go looking for anything else.
Then March arrived with two Google updates in quick succession: the March 2026 spam update (24 to 25 March), followed three days later by the March 2026 core update, which rolled out from 27 March to 8 April. Our traffic didn’t just dip any more. It sagged and kept sagging.
There was a brief rally in late April and May, which fooled us a second time. Then the May 2026 core update started on 21 May, and by early June the line on our Search Console chart was lying almost flat on the floor. A site that had done nearly 10,000 clicks a day was now doing a few hundred, and almost all of those were branded searches: people typing our name. For every non-branded query we used to rank for, Google had stopped showing us at all.
The only thing keeping it alive was people who already knew us. They searched for us by name, kept reading, kept buying. Google, on the other hand, had more or less stopped sending anyone.
What was actually wrong
When we finally stopped blaming the calendar and looked properly, the first clue came from Search Console: the number of discovered URLs was far bigger than the number of pages we had ever published.
So we crawled the site with Screaming Frog. We expected a little under 4,000 URLs. We found more than 12,000 indexable ones.
The culprit was our own tooling. The site ran on WordPress, and we had built a custom uploader to push content in bulk. Somewhere along the way, that uploader started generating three or four different URLs for every single page. Each new upload spun up a fresh batch of near-identical copies.
Worse, the clean URL architecture we had designed at the start wasn’t being used at all. If you visited one of those “proper” URLs, you’d get a 404 or an empty page. The versions Google was actually crawling and ranking were the accidental ones.
From Google’s side, the picture must have looked messy: thousands of duplicate pages competing with each other, internal links pointing at the wrong versions, and a site that seemed to be multiplying faster than it was publishing. The updates in March and May didn’t create that problem. They exposed it.
The fix, and a very quiet summer
Once we knew what was wrong, the fix was not glamorous. It was a long list of unglamorous jobs:
- Make the correct URLs the only ones that matter. We repaired the original URL architecture so every page lived at the address we had designed for it, and pointed all internal links there.
- Cut the duplicates loose. The URLs the uploader had spun up were removed and no longer linked from anywhere. We didn’t redirect them. The site was young, those URLs had earned almost no backlinks, and we decided a clean break was better than thousands of redirects. That is why Search Console still shows around 3,000 pages as “Not found (404)”. That number is a scar from the clean-up, not a new wound.
- Tidy up the technical basics. We worked on performance and Core Web Vitals while we were in there.
- Keep publishing. We never paused content uploads. Not once.
We finished the bulk of this work around July. Then we waited.
The indexing report after the clean-up. The 3,026 404s are the duplicate URLs we deliberately let go.
The clearest sign that Google was noticing came from the “Crawled – currently not indexed” report. On 10 July it listed 4,878 affected pages. Week by week it stepped down: under 3,000 by mid-August, under 2,000 by late August, and 885 by late September.
Crawled – currently not indexed: from 4,878 pages on 10 July down to 885.
Here’s the funny part. When we asked Search Console to validate the fix in early August, validation failed (started 3 August, failed 5 August). If we had treated that red label as a verdict, we might have stopped. The trend underneath it was telling a different story.
Traffic, though, didn’t move. Through June, July, August and most of September, Google clicks stayed in the low hundreds a day, nearly all of them from people searching for us by name. Non-branded visibility was still close to zero. Four months of work, and the chart looked exactly the same. I won’t pretend that wasn’t demoralising. There were weeks when it really felt like we were fixing a house nobody would ever visit again.
Then Google rolled out another update
On 24 September 2026, Google started rolling out its September spam update. Within about a day, our line on the Search Console chart did something it hadn’t done in four months: it went straight up.
We went from roughly 300 clicks a day, almost all branded, to 9,064 clicks on Monday, 28 September, with non-branded queries back in the mix. Impressions that day hit 174,603, which is actually higher than our all-time January peak of 165,463. In less than a week, the site was back where it had been before the first update hit!

28 September: 9,064 clicks and 174,603 impressions. More impressions than our January peak.
There is a neat symmetry to it. Google updates are what took us down: the March spam and core updates, then the May core update. A Google update is also when we came back.
I want to be careful not to overclaim here. I can’t prove the September update was the reason. It wasn’t even a core update, which is what most of us would expect to reverse a core update drop. What I believe is simpler. Google reassesses sites constantly, but the changes tend to show up in visible jumps when its systems are refreshed. All the clean-up we did over the summer was sitting there, waiting to be counted. When the next refresh came, it was counted.
The timing still matters, though. It’s a reminder that after you fix a site, recovery usually doesn’t arrive the day after you ship the fix. It arrives on Google’s schedule, not yours. For us, that meant four months of flat lines before a single week changed everything.
What I’d tell any SEO staring at a falling graph
- Don’t wait for a core update to start diagnosing. A core update rarely creates your problem. It exposes it. And once you’ve been hit, recovery often has to wait for Google’s next big refresh, which can be months away. The cheapest time to find a problem is when it’s a small dip, not a cliff.
- Be suspicious of comfortable explanations. “It’s seasonal” was true for us. It just wasn’t the whole truth. If you’re blaming seasonality, check it against something: last year’s numbers, impressions versus clicks, or whether competitors are dipping too. If only you are falling, it isn’t the season.
- Know how many URLs your site should have, and check that number. We expected between 3,000 to 4,000 URLs and Google could see more than 13,000. A regular crawl with Screaming Frog (or any crawler) and a glance at Search Console’s indexing report would have caught that months earlier. If indexed or discovered pages run far ahead of what you’ve published, stop and find out why.
- Audit your own tooling. Our problem wasn’t a penalty or a competitor. It was a custom uploader we wrote ourselves. Plugins, importers, filters and CMS templates can all quietly mint new URLs. Treat them as suspects.
- A failed validation is not a final verdict. Search Console marked our fix as failed in August. The trend underneath kept improving anyway. Watch the direction of travel, not just the status label.
- Keep shipping during the drought. We never stopped publishing, even when Google was sending us almost nothing. When the recovery came, it came for a bigger, cleaner site than the one that fell.
- Build a brand people search for by name. When Google stopped showing us for every non-branded query, the few hundred clicks a day we still got came almost entirely from people typing our name. That trickle kept readers reading and kept sales coming in while we fixed things. Rankings can vanish overnight. People remembering who you are is much harder to take away.
Where we are now
Over the past 16 months, the site has picked up 498,000 clicks and 9.44 million impressions from Google, with a 5.3% average CTR and an average position of 7.4. A good chunk of that came in the last few days.
Search Console keeps a little trophy cabinet for moments like this. In January, the site passed 90K clicks in a rolling 28 days on 22 January, 100K on 25 January, 120K on 28 January and 150K on 4 February.
January’s milestones, and the next badge already ticking over – As at 3rd October, 2026
As I write this, three days into October, the next badge (180K) reads 27.4K. That counter looks back 28 days, so most of it is still the flat weeks of September. The real test is the next four weeks. If daily clicks stay anywhere near where they are now, we should pass our February numbers before October is out.
I don’t know what the next update will bring. Nobody does. But I know the site is in far better shape than it was in January, and I know we’ll be watching the small dips this time, not just the big ones.
If your numbers are falling right now, here’s the only advice that matters: don’t stop. Find out what’s actually wrong, fix it properly, keep publishing, and give Google time to notice. It took us four months of flat lines.
Timeline at a glance
| When | What happened |
| Nov – Dec 2025 | Site launched; 2,000+ resources sitting in Google Docs published within 2 months |
| 19 Jan 2026 | Peak day: 9,980 clicks, 165,463 impressions |
| Feb 2026 | Clicks start sliding; we blamed seasonality |
| 24–25 Mar 2026 | March 2026 spam update |
| 27 Mar–8 Apr 2026 | March 2026 core update |
| 21 May–2 Jun 2026 | May 2026 core update; clicks fall to a few hundred a day |
| Jun–Jul 2026 | URL bloat diagnosed and fixed |
| 10 Jul–late Sep 2026 | Crawled – not indexed falls from 4,878 to 885 pages |
| 24 Sep 2026 | September 2026 spam update begins |
| 28 Sep 2026 | 9,064 clicks, 174,603 impressions ( A full recovery was made) |
Update dates are from Google’s Search Status Dashboard.




