Case study · Organic search decomposition

Organic search traffic fell by a quarter. Rankings explained under 1% of it.

Seven measured causes that add up exactly to the loss. Store listings and lower category demand did most of the damage, AI Overviews took a fifth, and blue-link rank, the thing the whole org was organized around, was 0.7%.

When2026 · ~10 weeks, then a monthly refresh
RoleSole analyst, method & delivery
DataSession analytics · search console · keyword rank panel · ads auction data · store-listing clicks
MethodsIndex (LMDI) decomposition · difference-in-differences · falsification tests

The problem

Brand-term organic clicks down nearly half year over year while reported average position went up. Two stories were already running: SEO is failing, and AI is eating search. Each came with an expensive fix. Organic search was a third of traffic and two-thirds of attributed ecommerce revenue, an eight-figure exposure, so guessing was not an option.

The complication nobody had priced in: the same query now returns five different page layouts depending on intent, and the first organic result lands anywhere from 200 to 1,100 pixels down the phone screen. Rank 1 on one layout is below the fold on another.

The method

What it showed

Where the traffic went
Organic sessions, indexed to 100 at the prior-year baseline · the seven reasons as named on the dashboard, largest first · they add up exactly to the observed loss
Blue-link rank, the thing everyone blamed, is the smallest bar. The damage came from searches that now end on store listings instead of the site, from fewer people searching the category, and from AI Overviews and other answers that satisfy the query on the page.
What appeared on the page, and how often we were in it
Share of tracked keywords where each module appeared, and where we appeared inside it · three windows · mobile crawls, brand and non-brand pooled · figures perturbed
ModuleAug–Oct 2024Aug–Oct 2025May–Jul 2026
appearedwe appearedappearedwe appearedappearedwe appeared
Blue links (web results)100%88%100%89%100%79%
Local pack (store listings)25%12%20%4%36%10%
Free product listings69%<1%68%3%68%<1%
AI Overview2%1%17%6%35%10%
People Also Ask95%7%92%8%30%2%
Video30%0%25%0%28%0%
Image31%2%30%2%28%1%
Carousel8%<1%19%1%16%<1%
Answer box11%<1%8%<1%2%<1%
The page changed shape; our rank did not. AI Overviews went from 2% of keywords to 35%. The local pack went from a quarter of pages to over a third, and we were in it less. Presence does not mean above the fold. Our own ads were on 69% of non-brand mobile keyword-months in the latest window, above everything in this table.
The head term: rank flat, clicks down
Head brand term · blue-link rank (left, 1 = top) vs. clicks per day (right, indexed)
Rank 1 for 17 straight periods. Clicks down 46%. A factor pinned to a flat line cannot explain a falling one.

The AI story failed the same test on the brand side. AI Overviews never rendered on the head brand term in either year. AI-assistant referrals were 0.02% of brand organic. Paid cannibalization failed too: ad depth above organic was flat, and when spend was cut, organic did not move.

The question changed from "how do we fix our rankings?" to "which surfaces still return a click, and are we the best result on those?"

What changed

Technical notes, for the people who will ask

Decomposition. Log-mean Divisia (LMDI-I) with base-year weights, decomposing sessions against a period-matched prior-year baseline over 22 fiscal periods. Reasons are all-negative slices of the loss pool, each bounded by the size of its own surface; any remainder is proportioned across the seven by magnitude (median factor 1.01). The chart build asserts that baseline, sessions, and change reproduce the pool exactly, and fails otherwise.

Instruments. Demand: a basket of category terms, chained across a rank-tool baseline change, weighted to the non-brand share of the pool. AI Overviews: keyword-level exposure times a click-through penalty fitted inside the same keywords (~400 keyword-months). Rank: elasticity fitted on the same keywords and confirmed by a 48-configuration grid landing on the same value. Local pack: the Website button's yield measured against Directions, the one action present in all 29 observed pack layouts. Lost clicks: the exact per-keyword remainder after demand, rank, and position.

Validation. Two independent counts of web traffic agree within 4% in each of three years. Two instruments agree on AI Overview exposure (36.6% vs 35.3%). An outside zero-click series matches the lost-clicks band in shape (r about 0.8) and reads above it, not below. Folding the whole remainder into lost clicks would overshoot that series 1.6 times and drop the correlation to 0.4, which is why it is not done.

Why brand and non-brand are not split. The split is a landing-page rule wearing an intent name: a third of brand searches land on non-brand pages, and up to 37% of clicks on brand-labelled pages come from commercial searches. The model works by surface instead.

Next in this portfolio: the semantic layer this analysis stood on, the dashboard suite, and the brand-search budget question. Or back to all work.

Chart shapes and the decomposition structure are real; scales are indexed and figures perturbed. The employer, query terms, and vendor names are generalized. The methods, the reversals, and the decisions are real.