The Great Decoupling: Detecting Silent Click Loss in Search Content

Ridoy Hasan · FlyRank ML Engineering Internship · Capstone, 2026

Abstract. Since AI Overviews became a standard feature of Google Search, a page can hold steady impressions and ranking position while its clicks quietly decline. FlyRank's content strategists have no name or detection method for this pattern in their existing tooling, even though industry research now refers to it as the "Great Decoupling" (Law & Guan, 2026; Chapekis et al., 2025). This paper asks whether the pattern can be identified early enough, using only observable search signals, for a strategist to act on it before the loss shows up in standard reporting. We built two systems on 123,683 real content pages drawn from FlyRank's 79-million-row production search warehouse: a transparent, hand-written baseline rule, and a Random Forest classifier trained only on February 2026 signals and validated against March 2026 outcomes on a client-grouped holdout split. The baseline did not beat random selection on this split (precision@50 of 0.00). The Random Forest reached a 1.93x lift over the base rate (precision@50 of 0.06, 95% CI [0.00, 0.16], ROC AUC 0.81). We also report a negative result: a candidate content-freshness feature was tested and dropped after we found its recorded dates fell mostly after the decision point it was meant to precede, a leakage risk caught during validation rather than discovered later. The output is a ranked, human-reviewed action playbook for triaging which client pages need review first.

Introduction

FlyRank's strategists watch impressions, average position, and sessions to decide where to spend limited review time each week. That habit has a specific blind spot. Ahrefs' most recent keyword study found that pages appearing alongside an AI Overview lost 58% of their click-through rate compared to similar pages without one, up from 34.5% a year earlier (Law & Guan, 2026). Pew Research Center reached a similar conclusion from a different angle, tracking the actual browsing behavior of 900 U.S. adults rather than keyword-level metrics: users clicked a traditional search result only 8% of the time when an AI summary was present, against 15% without one (Chapekis et al., 2025). Put plainly, a page can look completely healthy on the numbers a strategist already watches while its real value to the client erodes underneath it.

This was not a hypothetical concern invented for this project. It is the reason this lane was chosen in Week 1 of the internship, after the same impressions-flat, clicks-down signature turned up in FlyRank's own anonymized starter sample before the full warehouse was ever queried. The question this paper answers is narrower than the industry statistics above: given only what was knowable about a page in a given month, can a model flag it as being at risk before a strategist would otherwise notice, and does that model beat a simple rule a person could apply by hand?

Data

Release. FlyRank/internship-warehouse on Hugging Face (gated access), build flyrank_pseudonymized_warehouse_release_v20260703 (FlyRank, 2026).

Tables. fact_content_daily_performance, restricted to the February and March 2026 partitions, and dim_content for two static fields (content_type, main_intent).

Date windows. February 1–28, 2026 supplies every feature. March 1–31, 2026 supplies the outcome used to build the label. Both are mid-panel months. The sealed final month (June 2026) is never touched, since the program reserves it as a held-out test period.

Excluded on purpose:

Public safety. Every identifier in this analysis is a pseudonymized hash. No client name, domain, or search query appears anywhere in this paper or its supporting notebooks.

Methodology

Label. A page is marked decoupling_signature = 1 if its impressions changed by no more than ±10% between February and March while its clicks fell 15% or more. This is a rule I defined, not an outcome FlyRank measures directly, and it is disclosed as a proxy throughout this paper rather than treated as ground truth.

Features. Six inputs, all knowable before March began: impressions_prior30, clicks_prior30, ctr_prior30, avg_position_prior30, content_type, main_intent.

Baseline. A hand-written rule with no fitted weights: score = visible × ctr_gap_prior30. A page counts as visible if its February impressions sit at or above the sample median. ctr_gap_prior30 is the gap between a page's own click-through rate and the median rate for other pages at a similar search position, since click-through rate is known to fall with position and comparing every page to one flat number would obscure that.

Model. Logistic Regression was tried first, as the readable option for a yes-or-no label. A Random Forest Classifier (300 trees) was added second, specifically to test whether interactions between position, click-through rate, and content type contribute anything a linear model misses. The forest is reported below because it did.

Validation. A GroupShuffleSplit holds out 25% of clients entirely, so no client's pages appear in both the training and test sets. This matters here more than it might elsewhere: pages from the same client can share a template, an editorial team, or a seasonal pattern, and a plain random split would let a model quietly memorize client identity instead of learning something that transfers to a client it has never seen.

Leakage checks. Four checks were run, not assumed:

  1. Every feature name was audited against outcome-window and label vocabulary before training.
  2. A label-derived column (clicks_last30) was deliberately added back to confirm the audit process actually catches leakage when it is present, rather than passing by construction.
  3. A plain random split was compared against the grouped split on identical data, to check whether client identity was doing hidden work the grouped design was meant to prevent.
  4. A candidate freshness feature, content_updated_date, was tested and then dropped. Its recorded values ranged from 97 days before to 303 days after the March 31 decision point, with a median of 50 days after it (Figure 5). Most of what this field records happened after the very outcome it would have been used to predict, so it was removed rather than kept and rationalized.

