Field note / Search data
How to tell a rank tracker from a ranking loss.
Impressions on this site fell 92% across four months. The obvious reading was a penalty or a lost ranking. It was neither, and clicks went up while it happened.
· 4 min
The graph everyone panics at
Here is the monthly impression count, straight out of Search Console:
| Month | Impressions |
|---|---|
| January | 8,986 |
| February | 13,267 |
| March | 13,702 |
| April | 4,374 |
| May | 2,060 |
| June | 1,639 |
| July | 1,494 |
Weekly data puts the break in one seven-day window: 3,061 impressions the week of March 9, then 1,244 the week of March 16. A 59% drop in a week, then a slow bleed for two months. If you stop reading there you start rewriting titles, filing reconsideration requests, or blaming whatever shipped that week.
Segment before you diagnose
Site-wide numbers hide everything. Broken out by page, one blog post held 10,144 of roughly 17,000 impressions, about 60% of the whole site, and had earned zero clicks doing it.
That combination is the signal. A page ranking well enough to collect ten thousand impressions should collect some clicks. A page collecting ten thousand impressions and no clicks is usually not being seen by people.
Read the query strings
Its top queries looked like this, and I have trimmed the tail:
shopify performance optimization guide 2026 core web vitals -site:bigcommerce.com -site:woocommerce.com -site:wix.com -site:squarespace.com -site:magento.com -site:salesforce.com -site:squareup.com -site:ecwid.com ...
Sixteen chained negative site:
operators. Nobody types that. It is a rank tracker or a scraper excluding the big
platforms to see who ranks underneath them. Several near-identical variants sat beside
it with one word permuted, which is the other tell.
Whoever was running it stopped in mid-March. That is the entire cliff.
The number that settles it
Comparing the four weeks before the drop against the four weeks after, across the top 25 pages: impressions fell 64%, and clicks rose from 16 to 26. Click-through went from 0.09% to 0.42%, about four and a half times better.
Nothing broke. Synthetic impressions left and the real ones stayed. Had I trusted the impression graph I would have spent a month fixing a page that was working.
What I ruled out, and how
Correlating a metric cliff with a same-week deploy is how most of these investigations go wrong. Two commits that week looked extremely guilty: a site-wide schema change and a crawler-blocking change. Both were innocent.
Structured data
JSON-LD parsed clean. Four-node @graph, no duplicate @id.
robots.txt
Nothing public disallowed. Every AI and search crawler explicitly allowed.
Indexability
Every key page index, follow with a correct self-canonical.
A same-week commit
Two looked guilty. Both were cleared by checking, not by reading the diff.
Each of those took one check. Fetching the robots file beats reasoning about it, and parsing the JSON-LD beats reading the component that emits it.
The checklist
Before you act on a traffic drop:
- Check whether clicks moved. If clicks held or rose while impressions fell, nothing broke.
- Segment by page. One URL usually owns most of the change.
- Read that URL's actual query strings. Look for
-site:chains, bracketed operators, and the same phrase with one word swapped. - Verify a suspected cause instead of inferring it from a commit message.
- Distrust aggregated average position. A reporting API handed me a site-level position of 606, which is not a position.
Impressions are the metric most easily inflated by things that are not customers. Clicks are harder to fake. When the two disagree, believe the clicks.
I build custom sites and run the technical SEO behind them for businesses in Miami and South Florida. If your analytics is telling you something you cannot explain, get in touch and I will take a look.