Clicks Up 8x, Impressions Flat: What a Hacked Site Looks Like in Search Console
The best month this site ever had in Search Console was the month it was being robbed. Clicks went from about 200 a day to 1,462. Click-through rate went from 1% to 8.56%. Average position improved. Every number on the overview screen got better at once, and every one of them was a symptom. Eight days later Google demoted the site and it lost three quarters of the traffic it had genuinely earned.
How do I tell if my site has been hacked when Search Console reports no problems? Look for clicks rising much faster than impressions. A hacked site injected with spam pages ranks for queries you never targeted, and those queries convert at a far higher rate than your real ones, so click-through rate spikes while impressions stay flat.
Search Console will not flag this, because nothing is technically broken. Open the Performance report, sort by clicks, and read the query list. If you do not recognise the queries, and especially if they are in another language or another industry, you are looking at injected content rather than a good month.
- Clicks rose 8x while impressions stayed flat. Google was not showing the site more. The same impressions were simply converting at eight times the rate.
- That is arithmetically impossible from honest ranking gains, and it is the clearest signature a compromised site produces.
- The site was ranking position 1.5 for a slot-gambling brand at a 48.6% click-through rate. It teaches wellness courses.
- Search Console reported no manual action and no security issue. It still does. The demotion was algorithmic, so there was nothing to appeal.
- About half the old baseline was never real traffic. The honest recovery target is a fraction of the headline number, and the owner had to be told that.
Why this is worth reading
Almost everything written about traffic drops assumes you are looking at a graph that went down. This one went up first, steeply, for eight days. Nobody audits a good month. That is exactly what makes this pattern expensive, and it is why the owner did not call anyone until the collapse had already happened.
The site is referred to here as SITE-01. It is a real client, the data is a real first-party Search Console export, and the client is not named. Its own search terms are redacted for the same reason. The attacker’s brand terms are printed in full, because they identify nobody and they are the evidence.
The eight days that looked like a win
This is daily click volume from 17 February to 14 April 2026, taken straight from the Search Console performance export. Green is the ordinary baseline, red is the period the injected pages were ranking, grey is after Google acted.
Hover or tap any bar for that day’s exact figures.
| Date | Clicks | Impressions | CTR | Position |
|---|---|---|---|---|
| 17 Feb | 232 | 22,396 | 1.04% | 5.3 |
| 25 Feb | 236 | 26,257 | 0.90% | 4.9 |
| 6 Mar | 181 | 17,970 | 1.01% | 5.3 |
| 7 Mar | 429 | 21,383 | 2.01% | 4.8 |
| 8 Mar | 773 | 18,830 | 4.11% | 4.7 |
| 11 Mar | 692 | 19,786 | 3.50% | 5.0 |
| 13 Mar | 1,095 | 20,222 | 5.41% | 4.6 |
| 14 Mar | 1,001 | 20,522 | 4.88% | 4.5 |
| 15 Mar | 1,462 | 17,087 | 8.56% | 4.1 |
| 16 Mar | 370 | 15,264 | 2.42% | 4.6 |
| 17 Mar | absent | absent | – | – |
| 18 Mar | 170 | 14,476 | 1.17% | 5.1 |
| 21 Mar | 80 | 11,065 | 0.72% | 5.9 |
| 14 Apr | 45 | 6,436 | 0.70% | 6.9 |
Read the impressions column, not the clicks column. On 6 March the site got 181 clicks from 17,970 impressions. On 15 March it got 1,462 clicks from 17,087 impressions. Fewer impressions, eight times the clicks. Position moved from 5.3 to 4.1, which is a real improvement but nowhere near enough to multiply clicks by eight.
There is no legitimate mechanism that does this. If more people are clicking, Google is normally showing you more, or showing you higher. Here it was doing neither. The only remaining explanation is that the thing being clicked was not the thing the owner published.
What was actually ranking
Comparing the 28 days before the collapse against the 28 days after it, query by query, settles it immediately.
| Query | Clicks before | Clicks after | CTR before | CTR after | Position before | Position after |
|---|---|---|---|---|---|---|
| besi123 | 5,592 | 62 | 48.58% | 0.26% | 1.5 | 7.1 |
| besi123 slot | 201 | 1 | 47.63% | 0.12% | 1.6 | 5.9 |
| besi123 login | 61 | 2 | 48.80% | 1.11% | 1.7 | 4.9 |
| its own main term | 55 | 16 | 2.89% | 1.49% | 2.0 | 5.3 |
besi123 is an Indonesian slot-gambling brand. It was the single largest query on a wellness training site, at position 1.5, converting at 48.6%. A click-through rate near 50% is what a brand term does when someone searches for a specific site by name and finds it. Those were real people looking for a casino, and they were being served pages injected into this domain.
Of the 9,326 clicks lost between the two windows, 5,883 were gambling queries. That is 63% of the entire drop, and it is traffic the business never had in any meaningful sense.
The last row of that table is the part that actually cost the client money. Its own main term fell from position 2.0 to 5.3. The injected pages did not just add fake traffic on top. They dragged the legitimate content down with them, which is what a sitewide algorithmic demotion looks like.
Search Console said nothing was wrong
This is the part that sends people down the wrong road for months. Both reports were, and still are, clean:
- Manual actions: No issues detected.
- Security issues: No issues detected.
So there was no penalty notice, no reconsideration request to file, and nothing to appeal. Google had not issued a manual action. Its ranking systems had simply stopped trusting the domain, which happens quietly and reverses slowly.
An owner who checks those two screens, sees green ticks, and concludes “it must be the algorithm” is half right in the worst possible way. It was algorithmic. It was also caused by something live on their server that no amount of content rewriting would fix.
The check you can run in two minutes
You do not need a tool for this. Open Search Console, go to Performance, and do the following.
- Set the date range to the last 12 months and switch on both Total clicks and Total impressions.
- Look for any stretch where the two lines separate. Clicks climbing while impressions stay flat or fall is the signature. Clicks and impressions rising together is just growth.
- If you find one, set the range to that period and open the Queries tab. Sort by clicks. Read the top twenty terms and ask whether your business could plausibly rank for each one.
- Check Pages in the same window. Injected content usually sits on URLs you do not recognise, or on one real page being abused by a parameter.
- Search Google for
site:yourdomain.complus a word you would never publish. Casino, slot, betting, and the equivalents in Indonesian, Vietnamese and Thai are the common ones.
A high click-through rate on a term that is not your brand is the loudest single warning. Nothing you write earns 48% of the clicks unless people were already looking for it by name.
Where it stands now
Update, 14 September 2026
The site has been rebuilt. On 31 August it moved off WordPress onto a static build, which leaves no server code on the site for an attacker to abuse. The URL parameter that had been reflecting whatever text was put into it now returns 410 Gone, and so does every variation of it we tried. The old WordPress login, admin and user endpoints all return 404.
The two weeks since have gone into the pages themselves. Course pages were rebuilt around their own video and a set of plain factual FAQs. A thin reference page was turned into a real one. The most-read articles now link to the pages that actually sell. Load speed and layout shift were fixed page type by page type, and the enquiry forms were repaired so international phone numbers get through. An AI-generated image and three photos that were not genuine were taken off the site.
A check of the live site today found no gambling text, no injected foreign-language pages, correct titles, canonicals and indexing tags, and a clean sitemap of 159 URLs.
What the rebuild does not do is lift the demotion. That still happens on Google’s schedule, and two weeks of data after a relaunch says nothing either way, so this page does not claim a recovery yet. The table below is the state at the end of August.
Update, 8 October 2026
Five weeks after the relaunch, still no recovery. Search Console for the 28 days to 5 October, against the 28 days before it:
- Clicks 1,649, against 1,982
- Impressions 103,861, against 204,817
- Click-through rate 1.59%, against 0.97%
- Average position about 6.6, against 7.0
Clicks are down 17% on the previous 28 days, so the slide has not stopped. Impressions halved again as the last of the removed pages left the results. The pages that remain keep earning a better click-through rate, and position has edged up by about half a place.
One small thing worth watching and nothing more: the last two days in the data, 4 and 5 October, were 81 and 72 clicks, the two highest days of the last fortnight. Two days prove nothing. The next update will cover November.
Update, 20 September 2026
Three weeks after the relaunch, the demotion has not lifted. Search Console for the 28 days to 17 September, against the 28 days before it:
- Clicks 1,820, against 2,250
- Impressions 150,000, against 254,000
- Click-through rate 1.2%, against 0.9%
- Average position 7.1, against 7.0
- Indexed pages 262, down from 391 on 21 August
The fall in impressions is the clean-up, not a new problem. The injected pages were being shown in search, so removing them had to take the impression count down with them. What is left is the real site, and it earns a better click-through rate: 1.2% against 0.9%.
The clicks are the honest part. They are down 19% on the previous month, and average position has not moved. A rebuild closes the hole and cleans the index. It does not, on its own, persuade Google to trust the site again, and there is still no sign of that here. The next update will cover October.
The index was cleaned. Indexed URLs fell from 8,770 on 1 June to 391 on 21 August as the injected pages were dropped, and an export of what remains contains zero gambling matches. Roughly 20,000 URLs now return 404, which is correct. They are left to decay rather than redirected.
| Quarter | Clicks | Impressions | Position |
|---|---|---|---|
| Dec 2025 to Feb 2026 | 16,000 | 1.83M | 5.4 |
| Mar to May 2026 | 15,400 | 1.07M | 5.8 |
| Jun to Aug 2026 | 7,940 | 826,000 | 6.8 |
The trough was around 40 clicks a day in late April. June to August averages about 88 a day, so it has roughly doubled off the bottom. The honest pre-injection baseline was about 196 clicks a day, which means the site has recovered somewhere near 45% of what it genuinely used to earn. The top ten queries are now entirely legitimate and there is not a single gambling term among them.
It is not finished. Publishing it half-recovered is deliberate, because the alternative is waiting until the number flatters us and then calling it a case study.
What this does not show
One site is not a study
This is a single compromise, examined closely. We have seen the same pattern on three other sites, including one carrying roughly 2,000 injected pages and another with more than 20,000, but those owners have not been asked whether their data can be published, so they are a count here and nothing more.
The headline drop is not the real damage
Losing 9,326 clicks sounds catastrophic and mostly was not, because 63% of them were never customers. The real damage is the demotion of the legitimate pages, which is smaller in raw clicks and much harder to reverse.
Not every divergence is a hack
Clicks and impressions can separate for dull reasons. Seasonality, a brand campaign, a rich result gained or lost. The signature is worth investigating, not worth panicking about.
We cannot tell you how they got in
This is a Search Console analysis, not a forensic one. It tells you what Google saw. Finding the entry point is server work. On this site it was a URL parameter that reflected whatever text was put into it, and that hole was closed when the site was rebuilt on 31 August.
Primary source: Google Search Console Help: the Security issues report.
If your own graph looks like this
If you want this checked on your own site, that is what our hacked site recovery service does. Clean first, then wait. A compromise that is still live cannot be outranked, and rewriting content while injected pages are serving is money spent on the wrong problem. Once it is out, what remains is an algorithmic demotion with nothing to appeal, which is the situation our penalty and algorithm recovery work is built around.
Once the injection is gone and the spam is out of the index, an algorithmic demotion lifts on Google’s schedule rather than yours. Our data on how long that actually takes puts the median gap between core updates at 107 days, and that is the floor, not the estimate.
If the date your traffic turned lines up with a confirmed Google rollout instead, that is a different problem with a different fix. The rollout window matcher covers all 41 confirmed updates since November 2021 and will tell you in one click.
And if you are not sure which kind of drop you have, work through the checks in order for your platform: WordPress traffic drop or Shopify traffic drop.
Send us the date your traffic turned and we will tell you what your own Search Console data says, whether it is a compromise, a rollout, or neither. If it turns out to be nothing, we will say so.
Get it checked →