Understanding Google Search
Powered by RESONEO

Behavioural signals · October 2026

How NavBoost really works:
everything Google remembers about our searches

Google counts far more than clicks. For every result, it knows how long it stayed on screen, whether the click went to a link further down, whether the SERP answered on its own, whether the searcher rewrote the query or scrolled back up to reread the AI Overview. Internal Google schemas spell out this memory field by field.

Before the clickWhat is visible

Position, pixels on screen, exposure time, ads above.

  • view_time_on_per_pixel
  • num_ads_above_top
During the searchWhat we do

Clicking, swiping, hovering, scrolling back and forth.

  • clicks_or_swipes_on
  • total_back_and_forth_scroll
After the clickWhat comes next

Another result, a new query, the next page, the end.

  • followed_by_manual_refinement
  • total_next_page_clicks

Our discovery

Internal Google schemas lay out NavBoost and Glue field by field

We obtained internal Google schemas that describe NavBoost and Glue in detail: 137 schemas, 789 fields. The 2024 Content Warehouse leak showed a few click counters, goodClicks, badClicks and lastLongestClicks; the antitrust trial confirmed NavBoost’s role and its thirteen months of history. Of the 88 Glue structures in these schemas, the leak documented one.

What they add is context: what was really visible on screen, what the SERP answered by itself, what the searcher did next, how the AI Overview was used. A click is never counted alone. It is read against what the searcher saw, what they skipped and what they did afterwards.

Twelve fields that say more than a click

One of these twelve fields was already in the 2024 leak. The other eleven are new.

01Two memories

NavBoost remembers pages, Glue remembers the whole SERP

NavBoost ties each query to the documents clicked for it. Glue applies the same memory to every block of the page: images, videos, People Also Ask, local pack, AI Overview.

NavBoost

Query + document

For each query–document pair, NavBoost keeps the history of its clicks, broken down by country or region and by device. It brings this accumulated experience into the ranking of web links.

For [change a bicycle wheel], the same tutorial has one history on mobile and another on desktop.
  • total_long_clickslong clicks: the page answered
  • total_short_clicksshort clicks: a quick return to the SERP
  • clicks_offclicks on another result of the page

Glue

The whole SERP

Google itself calls Glue “just another name for Navboost that includes all of the other features on the page”. Each result carries 34 families of signals, from AI Overview interactions to image shares and app installs.

For the same search, a video, a featured snippet and a web page compete on the satisfaction they deliver.
  • block_level_goodnesssatisfaction measured for the whole SERP block that holds the result
  • total_query_event_with_good_interaction_on_featuresearches satisfied by a SERP block
  • total_query_event_with_good_interaction_on_websearches satisfied by a web link

Public references: NavBoost described by Eric Lehman; Glue in the ruling of 2 September 2025; Glue’s role in presenting results.

02What is measured

Six families of signals describe a search

Clicks are one family among six. Each answers a concrete question, for a single result and for the query as a whole.

01 / CLICKS

What did we choose?

Raw and weighted clicks, short, medium and long ones, moves to the next page.

  • clicks_onclicks on the result
  • total_long_clickslong clicks: the page answered
  • total_short_clicksshort clicks: a quick return to the SERP
  • total_next_page_clicksmoves to the next page: the first one was not enough
02 / VISIBILITY

What could we see?

Views, full views, time on screen and its share: visibility is measured in seconds and in pixels.

  • total_full_viewsimpressions seen in full
  • view_time_ontime spent on screen
  • pct_view_time_onshare of the page’s viewing time spent on this result
  • heightheight of the block, in pixels
03 / NAVIGATION

How did we explore?

Hovers, scrolls, hesitations and the “More results” button trace the path through the page.

  • total_hovershovers over the result
  • log_time_to_first_scrolltime to the first scroll
  • total_back_and_forth_scrollback-and-forth scrolling: the searcher hesitates
  • more_result_button_clicksclicks on “More results”
04 / SATISFACTION

Did it help?

