Impressions but no clicks in Google Search Console: is it bots, or is it your own rank tracker?
A page with thousands of impressions and zero clicks looks like sabotage. We pulled 16 months of our own Search Console data and our own edge logs to find out. The machines were real. The attack was not.
A page in Google Search Console with thousands of impressions and zero clicks is one of the most alarming things an operator can see, and it is one of the most commonly misdiagnosed. It looks like someone is generating fake impressions to convince Google that nobody wants your site. We believed exactly that about our own data, and we were wrong. This is what we found when we checked, using 16 months of our own Search Console exports, our own edge logs, and the source code of our own rank tracker. The short version: the machines in our data were real, roughly a third of all web traffic is automated (Cloudflare Radar), and almost none of it was an attack. Most of it was the SEO industry measuring itself, and some of it was us measuring ourselves. If you are looking at impressions but no clicks in Google Search Console right now and reaching for the word sabotage, this guide will show you the four checks that separate a scraper from an adversary, and why the difference is not academic.
What does Google Search Console actually record, and what can it never see?
Search Console measures Google, not your website. That single sentence resolves most of the confusion in this topic. Google defines the metric precisely: an impression is counted whenever an item appears in the current page of results, whether or not the item is scrolled into view, as long as the user did not need to click to see more results. The event being recorded happens on a Google results page. It does not happen on your server, and your server is never consulted.
Google draws the boundary explicitly in its own documentation comparing the two tools, noting that Search Console focuses on activity that happened before a person arrived at your website from Google Search. Analytics starts where Search Console stops. This is why a flood of bot traffic hammering your origin can be perfectly visible in your edge logs and your analytics while leaving no trace at all in the Performance report. The two datasets are not two views of one thing. They are two different things.
The obvious objection is Crawl Stats, which is fed by real requests to your server. It does not rescue the theory either, because Google scopes it narrowly: the report shows you statistics about Google’s crawling history on your website. That is Googlebot, not the internet. There is no report in Search Console that shows you third-party bots hitting your origin, because that is not what Search Console is for.
One more definition matters, and it is the one that trips people up. Google notes that a link must get an impression for its position to be recorded. If your result sits on page three and the user never leaves page one, nothing is logged at all. So an impression at position 40 is not nothing. It means a results page containing your link was genuinely served. The question is who, or what, it was served to.
Do bots show up in Google Search Console impressions?
Yes, and this is where the popular explanation breaks down. The commonly repeated version says Search Console cannot show bot activity at all. That is half right and it fails in a way that matters. John Mueller of Google addressed it directly when a site owner reported a suspicious spike, saying sometimes it can be from bots, and we do not necessarily filter all of that out in Search Console. He followed up three days later to add that Google does try to filter them, but that they are sometimes still visible.
The distinction that survives contact with the evidence is about where the bot goes, not whether it is a bot. A bot that requests pages from your web server never touches a Google results page, so it cannot create an impression. A bot that requests a Google results page is doing the exact thing an impression measures, so it creates one for every site listed in the response. Rank trackers, keyword tools, SERP APIs, and AI crawlers all live in that second category. They are not attacking anyone. They are reading a results page, which is what results pages are for.
This is the structural reason the most popular version of the attack theory cannot work. A campaign designed to suppress your click-through rate would have to generate impressions without clicks. To do that, it must scrape Google and never visit you. It would therefore leave nothing in your server logs, nothing in your analytics, and no IP addresses to trace. If your evidence for a Search Console anomaly is a list of suspicious IPs hitting your origin, you are looking at two different populations and calling them one. We know this because we made that exact mistake, in public, and we will get to it.
What did our own zero-click data actually look like?
We pulled 16 months of Search Console data for one of our properties: 430,197 impressions against 607 clicks, a site-wide click-through rate of 0.14%. Read on its own, that number looks like a site nobody wants. Read properly, it is two completely different populations averaged into one misleading figure.
Here is the control. Our branded query sat at average position 3.2 and returned 433 clicks from 1,182 impressions, a click-through rate of 36.6%. People who go looking for us find us and click, at a rate that would be healthy anywhere. Now the contrast. The query “digital marketing companies naples fl” sat at average position 7.9, on the first page, and pulled 9,260 impressions and exactly zero clicks. Both of those facts are in the same export, over the same period, for the same site. They cannot both describe human beings.
You can estimate how impossible that is without borrowing anyone else’s benchmark. With zero clicks across 9,260 impressions, the statistical rule of three puts the true click-through rate below 0.032% with 95% confidence. At position 7.9 on page one, that is not a low number. It is an absent one. Something was being served our link roughly nine thousand times and had no capacity to click at all.
The query strings gave it away. One of our highest-impression queries across the entire period was the phrase “seo agency naples” wrapped in literal quotation marks, with a trailing space, and the word linkedin appended. It pulled 7,651 impressions at average position 3.6 and zero clicks. Human beings do not search in quotation marks with a LinkedIn suffix and a stray space. That is a tool’s query string. Another query in our top twenty was, verbatim, “instagram for test fullentity as a property manager”, which pulled 1,209 impressions. That is somebody’s test string. It is not a customer.
Why did our impressions collapse on 12 September 2025?
This is the check that ends the argument, and anyone can run it on their own data. For years, Google accepted a URL parameter, &num=100, that returned 100 search results on a single page. It was the backbone of the SEO tooling industry, because one request could tell a rank tracker where a site sat anywhere in the top 100. Around 10 to 12 September 2025, Google stopped honoring it.
Our data for those days needs no interpretation. On 11 September we recorded 1,091 impressions at an average position of 37.1. On 12 September, 667 impressions at position 28.4. On 13 September, 474 impressions at position 18.3. Comparing the sixteen days before to the twenty days after: impressions fell 44.7%, from 1,116 per day to 617 per day, and average position “improved” by 14.6 places, from 35.9 to 21.3.
Nothing about our website changed on 12 September 2025. We did not publish, delete, redirect, or fix anything. What changed is that tools could no longer harvest positions 11 through 100 in a single request, so those impressions stopped existing. The position improvement is the tell: it is mechanical, not editorial. When the deep phantom entries stop being counted, the average of what remains gets better automatically. Nobody’s rankings moved.
This was not unique to us. It hit the entire industry on the same day, and it prompted a public reassessment from analysts who had spent a year explaining rising impressions and flat clicks as a shift in user behavior. Brodie Clark, who had helped popularize that framing, revisited it directly and concluded that GSC data has unfortunately been polluted with a lot of bot impressions over the past year. That is the honest read, and it is worth sitting with: a widely accepted industry narrative turned out to be a measurement artifact.
Apply that to the attack theory and it collapses. An adversary running a coordinated suppression campaign against your site does not stand down at 44.7% strength on the exact day Google deprecates a URL parameter, in perfect synchrony with every other site on the internet. Only tooling behaves that way. Tooling did.
Is your own rank tracker inflating your own impressions?
This is the part that cost us some pride. While investigating who was generating our zero-click impressions, we read the source of our own rank tracker. It calls a SERP API with a request body specifying a depth of 100 results, a desktop device, and a United States location, and the comment at the top of the file says it checks Google position for all tracked keywords daily, for every site we track.
That is not a subtle clue. That is the mechanism, written by us, running on a schedule, against the exact keyword set that shows up in our zero-click impressions: “digital marketing companies naples fl”, “naples seo expert”, “seo services naples fl”. Every one of those is a term an SEO agency tracks for itself. We were, at minimum, contributing to the phantom impressions we had been treating as evidence of hostility.
The device split confirms it from another angle. Across 16 months, desktop accounted for 621,086 impressions at a 0.24% click-through rate, while mobile accounted for 133,293 impressions at 0.40%. Mobile converts at nearly twice the rate on a fraction of the volume. For a local services business, a desktop share above 80% is not normal human behavior, and mobile is not mysteriously better at clicking. The desktop bucket is diluted with machines, because scrapers run desktop. Our own tracker literally specifies desktop in the request.
We are not claiming our tracker produced all of it. We cannot separate our own requests from Moz, from Search Atlas, from a competitor’s tracker, or from AI Mode fan-out queries, and we are not going to pretend otherwise. What we can say is that the class of traffic is identified, the mechanism is confirmed in code, and at least one of the callers is us. Before you conclude that someone is doing this to you, check whether you are doing it to yourself. It is the cheapest test available and it costs you nothing but the willingness to look.
How do you tell a scraper from a real attack?
The single most useful discipline here is to match your denominator to your position band. Near-zero click-through is only an anomaly if your position says it should be higher. A site-wide click-through rate is an average across every query you rank for, and most sites rank for far more deep queries than shallow ones. Compare that blended average against a benchmark for positions 1 to 3 and you will produce an anomaly out of thin air, every single time.
It is worth knowing how little published data exists past the first page. Advanced Web Ranking, which maintains one of the most-cited click-through studies in the industry, compiles a fresh CTR curve every month for the top 20 results. The top 20. Backlinko’s study of 4 million results found that only 0.63% of Google searchers clicked on something from the second page. There is no credible published click-through figure for position 40, because there is nothing there worth measuring. If a page ranks at position 40 and receives no clicks, that is not evidence of anything except position 40.
The curve is also not as tidy as the benchmarks imply. Seer Interactive, working from their own Search Console data, observed positions 15 and 16 out-clicking positions 5 and 6 on their site, which is the opposite of the smooth decay everyone assumes. Their broader 2026 analysis of 2.43 billion impressions found organic click-through at 3.82% without an AI Overview present and 2.36% with one. Bands, not curves. Treat any single number with suspicion, including ours.
- Check your branded query first. If people searching your name are clicking normally, nobody is suppressing you. Ours converts at 36.6%.
- Check the position band, not the site average. Match the denominator to the depth or you will invent an anomaly.
- Read the query strings. Quotation marks, trailing spaces, tool suffixes, and test strings are machines, not customers.
- Check the device split. A desktop share above 80% on a consumer or local business is scrapers, not people.
- Check 12 September 2025. If your impressions fell off a cliff that week, a large share of your history was &num=100 tooling.
- Check your own rank tracker before you accuse anyone. Depth-100 daily requests are the exact mechanism.
- Check whether your evidence populations match. Server-log IPs cannot explain a Search Console impression anomaly.
What would it actually take to prove a CTR manipulation attack?
We want to be careful here, because the honest answer is uncomfortable for a security company to give: proving this is very hard, and attribution is harder still. We are not going to tell you it is impossible, and we are not going to tell you we can do it for you with a dashboard.
The mechanical requirements are strict. A suppression campaign has to generate impressions without clicks, which means scraping Google and never visiting your site. So your server logs cannot contain the evidence, by definition. Your analytics cannot contain it either. What you would need is a sustained, statistically significant click-through deficit isolated to a specific position band, holding while your branded queries stay healthy, surviving the &num=100 test, persisting after you account for your own tooling and every commercial tool tracking your category, and correlating with nothing else that changed. We did not have that. Almost nobody who believes they have it actually does.
One check does have a documented answer, and it is worth knowing. If you suspect something is impersonating Googlebot against your origin, Google publishes the way to settle it: verify the request by reverse DNS lookup or against Google’s published crawler IP ranges, which they maintain precisely because spammers claim to be Google. Note the older advice that Google does not publish its crawler IPs is now out of date. That check is real, and it is also unrelated to your Search Console impressions, because a crawler at your origin cannot create one.
Attribution is a further leap, and it is the one we would urge you hardest not to take. Naming a competitor as the source of impressions you cannot even prove are hostile is not a security finding. It is a legal exposure, and it is beneath the standard we hold ourselves to. Google will not adjudicate it for you either. The product experts in Google’s own forums have been saying so for years to people in exactly this position.
The useful posture is narrower and more honest. You can detect automated traffic to your origin, you can contain it at the edge, and you can produce verifiable evidence of what you served and to whom. That is what RankShield is built to do, and to be clear about scope, it does none of it inside Google Search Console, because nothing can. Search Console is Google’s record of Google. Your edge is your record of you. Keeping those two straight is most of the discipline.
Where does RankShield actually help with this, and where does it not?
Start with the honest half. RankShield does nothing about the scraper impressions in your Search Console report, because nothing can. Those events happen on Google’s servers, they belong to Google, and no product you install on your website can see them, filter them, or remove them from your Performance report. Any vendor who tells you otherwise is selling you a dashboard that cannot see the thing it claims to fix.
What RankShield works on is the other population, the one Search Console is structurally blind to: automated traffic that actually reaches your origin. That traffic is real, it is most of the internet’s volume rather than a fringe (roughly a third of HTTP requests are bots per Cloudflare Radar), and unlike SERP scrapers it costs you money: wasted ad clicks, card testing, checkout abuse, and origin load. It is also the only population where you can produce evidence, because it is the only one that touches your server and leaves a record.
That work happens on three surfaces, and which one you need depends only on where your traffic lands. RankShield edge protection runs at Cloudflare’s network and screens requests before they reach your server, which is the right layer for volumetric floods and origin load. The Shopify fraud protection app works inside the store, where the money is, on card testing, checkout abuse, and ad-spend waste. The WordPress security plugin covers ranking and ad-spend attacks on a WordPress site with a live dashboard. They are the same detection running in three places, not three different products.
One more scope limit worth stating, since this post is about misreading evidence. Screening traffic that claims to be Googlebot is genuinely useful, and Google gives you the method to settle it, but a crawler at your origin still cannot create a Search Console impression. So if you deploy any of this expecting your zero-click impressions to fall, they will not. Different population, different instrument. What you get instead is a record of what actually hit your site, which is what you needed in the first place when you went looking for an attacker and found your own rank tracker.
The bottom line: check yourself before you check your competitor
We went looking for an attacker and found the SEO industry, including ourselves. The impressions were real, the machines were real, and the hostility was not. Roughly a third of internet traffic is automated (Cloudflare Radar), your competitors and their tools are measuring your category continuously whether or not they have ever heard of you, and Google will happily log an impression every time one of them loads a results page with your link on it.
None of that means bot traffic is harmless. It means Google Search Console is the wrong instrument for finding it, and a blended click-through rate is the wrong statistic for proving it. If you want to know what is hitting your website, read your edge logs. If you want to know what Google served, read Search Console. Ask each one only the question it can answer, and match your denominator to your position band. Most of the attacks people report to us dissolve at exactly that step, including one of ours.
The check we would run first, if you are staring at impressions but no clicks in Google Search Console today, is the cheapest one: look at what your own rank tracker requests, and how often. We did, and the answer was sitting in our own repository.
Questions, answered.
Do bots show up in Google Search Console impressions?
Yes, but only one kind. Bots that scrape Google’s search results pages generate real impressions for every site listed in the response, because an impression is defined as your link appearing on a results page Google served. John Mueller of Google confirmed that Google does not necessarily filter all bot traffic out of Search Console, and that while they try, it is sometimes still visible. Bots that request pages from your own web server are a completely different population and are structurally invisible in Search Console, because your server is never involved in the impression event. If your evidence is a list of suspicious IP addresses hitting your origin, that evidence cannot explain a Search Console anomaly.
Is it normal to have thousands of impressions and zero clicks?
It is normal if your average position is deep, and it is a genuine red flag only if your position is shallow. Advanced Web Ranking publishes click-through curves for the top 20 results only, and Backlinko found that just 0.63% of searchers click anything on page two. There is no credible published click-through figure for position 40 because there is nothing measurable there. A page at position 40 with 2,730 impressions and zero clicks is arithmetic. The same zero-click pattern at position 3, on a query with real volume, alongside a healthy branded click-through rate, is worth investigating. Position is the variable that decides which situation you are in.
What happened to Google Search Console impressions in September 2025?
Google stopped honoring the &num=100 URL parameter around 10 to 12 September 2025. That parameter returned 100 results on a single page and underpinned most SEO rank-tracking tools, because one request could locate a site anywhere in the top 100. When it stopped working, tools could no longer harvest positions 11 through 100 in one request, and the phantom impressions those requests had been generating disappeared. Sites across the industry saw sharp impression drops and simultaneous apparent improvements in average position. In our own first-party data, impressions fell 44.7% and average position improved 14.6 places within 48 hours, with no change to the site whatsoever.
Why did my average position improve when my impressions dropped?
Because average position is a mean across every query where your link was shown, and deep entries drag it down. When scraped impressions from positions 11 through 100 stop being counted, those deep entries leave the calculation, and the average of what remains improves automatically. Nothing about your rankings moved. This is one of the most reliable signals that a change was a measurement artifact rather than an algorithmic event: real ranking improvements generally arrive with more clicks, while artifacts arrive with fewer impressions and no click change at all. If your impressions fell and your position improved on the same day, suspect measurement first.
Can a competitor attack my rankings with fake impressions?
The mechanism is not impossible, but proving it is extremely difficult and attributing it is harder still. A suppression campaign would have to scrape Google without ever touching your site, so it would leave no server logs, no analytics sessions, and no IP addresses to trace. You would need a sustained click-through deficit isolated to a specific position band, with healthy branded queries, surviving the September 2025 test, and persisting after you account for your own rank tracker and every commercial tool tracking your category. Most reported cases dissolve at one of those steps. Naming a specific competitor without clearing all of them is a legal exposure, not a security finding.
Could my own rank tracker be causing my zero-click impressions?
Very possibly, and it is the first thing to check because it costs nothing. Rank trackers work by requesting search results pages for your tracked keywords, usually at depth 100 and usually on desktop, often daily and across every site you monitor. Every one of those requests can log an impression for your listing without ever producing a click. Our own tracker does exactly this, and we found it by reading our own source code while investigating what we assumed was an attack. Check the request depth, the device setting, the schedule, and the keyword list. If the keywords in your zero-click report match the keywords in your tracker, you have your answer.
Should I report a CTR manipulation attack to Google?
You can, but set your expectations accordingly. Google does not adjudicate click-through disputes or retroactively adjust Search Console statistics, and the product experts in Google’s own help forums have said so consistently for years to site owners in this exact position. More usefully, run the diagnostic first: check your branded click-through rate, match your denominator to your position band, look for the September 2025 cliff, read the query strings for tool signatures, and audit your own tracking. In our experience the report is rarely necessary, because the anomaly usually turns out to be measurement rather than malice.
References
- Google Search Console Help: Performance report: impressions, position, and clicks
- Google Search Central: Google Analytics and Search Console: what each measures
- Google Search Console Help: Crawl Stats report
- Search Engine Roundtable: Google Search Console does not filter out all bot traffic (John Mueller)
- Brodie Clark: Were we wrong about “The Great Decoupling”? Analyzing the impact of &num=100
- Advanced Web Ranking: Google organic CTR study (top 20, updated monthly)
- Backlinko: Google CTR statistics (4M search results)
- Seer Interactive: AI Overview impact on Google CTR, 2026 update
- Cloudflare Radar: Bot traffic share of global HTTP requests
- Google: Verify Googlebot and other Google crawlers
Make every AI action provable.
RankShield is the verifiable, quantum-safe AI security platform — protection you can check, not just trust.