Ten days ago I did something that looked like good SEO hygiene and it cost us more than half our organic traffic in under a week. Posting the numbers because I couldn't find anyone who had published this particular failure with the data attached.
We're a small AI image tools site, DR 43. Almost all our organic traffic comes from free tool pages that rank on their own.
We'd been running a directory-listing campaign to close a link gap against a bigger competitor. Standard stuff: get listed on the AI tool directories, several of which want a "Featured on" badge on your site in exchange, and a couple of which we paid for.
On 23 August we shipped a badge strip into the site footer. Nine outbound links. Because the footer is in the base template, it landed on every page on the site. Every one of those links was dofollow.
Rankings fell off a cliff the next morning.
date day clicks impressions avg position
2026-08-22 Sat 687 30,413 11.5
2026-08-23 Sun 709 27,246 12.0 <- badges shipped
2026-08-24 Mon 500 19,689 17.1 <- onset
2026-08-25 Tue 268 13,937 31.7
2026-08-26 Wed 240 12,986 35.5
2026-08-27 Thu 225 12,639 35.6
2026-08-28 Fri 189 11,858 36.6
2026-08-29 Sat 190 14,823 42.1
Week over week: 5,402 clicks down to 2,329. A 57% drop. Average position ~11 to 42.
The shape mattered more than the size. Not a few pages losing rankings, but the entire free-tools section demoted roughly uniformly while the homepage barely moved. One tool page went 9.1 to 37.5, another 8.8 to 36.3, another 10.9 to 63.0. The homepage went 3.7 to 6.0. Uniform demotion across a whole section with the homepage spared is the signature of a site-level signal, not a content problem on any one page.
What we ruled out: no manual actions, no security issues, robots.txt clean, indexed page count flat and rising, pages returning 200 with correct canonicals. The early-August algorithm volatility was 1-6 August and we were flat through it.
Then we listed every commit in the window and asked which ones touched every page. Exactly one did: the badge strip.
The diagnosis: thousands of sitewide dofollow links pointing at directories, several of which we'd paid for that same day, one of which was a reciprocal badge-for-listing exchange. That's a link scheme under Google's link spam policy, and the part I hadn't internalised is that the policy demotes the LINKING site, not just the recipient. We turned our own site into a paid link farm pointing outward in an afternoon without once thinking of it that way.
The fix was one commit: all nine links changed to rel="sponsored nofollow noopener". Badges stay up, listings stay live, only the equity stops flowing.
The recovery:
2026-08-29 190 clicks pos 42.1 <- trough
2026-08-30 362 pos 31.2 <- fix shipped
2026-08-31 391 pos 21.3
2026-09-01 469 pos 12.4
2026-09-02 497 pos 12.4
Average position is back to where it started. Clicks still about a third below baseline and closing.
The part that convinced me was accidental. Google doesn't re-crawl every page at once, so after the fix some pages had been re-fetched and some hadn't. That's a controlled experiment for free. Position before / trough / 2 Sept, and last crawl date from the URL Inspection API:
make-image-transparent 8.8 / 36.3 / 8.7 crawled 3 Sept
image-analyzer 7.3 / 21.8 / 6.6 crawled 4 Sept
round-corners 6.9 / 19.6 / 7.5 crawled 30 Aug
merge-images 9.1 / 37.5 / 11.6 crawled 4 Sept
ai-selfie 7.2 / 22.3 / 11.7 crawled 2 Sept
image-upscaler 20.7 / 51.6 / 26.6 crawled 1 Sept
image-to-prompt 10.9 / 63.0 / 44.7 crawled 27 Aug
Every page Google re-crawled after the fix recovered. The one page it hadn't re-crawled since before the fix is still at 44.7. Same site, same fix, same day - the only variable is whether Googlebot had been back.
Four things I'd tell you:
A footer link is not one link. It's one link times the number of pages on your site. Ours became roughly 15,000 outbound dofollow links to paid directories overnight. On a single /featured-on page none of this happens.
"Directory listing" and "paid link" can be the same thing. Nobody sold it to me as a link purchase. I paid for listings, they asked for a badge, I added the badge. The label on the invoice doesn't change what the markup does.
rel="sponsored nofollow" costs you nothing. You keep the badge, the listing, the referral traffic and the social proof.
Diff your commits against the onset date. Listing every commit in the window and asking which touched every page narrowed it from "something is wrong" to one candidate in about ten minutes.
Full write-up with all the data: https://pixelpanda.ai/blog/2026/09/04/we-added-9-directory-badges-to-our-footer-and-lost-57-of-our-organic-traffic-in-5-days/
The scripts I used to diagnose it are open source: https://github.com/RyanKramer/gsc-diagnostics
Happy to answer questions.
The recovery evidence is unusually convincing, especially the crawl-timing split. Now that you know the badges were the mechanism, I’d be curious whether the directory listings themselves produced enough qualified traffic or leads to justify keeping the campaign at all, even with sponsored/nofollow links.