Good and bad clicks, satisfaction and dissatisfaction, for a result, its block or the query.

  • good_clicksgood clicks (the leak’s goodClicks)
  • bad_clicksclicks judged unsatisfying
  • goodnessshare of interactions judged good
  • badnessmeasured dissatisfaction
05 / JOURNEYS

What happened next?

The clicks and satisfaction that follow place each gesture in a longer search.

  • downstream_result_clicksclicks on results afterwards
  • downstream_max_goodnessbest satisfaction reached afterwards
  • downstream_num_eventsinteractions that follow
  • max_depthdepth of the journey that follows
06 / REFINEMENT

How did the question evolve?

Words added or removed, a new query on the same topic, a switch of tab, a query Google rewrote.

  • followed_by_manual_refinementa query retyped after an abandonment: the page did not answer
  • followed_by_semantic_manual_refinementa reformulation on the same topic
  • toolbelt_mode_signalsswitches to tabs: Images, Videos, News
  • from_rewritten_query_eventssearches that come from a query Google rewrote
At result level

A link or a block: its exposure, the gestures on it and what follows.

At query level

The whole search: cumulative interactions, abandonments, the lowest position that still satisfies.

A direct answer can satisfy as soon as it is read; a complex search can take several visits. The unit Google measures is the whole experience, not the click.

03Actual exposure

A click is read against the chance to click

A link at the top gets immediate exposure; another, three screens down, depends on scrolling. Glue measures how long each result stays on screen, in seconds and in pixels, and relates its clicks to that exposure.

Two results, two levels of exposure

Fictional example
RESULT A

At the top of the page

Visible every time the page is shown.

Appearances on the page10,000
On-screen views10,000
Clicks600
6%Clicks / appearances
6%Clicks / views
RESULT B

Further down the page

Visible after scrolling, in some searches.

Appearances on the page10,000
On-screen views2,000
Clicks240
2.4%Clicks / appearances
12%Clicks / views

Among its on-screen views, B gets 12% clicks, compared with 6% for A. Visibility changes how these counts are interpreted.

Rate relative to appearances on the page

Traw=NclicksNimpressions×100

Rate relative to on-screen views

Tvisible=NclicksNviews×100
Fictional figures. An impression here means one appearance on the page, with at most one click per search and per result.

Position

For web links, satisfaction is corrected for position: a result placed low keeps the credit for what it delivers. Glue also records how deep satisfaction and attention go.

  • position_unbiased_query_goodnesssatisfaction corrected for position
  • lowest_result_with_good_interactions_positionposition of the lowest result that satisfies
  • pct_view_time_belowshare of time spent further down

Presentation

Each block is described by what it offers: images, videos, height, click and swipe targets. Time on screen is divided by height, so that a two-line link and a carousel can be compared.

  • view_time_on_per_pixeltime on screen relative to height
  • num_imagesimages in the block
  • num_click_targetsclick targets
  • num_swipe_targetsswipe targets

Ads

The ads above a result and the height they take are stored with its satisfaction: a result pushed below four ads is judged at its fair place. A separate set measures organic satisfaction during ads experiments.

  • num_ads_above_topads at the top of the page
  • vcap_rendered_height_px_sumheight taken on screen, in pixels
  • ads_exp_ad_aware_signalsthe same measures during ads tests

A first organic position under four ads and a first position visible at once do not offer the same chance of a click. Glue records the difference and judges each result at its fair place.

04Usefulness

Satisfaction is read over the whole journey

Time spent, a return to the SERP and a reformulation make sense together. Glue gives each everyday scenario its own counters.

An immediate answer

SearchAnswer readEnd

Opening hours or a match score satisfy on Google’s page. Glue counts these searches apart, so that an abandonment without a click is not read as a failure.

  • abandoned_for_webanswersabandonments because the SERP answered
  • followed_by_manual_refinement_for_webanswersa reformulation after a SERP answer: it was not enough

A request becomes more specific

TutorialReadingSpecific question

After the main steps, the searcher looks for a detail. When that refinement leads to a good result, the page before it gets a share of the credit.

  • downstream_mrr_goodnesssatisfaction that follows, weighted by rank
  • followed_by_semantic_manual_refinementa reformulation on the same topic