Results

Both methods were scored on the same held-out, client-grouped test split, against the same label.

MethodPrecision@50ROC AUCLift vs. base rate
Baseline rule0.000.4930.0x
Random Forest0.060.8051.93x

Base rate on the test set: 3.11%. A 1,000-sample bootstrap over the model's precision@50 returns a 95% interval of [0.00, 0.16].

Bar chart comparing baseline rule and Random Forest precision at 50, with base rate marked
Figure 1. Precision@50 on the held-out test split. The baseline rule does not clear the base rate (dashed line); the Random Forest clears it by 1.93x.

The baseline rule caught none of its top 50 flagged pages on this split, performing at or below chance. The Random Forest correctly prioritized roughly 3 of its top 50 picks against the ~1.6 expected from chance at this base rate. That gap is the clearest evidence in this paper that the added model complexity earned its place rather than adding noise. The confidence interval above is wide enough to include zero, and that is worth stating outright rather than burying: at K=50 against a 3% base rate, this specific point estimate carries real uncertainty, even though the direction of the result (model beats baseline, model beats chance) is consistent across every check we ran.

ROC curve and precision-recall curve for the Random Forest model
Figure 2. ROC and precision-recall curves for the Random Forest on the held-out test set (AUC = 0.81). Both are shown together because ROC alone can look more favorable than it is under class imbalance; the base rate (3.1%) is marked on the precision-recall panel as the honest floor.
Histogram comparing model score distributions for decoupling and non-decoupling pages
Figure 3. Model score distributions by true label. The two distributions overlap substantially, consistent with a ranking signal rather than a clean separator, which is the honest way to read a 0.06 precision@50 result.
Bar chart of Random Forest feature importances
Figure 4. Feature importance by Gini decrease. The four numeric search-performance signals account for nearly all of the model's decisions; the categorical content metadata contributes almost nothing, a finding worth testing further rather than assuming holds beyond this slice.

Limitations and Honest Framing

Histogram of days since content update relative to the decision point, most values falling after it
Figure 5. Distribution of content_updated_date relative to the March 31 decision point. Most recorded updates (right of the dashed line) happened after the window this feature was meant to inform, which is why it was excluded rather than reported as a finding.

Ranked Recommendations

Each page falls into one of three archetypes, combining the model's score with a simple visibility check:

ArchetypeCount% of pagesReason codeAction
High-risk27,23422.0%model_flagged_decoupling_riskREVIEW_CONTENT_QUALITY
Low-risk + visible37,27830.1%stable_visible_assetPROTECT_MONITOR
Low-risk + low-visibility59,17147.8%low_priorityNO_ACTION
Bar chart of page counts by archetype
Figure 6. Page counts by archetype. The High-risk tier is the intended review queue: 27,234 pages, still too many to review one by one in a single pass.

In practice, a strategist would rank within the High-risk tier by raw model score and work through the top 50–200 at a time rather than the full 27,234 at once. None of this output should be automated. It should not drive auto-published edits or auto-redirects, and it should not be used to evaluate an individual writer's performance, since the label reflects portfolio-wide search dynamics that sit well outside any one person's control.

Reproducibility

Full code, notebooks, and commit history: github.com/ridoy1211/Flyrank-Internship-ML. Random seed 42 is fixed throughout. One caveat worth stating plainly: the warehouse query behind this analysis has no explicit row ordering, so the exact precision@50 point estimate can shift slightly between runs even with a fixed seed, because the client-grouped split depends on row order. ROC AUC and the qualitative result (model beats baseline, model beats chance) are stable across the reruns we performed; the K=50 point estimate is not, which is part of why we report a confidence interval instead of a bare number.

References

Chapekis, A., Lieb, A., Shah, S., & Smith, A. (2025, July 22). Google users are less likely to click on links when an AI summary appears in the results. Pew Research Center. pewresearch.org/short-reads/2025/07/22

FlyRank. (2026, March). The State of AI-Driven SEO [Internal research report]. Referenced in this internship's Week 6 methodology-audit assignment; not independently published.

FlyRank. (2026). FlyRank/internship-warehouse [Data set]. Hugging Face. Build flyrank_pseudonymized_warehouse_release_v20260703. huggingface.co/datasets/FlyRank/internship-warehouse

Law, R., & Guan, X. (2026). AI Overviews reduce clicks by 34.5% [Updated 2026: 58%]. Ahrefs Blog. ahrefs.com/blog/ai-overviews-reduce-clicks

Acknowledgments and Data Credit. Built on the FlyRank ML Internship dataset — flyrank.ai.