A search that needs another result

ClickQuick returnAnother link

The first result answered part of the question. The click that ends the search, the last and longest one, tells which page did the job.

  • clicks_offclicks on another result of the page
  • last_longest_clicksthe last and longest click: the one that ended the search
goodness · badness

Satisfaction and dissatisfaction are measured separately, for the result, for its block and for the query, with variants restricted to the searches where the result shows.

  • block_level_goodnesssatisfaction of the whole block
  • goodness_for_query_when_result_triggeredsatisfaction, only over searches where this result shows
p_good · next_gen_p_good

p_good is the probability of a good click: a satisfied click, as opposed to a click followed by a return to the SERP. Two generations of these measures sit side by side on every result and every query: Google runs the new model next to the old one.

  • next_gen_goodnessthe new generation of satisfaction
  • num_query_events_with_goodness_gt_p3_intsearches whose satisfaction exceeds 0.3

The leak’s goodClicks are one branch among 34. The click model the 2024 leak made famous, CrapsSignals, sits on each result next to satisfaction scores, journeys, ads and AI counters. Satisfaction also travels: backsmeared_goodness completes a result’s satisfaction with data borrowed from neighbouring searches, a technique Google calls smearing.

05SERP features

Every block of the SERP has its own counters

Glue does not stop at blue links. People Also Ask, images, apps, local actions, tabs and even missing query words have dedicated signals.

People Also Ask

Interactions inside the block and below it are counted apart: a PAA box that holds attention changes how the links under it are read.

  • explicit_interactions_in_blockinteractions inside the block
  • explicit_interactions_on_or_belowinteractions on it or below it

Images

For an image, Glue counts the click to the page that hosts it, the good ones among them, shares and saves. In the image grid, clicks are corrected for position.

  • good_cthp_clicksgood clicks through to the host page
  • savesaves of the image
  • position_unbiased_query_clicksclicks corrected for the thumbnail’s place

Apps

For an app result, Glue follows what happens after the click: installs, quick uninstalls, revenue.

  • acquisitioninstalls
  • quick_uninstalluninstalls shortly after
  • revenue_micro_usdrevenue, in millionths of a dollar

Local

Directions, calls, opening hours and popular times count as interactions with a local result, with or without a visit to the site.

  • num_redirect_to_maplinks to the map (directions)
  • num_click_to_callcall buttons
  • num_opening_hoursopening hours

Tabs

Switching to Images, Videos or News is a signal in itself: a query where people switch to Images calls for images on the main page.

  • image_mode_switch_rateshare of searches that switch to the Images tab
  • total_mode_switch_goodness_sumsatisfaction reached by switching to the tab

Missing words

When a clicked result lacks one of the query’s words, Glue keeps the word with its impressions and clicks: the word was incidental to the need.

  • missing_unigramsquery words missing from the result
  • missing_unigram_interactions_mapfor each missing word, impressions and clicks

Clicks count twice. They decide whether a block shows for a query, then which results rise within it. For [oak coffee table], the clicks of earlier searchers decide whether an image block appears, then which images lead it.

06Expected CTR

Each result is judged against the CTR its presentation predicts

Observed clicks are set against expected ones. A model predicts the click, the abandonment and the mere view of each block from its presentation; another predicts from the query alone whether the search will end without a click.

01

Observe

Clicks, time on screen, scrolling and the rest of the journey.

02

Contextualise

Query, result, block, country, device and period.

03

Aggregate

Statistics per result and per query.

04

Adjust

Normalise, correct for position, apply time decay.

05

Decide

Ranking, blocks shown and their order.

What was observed

Raw, weighted, normalised and position-corrected counts give several readings of the same events. 49 signals also keep a version without time decay.

  • weighted_click_countclicks, weighted
  • normalized_goodness_for_querysatisfaction for the query, normalised
  • output_undecayed_versionthe option that keeps a version without decay

What was expected

The gap between real and predicted clicks tells whether a result does better or worse than its format promises. A link without a thumbnail next to an image carousel is judged against the CTR its presentation led to expect.

  • clickpredicted probability of a click
  • abandonmentpredicted probability of abandonment
  • clicklesspredicted share of zero-click searches
  • ctrpredicted CTR of the query

Google also holds blocks back on purpose. Next to the page it served, it keeps the block that should have shown and did not: the difference in clicks on the rest of the page measures the block’s own effect.

  • base_feature
  • counterfactual_feature
  • test_codes

A total also says how many people stand behind it. Glue statistics carry a count of distinct voter tokens, kept as a 256-bit bitmap. The 2024 leak describes it as a lower bound on the number of distinct users: Glue knows whether a thousand clicks come from a thousand people or from a handful.

  • distinct_voter_tokensdistinct contributors behind a statistic
  • voter_token_bitmapthe 256-bit set of those tokens

unsquashedClicks, in the 2024 leak, are the same clicks, before squashing. The leak says so: NavBoost keeps two copies of its click counters, one squashed, one unsquashed. Squashing flattens large values so that a spike of clicks does not dominate the other signals; the unsquashed copy keeps the real magnitude. These raw clicks, read in 2024 as reliable clicks resistant to manipulation, are the same measure on another scale. Glue does the same with time: 49 signals exist with and without decay.

07Time

Thirteen months of memory, and click spikes caught within minutes

A search about breaking news moves faster than a recipe. NavBoost keeps the long history; Instant Glue follows the last twenty-four hours.

13 months

NavBoost’s history

The window of interactions kept for each query–document pair.

Ruling of 5 August 2024 · Pandu Nayak interview
24 h

Instant Glue’s window

Glue’s signals from the last twenty-four hours, aggregated per locale.

Google document, 2021
~10 min

Instant Glue’s latency

The delay before a fresh interaction reaches the statistics.

Same document

Instant Glue ties recent statistics to the query, the documents and each locale, with a timestamp and a flag for rare queries. It spots, per locale, when a click spike starts and the share of recent clicks. On the day of the Nice attack, Instant Glue removed the image block from [nice pictures]: news had become the main intent.

  • fresh_clicks_peak_startstart of the recent click spike
  • fresh_clicks_ratioshare of recent clicks
  • normalized_query_is_rarethe query is rare
  • live_result_sports_impressionsimpressions of live sports results

The date shown in the snippet matters too. For each broad intent, satisfaction is summed by the age of the displayed date: under a day, three days, a month, three months, a year. For each query, Google knows whether searchers are satisfied with yesterday’s pages or with year-old ones.

  • result_goodness_sum_byline_age_lt_1dsatisfaction on results dated less than a day old
  • result_goodness_sum_byline_age_lt_30d… less than a month old
  • result_goodness_sum_byline_age_lt_365d… less than a year old
  • result_goodness_sum_has_byline_age… on results that show a date
30 days90 days180 days

Query volumes are also counted over 30, 90 and 180 days, and 49 signals keep a version without time decay next to the decayed one: past experience and recent behaviour each keep their weight.

08AI answers

AI Overview counters decide what Google sends first

magi is Google’s name for the AI in its results pages, the one behind AI Overviews and AI Mode. Glue counts its answers like any other block, for the query and for each result.

magi in Glue

From the answer showing to the next question

The answer’s state

Expanded, collapsed, suppressed, declined, flagged as sensitive, and the reasons it did not show.

  • num_queries_with_expanded_magisearches with the AI Overview expanded
  • num_queries_with_punt_magisearches where the AI declines to answer
  • non_triggering_reason_countreasons it does not show, counted
Its place and exposure

At the top or further down, its share of the time, and the scrolls back up to it.

  • num_queries_with_magi_at_topAI Overview at the top of the page
  • percent_time_on_magishare of time spent on the AI answer
  • num_viewport_regressions_on_rendered_magi_blockscrolls back up to reread it
Actions in the block

“Generate”, “Show more”, and the opening of the sources that back the answer.

  • generate_button_clicksAI Overview on demand
  • show_more_button_clicksclicks on “Show more”
  • corroboration_expansion_clicksopenings of the supporting sources
What follows

Reformulations are counted with and without an AI Overview, and Search Labs testers apart from other searchers.

  • num_queries_with_magi_followed_by_add_or_delete_manual_refinementreformulations after an AI Overview
  • lab_magi_query_level_signalsthe counters of Search Labs testers

A built-in test: reformulating with and without AI

Search with an AI OverviewWords added or removed after the answer are counted.
Search without an AI OverviewThe same reformulations have their own counter.

If searchers reformulate as often after an AI Overview as without one, the answer did not answer. The gap measures what the AI saves. The counters for searchers outside Search Labs also travel in Instant Glue: AI Overview behaviour is followed within minutes.

The AI decides what loads first. To save time, Google can send the first result before the rest of the page: First Result Out. It gives this up for about a hundred reasons, eleven of which name the AI. When many searchers expand the AI Overview on a query, or when the query asks to plan a trip, a weekend or meals, the AI comes before the first link.

  • INELIGIBLE_MAGI_EXPANDED_RATIO_ABOVE_THRESHOLD
  • INELIGIBLE_MAGI_TRIP_PLANNING
  • INELIGIBLE_MAGI_WEEKEND_PLANNING
  • INELIGIBLE_MAGI_MEAL_IDEAS
  • INELIGIBLE_AIO_GLUE_HIGH_TRAD_IMP
  • INELIGIBLE_LATE_BAILOUT_MAGI_ENABLED

The trial points the same way: Tangram, the engine that lays out the SERP, uses Glue to decide whether to show an AI Overview. Glue data meant for LLMs also travels with the query and with each result: click signals feed the models that write the answers. For publishers, visibility includes the experience around the AI answer: how it is expanded, which sources are opened, what people search next.

  • LlmGlueSignalData

Public reference: Plaintiffs’ remedies proposed findings of fact, §86.

09Meaning of a query

Clicks vote for the meaning of a query

The same words can cover several needs. Clicks, tab switches and satisfaction are counted per interpretation and per broad intent.

An ambiguous query

“jaguar”

An animalHabitat, photos
A carModels, prices
Another meaningA team, a name

If the top pages and their clicks are about the car, the car interpretation comes first and brings its SERP blocks with it. This is where brands named like a common word win or lose their query.

Intent Brain goes one step further. For each query, language and country, it estimates about twenty broad intents, each measured by clicks: satisfaction on a result of the page, or after switching to the matching tab. [late-night pharmacy] calls for a map, [mullet haircut] for photos, [car registration fee] for a government site.

  • LOCAL
  • IMAGE
  • SHOPPING
  • SHORT_VIDEO
  • UGC_DISCUSSION
  • FRESH
  • INFORMATION_SOURCE_GOVERNMENT
  • INFORMATION_SOURCE_MERCHANT

A query too rare for statistics of its own borrows the intents of its neighbours.

  • total_queries_from_smearingsearches borrowed from similar queries
  • intent_smearing_signal_mapthe intents those searches bring

Clicks reach well beyond the ten blue links. They propose intents of their own, supply the alternative names of entities and brands, weigh on the terms that define a page, feed autocomplete suggestions and filter the Shopping catalogue.

  • KE_NAVBOOST
  • FRESH_NAVBOOST
  • SRC_NAVBOOST
  • ENTITY_NAVBOOST
  • SUBTYPE_NAVBOOST_D2Q

How much a click score is trusted

confidence=impressions20+impressions
0.50at 20 impressions
0.83at 100 impressions
0.98at 1,000 impressions

In KScorer, which chooses between interpretations, clicks estimate the score quality raters would give (user_interaction_score), weighted by this confidence. On a rare query, clicks weigh little; on a frequent one, fully. Four of the six features that decide whether a card such as a knowledge panel shows come from these click scores; a fifth is the average score raters give knowledge panels.

10For websites

What NavBoost and Glue reward

The page that ends the search weighs more than the page that draws a click. Three consequences for SEO.

01

Hunt down disappointment

Glue reads a short click, a quick return to the SERP, as a disappointment, and credits the last and longest click with the search. In your analytics, find the landing pages from Google that bring the most unqualified visits: sessions too short to even read the page. Judge each page against its own type, since some intents are resolved in ten seconds and others take a minute: the signal is the gap from the page’s average session length, not an absolute threshold. Then fix the welcome so that the visitor finds at once what the result promised.

Example. A buying guide whose sessions last 1 min 30 s on average, but where a third of Google visits end within ten seconds: the price and the comparison table sit three screens below the introduction.

02

Show a real date when freshness matters

Satisfaction is summed by the age of the date shown in the snippet. On a query that wants recent results, a page without a visible date drops out of these counters.

Example. A price comparison or a news explainer shows its update date, and the update is real.

03

Answer the next question

A refinement that leads to a good result gives part of the credit back to the page before it. Details, variants and links to the next step keep the journey going.

Example. After the general tutorial, the page offers the version for electric bikes.

11In short

A click is never counted alone

01

The context of a gesture

Time on screen, pixels, ads above and the block’s format: each click is read against the chance it had.

02

The whole journey

Abandonment, reformulation, the last and longest click, the satisfaction that follows: the unit is the search.

03

Every block, AI included

PAA, images, apps, tabs and AI Overviews have their counters, and those counters decide what Google sends first.

NavBoost and Glue turn billions of searches into a collective memory: what earlier searchers saw, skipped and kept shapes the page the next one gets.

Explore the schemas

Signals, field by field

137 schemas and 789 fields from NavBoost, Glue and Instant Glue, to browse here or download as a single file.

File paths25 files · 137 types · 789 fields

Each file lists its types; a click opens the type in the reader.

logs/proto/knowledge/interpretation/scoring_info.proto3 types · 92 fields
quality/freshness/abacus/public/komodo.proto8 types · 60 fields
quality/intentbrain/proto/query_intents.proto8 types · 34 fields · 25 values
quality/navboost/good_interaction/predicted_user_interaction/user_interaction_evaluator.proto4 types · 10 fields
quality/navboost/proto/ad_aware_signals.proto2 types · 15 fields
quality/navboost/proto/extended_interaction_signals.proto37 types · 265 fields

Themes: Overview · Clicks and journeys · Satisfaction · Visibility and interface · AI answers (magi) · Freshness and Instant Glue · SERP features · Page assembly

quality/navboost/proto/intent_brain_signals.proto3 types · 19 fields
quality/navboost/proto/intent_signals.proto22 types · 67 fields

Themes: Intent

quality/navboost/proto/missing_term_signals.proto2 types · 6 fields
quality/navboost/proto/play_signals.proto1 type · 19 fields
quality/navboost/proto/query_level_stats.proto4 types · 32 fields
quality/navboost/proto/refinement_signals.proto1 type · 1 field
quality/navboost/proto/related_questions_signals.proto1 type · 2 fields
quality/navboost/proto/signal_options.proto1 type · 1 field
quality/navboost/proto/visual_web_signals.proto1 type · 1 field
quality/navboost/speedy_glue/proto/voter_token_bitmap.proto1 type · 2 fields
quality/navboost/ui_factors/proto/uifactors.proto8 types · 38 fields · 10 values
quality/navboost/ui_factors/ui_factor_v3/deep_ui_cluster_evaluator.proto3 types · 9 fields
quality/popfeeds/proto/stream_query.proto13 types · 69 fields · 20 values
superroot/framework/radical_latency/first_result_out_triggering_eligibility.proto2 types · 104 values
superroot/framework/radical_latency/first_result_out_vertical.proto1 type · 25 values
superroot/framework/radical_latency/fro_triggering_enablement_status.proto1 type · 14 values
superroot/impls/radical_latency/first_result_out_triggering.proto7 types · 32 fields · 10 values
universalsearch/rpc/counterfactual_features.proto2 types · 8 fields
video/stats/watchboost/instant/komodo.proto1 type · 7 fields