The Google Content Warehouse leak exposed 14,014 attributes and 2,596 modules of various Google systems. Maybe twenty (two or three dozen tops) of them should change what your business should do on a daily basis for your SEO. Read together they show what Google’s search engine may promote or demote, at four overlapping levels: the document (URL), the content in it, the domain (and its main entity), and the off-site signals. If read properly, it challenges the older practices in content marketing, website management and link building.
Most coverage treated the leak as a news event in May 2024. It is not a news event but a standing evidence base, and it got stronger every time the antitrust (DOJ testimonies) record produced another exhibit.
This article isn’t a breakthrough analysis of leaked documentation. It is a summary and a verdict: what is clear enough to use it in everyday SEO-related actions and long-term planning.
For example, something that has helped me shape my current view on link building is the traffic argument: the pages that carry real traffic are usually the ones that have the ability to pass the most authority, and that holds for the links you chase off-site and for the internal links you place yourself. Obviously there’s more and a website with tons of traffic can be a bad backlink placement. So never get attached to one metric without verifying the broader context. There are more factors to look at. You can check my talk (focused on off-site decisions) in Brighton 2024 (October) on that topic:
I read the leak the way I read a Google patent or a DOJ trial exhibit: not as the final truth, not as a scandal, as evidence. Most of what follows agrees with the people who parsed the files first. The work here is deciding what a business should do about it. Treat this article the way you read meta-analyses. It’s not new research. It’s a practical summary for business oriented SEOs and marketers.
Where I am reading between the lines rather than quoting, I say so. Where I act on a reading anyway, I say that too. Written by Szymon Słowik, SEO strategist and consultant, takaoto.pro founder and creator of the BUXS methodology (my own framework, based on several others combined with the leak, DOJ, exploits, patents and hints hidden in the official documentation).
Everything below is an answer to a question, in short form, with the tactic attached. Counting attributes is not the work. Deciding what to do on Monday is.
The Google Content Warehouse API leak (also called the Google API leak or Google algorithm leak) is a May 2024 disclosure of internal attributes and modules from Google Search, sourced by Erfan Azimi and first published afaik by Rand Fishkin at SparkToro. The raw field definitions are public on hexdocs.pm.
Disambiguation note: if you came here about the Gmail password headlines, those come from infostealer malware on personal devices, not from Google’s servers, and not from this leak.
TL;DR:
- The documents list what Google could store and compute. They do not list weights, and they are not a ranking-factor checklist.
- Retrieval decides eligibility before ranking decides order. Most SEO arguments happen one stage too late. I covered that during SEMKRK big 2026 in Cracow (it was in Polish, I’ll cover that soon in the form of an article).
- Clicks are the arbiter Google leans on hardest, and it said why under oath: its own reading of documents is “just a guess” (and they’re bad at it – their words, not mine), so it watches people instead.
- Site-level trust is largely static (long-term) and largely about the site rather than the query. That is the case for funding brand.
- A link’s value looks conditional on the page carrying it. Same rule applies to your internal links. This is why you should link from high traffic pages to more specific, money making ones.
- None of it is a switch. All of it is a time-series, which is why waiting is priced.
If you read no further, read the table. Six decisions, who owns each one, what you measure it with, and how much evidence is actually behind it. The evidence column is the one to argue about in a planning meeting, because it tells you which rows you can defend and which ones are bets.
| Decision | Why it matters | Owner | How to measure | Evidence | Horizon (est.) |
|---|---|---|---|---|---|
| Promote the brand and impact named demand | Site-level trust is largely static and largely about the site, not the query. Branded demand is the input you can actually move. | Brand, PR | Branded search impressions, direct sessions, share of search, year over year | confirmed | 4+ quarters |
| Fix intent match on pages that already rank | Re-ranking watches what people do after the click, on a rolling 13-month window. A position with bad behaviour under it is a countdown. | Product, UX, Content | Search-ending clicks versus returns to the result page; return visits; position stability rather than position. Verify after each Core Update | confirmed | 1 to 2 quarters |
| Concentrate the topical and functional territory | Scatter raises the cost of placing you as a candidate at all. This is the eligibility problem, self-inflicted. | SEO, Content strategy | Share of published pages inside the defined topical expertise | documented | 2 to 4 quarters |
| Gate every brief on information gain | Effort and originality are modelled per URL. | Editorial, subject-matter experts | Number of unique information, tips, instructions and decision assistance that are new for the reader (compared to top10) | documented + inferred | 1 to 2 quarters |
| Write the title at brief stage | It works twice: once at eligibility assessment, once at the click that feeds re-ranking (most teams write it last, in five minutes). | Content | Title-to-query (its intent) match; click-through at a stable position | documented + inferred | immediate |
| Source internal links from the click report | onsiteProminence propagates from the homepage and from pages that earn clicks. Costs nothing to change. | SEO | Share of internal links originating on pages that earn search clicks | documented + inferred | 1 quarter |
The horizons are a rule of thumb from my own accounts, not anything the documents support. They are a case observation, and I have put them in a table next to court testimony, which is precisely what I warned about.
The one exception is engagement, which has a documented anchor: NavBoost’s window rolls over 13 months (from Pandu Nayak’s DOJ testimony, cut down from an earlier 18), so fixing intent tends to show inside a quarter or two but does not fully settle for over a year. To force re-ranking faster, you need heavy optimization, change of URL and documents content, confirmed by substantial amount of new traffic.
Note what the evidence column does to the order. The two rows with the strongest evidence behind them are the two that SEO does not own (in majority of organizations), which is the uncomfortable part.
What the leak is, how to read it, and the loop it serves
Start with the part nobody argues about. Google confirmed the documents are real. On May 29, 2024, after first declining to comment, spokesperson Davis Thompson told The Verge that the company would suggest:
“caution against making inaccurate assumptions about Search based on out-of-context, outdated, or incomplete information.”
Read that sentence closely, because it admits more than it defends. The authenticity is not in question. The warning is about how you read them, and it is the same warning this article runs on: out of context, outdated, incomplete. That is a fair description of the risk, and it is why every claim below carries a grade.
The documents did not reveal exact weights, thresholds, or the formulas that combine signals. The DOJ (Antitrust trial – US Department of Justice against Google / Alphabet Inc.) filings are explicit that those live elsewhere. What the documents show is what Google can store and compute about a page and a site, which is not the same as a ranking score.
So grade every claim before you take action and spend your time & budget. No single stream of evidence is worth much alone. The leak names fields without weights. Patents describe mechanisms that may never have shipped. Google’s public statements are written to guide you rather than to hand you the mechanism.
Stack them and the picture is not weak at all. Take NavBoost. The leak names the click fields, a patent from years earlier describes modifying rankings from implicit user feedback, and Pandu Nayak described the system under oath. Three sources, built at different times, by different people, for entirely different reasons, landing in the same place. If they draw a coherent picture, then it’s time to act accordingly.
Yandex belongs in that stack too. Its source code leaked in January 2023 with roughly 1,900 ranking factors and, unlike Google’s, with weights attached. Engagement ranked high there. Mike King’s read of that code found dozens of factors referencing Google by name, and a number of Yandex engineers had worked at Google, so the overlap is not just a coincidence.
It corroborates rather than confirms, and I use it that way: as a look at what a working search engine of that generation actually weighted, not as proof about Google.
One thing to hold before the mechanics start. Search rewards a loop, not a single tactic. Strategy produces brand, loyalty (users’ trust) and engagement (users’ decisions). Those produce behavioural signals. Those signals lift retrieval and ranking. Better visibility exposes more people to the brand (company or author), who then search for it by name and come back directly, which feeds the loop again.
That is the positive feedback loop BUXS is built to start and defend. The correlation is easy to observe. The causal path is an operational hypothesis, not a documented mechanism. A site with strong content and no behavioural feedback is renting attention. A site whose users come back owns equity that compounds.
By the way, it relates to the SEO avalanche technique which at its core is still valid.
The machine in one pass
The graph below is a simplified representation of signals grouped by what they reward and what they punish. Weights are unknown for all of them, and that is the point: knowing where a signal acts tells you which team in your company owns it. In fact, those spaces often overlap and this is why someone should orchestrate decisions between the departments. This is where SEO knowledge earns its place in digital marketing as a whole.
Sorted by what you should do about them, the same fields fall into three buckets.
| Bucket | Signals named in the leak | What it means for your business |
|---|---|---|
| Act | NavBoost click family (goodClicks, badClicks, lastLongestClicks, squashed vs unsquashed), siteFocusScore and siteRadius, contentEffort and OriginalContentScore, siteAuthority as a concept | Each maps to a decision you already control: engagement quality, topical concentration, content investment. Spend here. |
| Watch | Chrome view data, freshness date signals (bylineDate and its relatives), hostAge, the named demotions (pandaDemotion, navDemotion, exactMatchDomainDemotion, anchorMismatchDemotion), the PageRank variants | Real, named, meaning or weight unresolved. Track how the reading firms up; some, like the demotions, are avoidable own-goals. |
| Ignore | Assistant grounding modules, quality-rater platform fields, topical whitelists (elections, COVID, travel), indexing and serving plumbing | A different machine, a different pipeline, or a different problem than yours. These are not ranking levers you act on on a daily basis. |
There is a structural reason the ignore bucket is so big. The leak was never solely a search-ranking documentation. It is Content Warehouse API documentation, and those 2,596 modules cover YouTube, Assistant, Google Books, video search, links, web documents, retrieval and crawling systems alongside web ranking. A large share of over 14K attributes were never levers on your website at all. They were designed for a different product, counted into a number the SEO industry repeatedly treated as a list of ranking factors. I’ve seen jumping to unjustified conclusions about SEO based on insufficient data on particular signals, which turned out to be YouTube related rather than Search. To be honest and transparent – I made that mistake once too.
This is why digging into every signal and nuance stops making sense at some point. From my experience this is where diminishing returns start. Get the ‘act bucket’ right and you have captured most of the effect that is actually on the table. The people who over-analyze a leak (and other sources like patents, sometimes unrelated) miss that, and postpone the work which builds authority. Better done than perfect rule applies here perfectly.
Eligibility: what decides whether you are even in the game (retrieval)
What are the pre-ranking and re-ranking stages?
Crawling, then an index, then a first scoring pass that assembles a candidate set, then a re-ranking layer on top that can move a result after the fact. The full pipeline is its own subject.
Two consequences are worth money here. You can lose at the candidate stage without ever appearing in a rank tracker, because a page that was never eligible has no position to report. And you can win the first pass and lose the second, because the re-ranking layer is where behavior lands with the true impact.
Tactic: when a page will not move, check whether it is losing at retrieval or at re-ranking before you touch the content. If it never appears for close variants of the query, that is eligibility. If it appears and slides, that is behavior.
When does Google use BM25, when embeddings, and when a dot product?
Short answer: all three, and not in the order most people assume. They do not hand off in sequence. Lexical and semantic retrieval run in parallel and their results get merged (pre-ranking stage), by reciprocal rank fusion or something like it. There’s also some impact of so called fresh index (for the new content to test its eligibility in the field).
One grade note before the table: no leaked field is called BM25. It is the standard lexical scoring function in information retrieval, and the first-pass placement below comes from Geraci’s reading of the DOJ exhibits rather than from a document that names it. Also check Pedro Dias’ article on BM25 use in Google search.
| Stage | What runs | What it decides | Grade |
|---|---|---|---|
| Lexical pass | BM25-style scoring over the inverted index. First-pass scoring alongside Mustang and Goldmine ABC | Exact strings: model numbers, versions, brand names, jargon | Inverted index confirmed by Kim under oath. The BM25 placement is Geraci’s reading of the DOJ testimonies |
| Semantic pass | Embedding models, RankEmbed among them, running in parallel not after | Meaning: synonyms, paraphrase, intent behind different phrases | RankEmbed confirmed in the trial record |
| The scoring maths | A dot product rather than cosine similarity | Whether magnitude counts, which it does | Geraci’s reading of the DOJ exhibits |
| The merge | Rank fusion across both passes | The final candidate ordering | Standard practice in hybrid retrieval, not a named Google system |
What Kim does confirm is the structure the first row depends on. In the DOJ notes the index is “the actual content that is crawled, titles and bodies and nothing else, i.e., the inverted index,” and query-based signals get computed when the query arrives rather than stored.
That is the part you can bank: retrieval starts from words on the page. Which scoring function does the matching is a detail you do not get to see.
The third row is the one people miss, and it is worth sitting with for a second. Working through the antitrust exhibits, Massimiliano Geraci shows RankEmbed scoring with a dot product rather than cosine similarity.
Cosine normalises for vector length; a dot product does not. So magnitude counts, and popularity or hand-crafted signals can ride inside a score that looks like pure relevance. Two pages equally on-topic are not equally scored.
Two parameters inside BM25 are worth knowing, because both are stable across implementations and both kill a habit.
- Term saturation (k1, typically around 1.2). Repeating a term gives sharply diminishing returns. A hundred occurrences is worth roughly twice one occurrence, not a hundred times. Keyword density was never a lever, and here is the arithmetic that says so. Focus on entity relations and distribution rather than simply keywords = strings. Entity salience > keyword density.
- Length normalization (b, typically around 0.75). A short focused document usually beats a long diluted one on the same query, because the score is normalized against document length. That is an algorithmic argument for narrow pages, not just a strategic one.
This split between the two passes is not decorative. Embeddings are good at meaning and bad at identifiers. Model numbers, version strings, brand names and narrow domain jargon flatten into a generic neighbourhood when you embed them. Those get matched lexically or not at all.
Tactic to implement: put the buyer’s actual words on the page as exact strings, especially anything that functions as an identifier. Then stop treating relevance as something you win on purity, because the maths says it is not pure, and stop enforcing splitting one concept across synonyms, because that splits its term frequency too. Align to your audience. If they use some words incorrectly (from the experts POV) explain that on the page, but target those “incorrect” queries precisely.
Second tip: decide cautiously between:
- the long form articles (usually good for answering broad queries with “I want to learn something about this topic” intent – like this article),
- straight to the point articles (better to answer specific questions; just provide the answer + preferably source and reasoning behind it).
How to write a good title?
One of the attributes from the leak called titlematchScore is described as a score “of the site, a signal that tells how well titles are matching user queries”. Read that again: it is site-level, not one page’s title. A single badly framed title is just an error, but the whole list of badly structured title tags become a pattern. This is why you should implement some discipline rather than a per-post decision. Then the same title does a second job, because it is what a human reads before clicking, and that click feeds the re-ranking layer.
- Carry the job the searcher is trying to finish, in their words, not in your product’s words.
- Match the query class (or query framing as I call it in BUXS). A comparison query wants a title that promises a comparison.
- Front-load the entity and the job. Length matters less than match, and padding to a character count is not a strategy.
- Write it at brief stage, not last. Most teams write it last, in five minutes, and it is the one asset working at both ends of the pipeline.
This is why you should not be too bold with statements like “the title does not have to contain the keywords as long as it passes the meaning”. Semantics matter, but they carry different weight at different stages. Do not be dogmatic.
Why does BUXS assign a query frame before anything is written?
Because Google decides what kind of answer a query wants before it looks at your page. Mark Williams-Cook’s exploit of a Google scoring endpoint exposed more than 2,000 classifying properties, eight refined query semantic classes, and a site quality score with a hard eligibility threshold for search features (the widely quoted 0.4 is an example figure from the disclosure’s coverage, not a measured constant).
A frame is a rule for what an Hx is allowed to be. Get it wrong and the page still reads fine but stops being extractable, because the section boundaries no longer line up with the questions being asked. A page built as a definition tends to struggle on a comparison query or a causal one, however good the definition is.
I personally run twelve frames in my BUXS engine (based on intents and grammar basically). Here are the six that come up most often in my own work, and where getting the structure wrong costs the most. Procedural and definitional carry most of my English map between them, but take a look at others too:
| Frame | What each H2 has to be | The mistake |
|---|---|---|
| Definitional | One facet of the definition: what it is, what it is not, where it shows up, why it matters | Saying the same definition four times in different words or skipping to how-to guiding that user didn’t ask for |
| Procedural | A step, in order, phrased as the action. As a whole, Hx structure should build more or less how-to instruction | Steps that are really categories. If the order does not matter, it is not procedural. |
| Comparative | A dimension of comparison, never an option | One H2 per product, which is a listicle and loses comparison queries |
| Evaluative | A criterion the reader will judge by (good for rankings) | A verdict with no stated criteria, which reads as opinion |
| Causal | One cause, or the mechanism linking cause to effect (answering why type of queries) | Listing symptoms as if they were causes |
| Analytical | Question, then method, then finding, then interpretation | Findings with no method, which nobody can cite |
The other six (contextual, commercial, oppositional, temporal, preventative, navigational) follow the same rule: the frame decides what an H2 is allowed to be, and the H3 holds the instances inside it.
Tactic: before writing, decide the frame, then check every H2 against it. If two H2s answer the same question, you have a structure problem rather than a length problem.
Query frames matched properly in the title and Hx structure could be one of the most important signals for both retrieval and re-ranking (CTR, engagement) stages.
The SERP is Google’s own answer key
The result page Google builds for a query is Google publishing its own verdict on the intent it inferred. Comparison tables mean it read a comparison. A numbered snippet means an instruction. A display of a Knowledge Panel means it resolved an entity.
Before a query gets a page read SERPs: which modules are present, whether ads crowd the top, whether the answer is already given away, how much of the space is video, how titles are framed.
The Glue system mentioned in the Google Content Warehouse API leak, aggregates interaction across every module on the results page, not the ten blue links alone, so the composition itself is measured.
And structure is the common reading of what contentEffort picks up. The field is documented. Its inputs are not. Building the page in the shape the SERP is asking for is an intent play and an effort signal at once. It is also why zero-click searches are a composition problem before they are a traffic problem.
Tip for the marketer and the SEO specialist: open the SERP before the brief, list the modules, and specify the format the brief has to hit. If the page you are planning would not fit on that result page, you are planning the wrong page.
Shoutout to Maciej Markowski and Germans Frolovs, with whom I debated this a little.
Clicks are the verdict
NavBoost is the one system here you do not have to take from the leak, because Pandu Nayak, Google’s VP of Search at the time, described it under oath during the DOJ testimonies. The full breakdown, field by field and with the manipulation question priced, lives on the dedicated NavBoost page.
It re-ranks on aggregated click behaviour: which results end a search, which send the user straight back, which one finally satisfied the searcher. Counts roll over a 13-month window. Glue does the same job across the whole result page and combines the findings, which feeds SERP layout adjustment.
Why lean on behavior this hard? Because by its own account Google’s ability to read documents directly is limited. An internal presentation by engineer Eric Lehman, trial exhibit UPX0203, is precise about the degree: “Today, our ability to understand documents directly is minimal. So we watch how people react to documents and memorize their responses.”
A system that grades its own reading that way has to find another arbiter, and the most efficient one available at that scale is what a billion people do after they click. The watching does not stop there either: DOJ testimony established that Chrome data reaches Google’s systems after years of denial, and the leak has chromeInTotal.
So a ranking is a hypothesis and your visitors are the test, from Google’s perspective. A page can rank and lose the ranking a quarter later, because the same system that promoted it is still watching. Satisfaction is the product; the ranking is only a means to an end. This is the behavioural half of BUXS, and a UX and SEO integration problem more than a reporting one.
A note from my own work, graded as a case observation: one account, nothing controlled, several things moving at once. At takaoto.pro we run SEO for a B2C fashion ecommerce brand competing with labels built around shopping malls, since 2019 with a short break. Through the lockdowns it grew enormously, because the brand was digital native and the mall brands could not adjust fast enough.
Years later the direction reversed. Branded search impressions and clicks fell year over year and direct traffic went with them. Nothing about the site got worse. The domain collected plenty of fresh off-site and on-site signals through promotion and optimization work. The preference moved, and the rankings followed it down the same way they had followed it up.
Two confounders I will not pretend away: SERP layout changed underneath us, and paid competition got heavier. But user preference is the one line running through the rise and the fall, and it has hit multiple ecommerce sites over the last few years.
Tactic: take your top thirty ranking pages and check whether they end the search or restart it. The ones that restart it are your backlog. Fix intent match first, format second, links last. And stop reporting positions alone, because a position with bad behaviour under it is a countdown, not an asset.
Three costs the leak lets you price
What is the cost of retrieval?
The principle is Koray Tugberk Gubur’s: the cost of ranking has to be lower than the value of ranking. It has two halves, and most people only see the first.
Technical. Every fetch has a price. Mike King’s example is the sharpest I have seen: reviewing a client’s log files he found large volumes of 499 responses, an nginx code meaning the client closed the connection before the server answered. It is not in the HTTP specification, so most log tools do not surface it.
An assistant fetching your page live at answer time does not get a degraded result when it times out. It gets nothing, and there is no retry. That is a citation that never happened, and it leaves no trace in any report you currently read.
Semantic. The harder it is to work out what your site is about, the more work the system has to do to place you as a candidate for anything. siteFocusScore and siteRadius are the leak’s names for that shape, and RankEmbed scores how well a page answers a query once you are in the set.
I put those two together as a confidence level: how sure the system can be about what you cover, formed from topical concentration and then confirmed or contradicted by how people behave on your pages.
High confidence means comparatively cheaper retrieval, which means you get considered across more of your territory without earning each query from scratch. Low confidence means every query is a cold start. The fields are documented. Confidence level is my framing, not Google’s vocabulary: grade it an operational hypothesis.
Tactic: grep your logs for 499s this week, then check time to first byte for a bot rather than for your own browser. A single-page app can feel instant to a human while the part a fetcher experiences stays slow.
What does going too broad cost you?
The cost lands earlier than people expect, at retrieval. The more scattered your topics, the harder it is for Google to label your site and place your pages as candidates. That is the eligibility problem again, self-inflicted.
This is why a topical map is a capital allocation document rather than an SEO aesthetic. Depth in one territory compounds. Breadth across five does not, or at least it costs more.
Tactic: take your next twelve planned articles and cut the ones outside your territory. Spend the budget going deeper inside it.
What does waiting cost you?
These are not switches you flip, they are time-series. NavBoost’s window rolls over 13 months, so engagement is a rented asset, re-earned continuously. Site authority accrues slowly and decays slowly. Territory coherence takes quarters. The loop needs a full cycle before it shows up in a report.
Which means waiting for certainty is itself a decision, and it is priced. A competitor who starts building named demand this quarter is not one quarter ahead of you next year, they are compounding while you are still reading. The leak will never be confirmed by an announcement. Act on the direction.
Site-level trust: siteAuthority, Q* and ranking states
siteAuthority is a site-level score inside CompressedQualitySignals, described as “converted from quality_nsr.SiteAuthority, applied in Qstar”. It is not Moz’s Domain Authority, Ahrefs’ Domain Rating or Semrush’s Authority Score; those model Google’s link graph from the outside, and treating them as a proxy for how Google scores authority is a category error. Q* is the broader site quality score the field feeds, and the name is Google’s, not the industry’s. It is also part of the mechanism under the question of why Google favors big sites.
The strongest evidence for what this bucket does is not the leak. It is DOJ exhibit PXR0356, notes from a call with Google engineer Hyung-Jin Kim: the Quality bucket is “generally static across multiple queries and not connected to a specific query”; Q “is largely static and largely related to the site rather than the query”; and PageRank sits inside it as one input, a distance from known good sources.
I broke the whole site-level state down field by field, with evidence grades, the NSR retuning mechanism and the correction of the widely quoted 0.4 threshold, in siteAuthority: the site-level authority score in Google’s leaked documents.
Now map that onto Google’s public vocabulary.
| Leak and testimony | What Google says in public |
|---|---|
| Quality bucket, largely static, site-level | Site reputation, helpful content, E-E-A-T |
siteAuthority inside CompressedQualitySignals | “We do not have a domain authority metric” |
| Reference queries in the Panda ratio (patent US9031929B1, active to 2033) | “Build a brand people look for” |
| NavBoost click family | “Focus on satisfying the searcher” |
Same bucket, different words. The public guidance is not false, it is the non-mechanical description of the thing the code names. Read that as a business statement and it is the clearest one in the record: topicality is rented per query, quality is owned per site.
What does NSR actually stand for?
Every public reading of the leak expands NSR as Normalized Site Rank. Kopp’s catalog does, Anderson’s pipeline work does, and so did I until I asked. The person who sourced the documents says the expansion is wrong.
No document defines the acronym, so I asked Erfan Azimi. His answer: the correct name is New Site Rank. Somebody guessed early, the guess got repeated, and repetition did the rest. I repeated it too, which is the ordinary way a field acquires a fact nobody checked.
What sits behind the name is the part that changes a decision. In his words:
“It’s directly connected to the RankLab system, and RankLab collects user data using live experiments, and they will collect the data, and retune it slightly based on human raters feedbacks. After retuning, the new data and new QualityScore is pushed out via a broad core update and affects the entire site. NSR has other components too, like links, PageRank, clicks, impressions, chrome traffic, and spam factors. There is a ratio of weight, smoothing, exact curve.”
Erfan Azimi, in a direct message. Grade that as a source account and nothing more: primary, first-hand, from the person who held the documents before anyone else, and not checkable against the files by you or by me. You can trust this source or not. I do.
Kim (Google) testified that Quality is largely static. Azimi describes what makes it move: the score is retuned offline against live experiments and rater feedback, then shipped in a broad core update, and it arrives across the whole site at once.
So site-level quality is not a dial you nudge weekly. It is a level you sit at until the next push. That is what a ranking state is underneath the name, and it is why the cluster in the case further down handed back half its gain on a core update with nothing on the site getting worse.
That it has two factors, not one. Coverage times user actions. siteFocusScore and siteRadius describe the shape of your coverage. NavBoost and Glue supply the actions. Coverage on its own is a claim. Coverage confirmed by behaviour is authority.
That is the leak-side reason a large content push with no engagement stalls, and it is why I stopped accepting coverage counts as a health metric.
What are ranking states?
Rankings do not move continuously. They sit in states, hold there, and shift when something crosses a threshold. Koray Tugberk Gubur’s nomenclature for that is ranking states, and the leak gives it a mechanism: if the Quality bucket is largely static, or long-term and rarely shifting if you prefer that definition, and site-level, then a state persists because the thing holding it up was never query-specific in the first place.
Practically, incremental work inside a state shows nothing, and then the state changes. That is the flat-then-jump pattern every practitioner has seen. Ever had to defend six months of work that produced nothing, right before it produced everything?
Tactic: stop reporting weekly position movement to a board. Report the state and what would move you out of it.
The same client account is the clearest example I have of a state going the other way. Category pages used to be where we won. Once branded search declined we pushed everything that normally works: more content, refreshed content, more backlinks, more internal links, more categories cut by intent. The results did not follow and the ROI got hard to defend. Work does not substitute for demand.
One instance of the loop running forwards, graded as weakly as it deserves. Around 2015 I worked with a photo products company, the kind that sells photobooks and prints. Every year they bought television around Christmas, for reasons that had nothing to do with search.
Rankings improved broadly in the same window, and not only on the terms the advertising mentioned. No measurement behind it, a seasonal category, a decade old. It is the observation that made me stop reading brand spend as a marketing cost sitting outside the SEO plan.
Tactic: move a real share of the SEO budget into brand and digital PR, and defend it at board level as an SEO line. It is the one input that makes everything else you buy cheaper.
Content that is not a commodity
Why do we build on EAV structures?
Entity, attribute, value. Retrieval and grounding work on statements, not on pages, so decomposing a topic into those three gives you the units that can actually be matched, lifted and cited.
It does three jobs. It exposes coverage gaps a keyword list hides, because you can see which attributes of your entity you have never addressed (the ones your competitors answer and you skip). It kills commodity pages before they get commissioned, because an attribute where you have no value to supply is a page you should not write.
And the third job is mechanical. Attribute values are exactly the strings embeddings handle worst. A model number, a policy limit, a version, a regulation reference: embed those and they collapse into the generic category around them. Written as literal values, they are what the lexical pass can actually match. EAV is not only a machine-readability play, it is how you stay eligible for the queries that name a specific thing.
How do we decompose an entity?
- Name the entity, then list its attributes as a buyer would ask about them, not as a taxonomy would file them.
- For each attribute, write the values you can actually supply, with your own numbers where you have them.
- Each value becomes a section or its own node, decided by demand and by whether it is distinct enough to stand alone.
- Write the claims as subject-predicate-object so each one is liftable on its own.
That is the short version. How Google uses entities to understand content covers the mechanism properly.
Why target zero-volume keywords?
Because eligibility is query-shaped and a fan-out decomposes a question into sub-questions no large publisher answered specifically. A query showing 0 to 10 searches a month is often a real sub-question with no owner, and that is exactly what gets retrieved and cited inside a generated answer.
Volume tools measure head demand. The fan-out consumes specificity. Two different things, and the second one is now where citations are decided.
There is a second reason that has nothing to do with traffic. Answering the narrow questions inside your territory raises the confidence level, because coverage of an attribute is what tells the system you own that ground.
Tactic: stop filtering the keyword list at a volume floor. Filter it by whether the query belongs to your territory and whether you can answer it better than the current source.
What separates content effort from gibberish?
The leak names both ends. contentEffort is a model estimate of the effort behind an article page and OriginalContentScore judges originality for thin pages. At the other end sit GibberishScore and the spam-token scores, which exist to catch text that costs nothing to produce. What either end actually reads is not documented, and the common reading is that structure stands in for effort.
The useful part is that this is one idea wearing three vocabularies. Engineering calls it contentEffort. Google’s Quality Rater Guidelines call it added value. Marketing has called it differentiation for fifty years. It is related to, without being the same as, Information Gain, a separate Google patent (US11354342B2, not part of the leak).
| Commodity framing | Genuine framing |
|---|---|
| The generic angle everyone in the top ten already took | A frame built from your own client work or your own model |
| Numbers cited from somebody else’s study | Numbers you generated and can defend |
| A method described at the level a competitor could paraphrase | A method described well enough to copy |
| No named human, no accountability | A named author, a real outcome, a mistake you corrected |
Experience is the one thing a competitor cannot take from the existing top ten. None of it can be scraped, which is exactly why it raises the odds on both counts at once. It gives an effort estimate something real to read, and it puts something on the page the current top ten does not already say.
The byline has a field too. authorObfuscatedGaiaStr stores author identifiers against a document, which means authorship is not only a trust cue for your reader. An author can be treated as an entity and carried across documents. The field name is documented; reading it as a Google account identifier is the common interpretation rather than a stated fact.
The practical difference is between a house byline and a person with a body of work attached to a consistent identity. This is one of the few places where EEAT stops being a guideline and has something field-shaped underneath it. If your experts are ghostwritten into a generic “Editorial team”, you are throwing away the one part of expertise the system can actually store.
On whether Google detects generated text and demotes it: I do not think it does, and neither does Mike King. Detection is unreliable in both directions, which is why the industry keeps reaching for watermarking.
His reading is that a new site gets a provisional quality score by resemblance, then behaviour settles it. Generated content at scale does not fail because a classifier caught it. It fails downstream, when nobody stays on the page.
Why does UX decide whether the framing lands?
Because a unique frame nobody finishes reading produces the same behavioural evidence as a commodity page. Effort is judged by proxies. Satisfaction is judged by people. You need both, and UX is the half most teams never instrument.
This is the point where two of the three BUXS surfaces stop being separate axes. Semantics decides what the page is about, UX decides what form it takes, and the SERP is the brief that tells you which decision to make.
A case where that was the whole brief. Over the past year we rebuilt a travel-insurance cluster on the blog of an international insurance company’s Polish site: real comparison tables instead of prose, readability rebuilt for the question being asked, uniqueness enforced against what already ranked, and the company’s own numbers wherever a generic article would have used somebody else’s. Google’s own guidance for AI surfaces asks for the same thing in its own words.
| Measured over twelve months on that cluster | Result |
|---|---|
| Queries new to the top twenty | 89, 41 of them in the top three |
| Citations inside AI Overviews | 2 → 44 |
| Result pages in the set carrying an AI Overview | 61 percent, cited in about four in ten |
| Sample traffic | 61 → 557 |
| Queries lost from the top twenty | 85 |
| Since the end of June | Roughly half the gain given back, with a core update on the turn |
I am not going to pretend the last two rows away. That is the section on waiting made concrete: a time-series, not a switch. The structural change, being cited where the answer is now assembled, is the part that held.
Tactic: put a named human, one first-hand account, and one piece of data you generated yourself into every page that matters. If the brief cannot name those three, the page is a commodity and it will be priced like one.
Links after the leak
What changed about link building?
The weights are still hidden. What follows is a model of the link graph reconstructed from leaked variable names, above all Shaun Anderson’s post-leak link building work. It is a high-confidence interpretation, not sworn testimony, and it still changes what you would do on Monday.
The central reading: a link’s value is conditional, not inherent. The documents point to a tiered index, and they name the tiers: scaledSelectionTierRank scores every document across serving tiers called Base, Zeppelins and Landfills. A link sitting on a page that earns no user clicks is read as relegated to a low tier. A link is not fully live until the page carrying it proves its own worth by being visited. Traffic, on that reading, is the activation switch. That last step is an operational hypothesis, not something the documents state.
Mike King, who ran the first parse, lands in the same place. On Edward Sturm’s podcast he describes an index stratified into four buckets, high, medium, low and fresh, mapped to physical storage, and reads the equity a link passes as scaled by the tier its page sits in. On the metrics most teams buy instead he is blunter than me: domain authority and domain rating are entertainment metrics.
So three criteria replace the one most teams use.
| Judge a link target by | Not by |
|---|---|
| Whether real people land on the page | Its Domain Rating or Domain Authority |
| Whether the page itself is retrievable and indexed | Whether the domain looks strong in a tool |
| Whether the anchor matches what the target is about | Whether you could get the anchor you wanted |
That is what data-driven link building actually means. A page with a big Domain Rating and no visitors cleared nothing. And placement is not the finish line: a link on a page nobody reads is an asset you bought and never switched on.
One disagreement with the post-leak consensus, and this one is mine alone. Scaled manipulation is finished, and at scale that is true. But expired domains, satellite sites, private networks, whatever you call them, still earn their keep in small numbers, and the tier logic above is why.
A domain nobody links to and nobody reads sits in the bottom tier and passes nothing, which is (on this reading) why link farms stopped working.
Wired means connected to the link graph, not merely registered: a clean history whose link profile survived, carrying references from institutions, large publishers or corporate sites that already sit close to the seeds. The work is restoring what used to point at the property, which is why selection is most of the job and why the overwhelming majority of expired domains are worth nothing.
They also do a second job now. Follow the citations under AI Overviews and LLM answers and niche pages keep appearing, because a fan-out query gets decomposed into sub-questions no large publisher answered specifically.
And the selection that puts a source into a generated answer does not require a link at all. Grade that as my observation rather than evidence, and price in that it is against Google’s link policy, with anchorMismatchDemotion and the anchor velocity scoring naming the downside in the leak itself.
What changed about internal linking?
This is the half almost nobody applies, and it costs nothing to fix. Internal links are normally built on taxonomy: what relates to what in the abstract. That is one axis. The second axis is user flow, and traffic is the evidence for it.
If a link’s value is conditional on the carrying page being read, then your highest-traffic pages are your strongest internal linkers, and most sites waste them by linking from template shells and orphaned archives no human ever validated. Traffic ranks the candidates. Relevance and placement still decide whether the link is worth making.
That second axis is not only my inference. The leak has a field for it. onsiteProminence measures how important a page is inside its own site, and the description says how it is computed: by propagating simulated traffic from the homepage and from high CRAPS click pages. CRAPS is the click and impression module named earlier in this article. Internal importance is modelled as flowing out of the homepage and out of the pages that earn clicks.
One refinement follows from that wording, and it changes the tactic. It says clicks, not sessions. Build the source list from Search Console, not from your analytics. A page carrying heavy direct or social traffic and no search clicks is a different asset, and on this reading it is not the one lending prominence.
- Source internal links from the traffic report, not from the sitemap.
- Run them from broad-reach pages into the narrow, conversion-adjacent pages you actually want moved.
- Give each link a role. A link that exists because two pages are topically adjacent is doing half the job of one placed along a path users take.
- Check the anchor against what the target is about, because the same mismatch demotion applies inside your own site.
Tactic: take the twenty pages with the most real visits and make sure each links to the page you are trying to move. Then apply the same filter to every target on your outreach list.
What this evidence changed inside the BUXS method
A framework that does not change when the evidence changes is a brand, not a method. These are the rules I run, and the evidence each one rests on.
- Territory before volume. Every map opens with an explicit boundary and a list of what the site will not cover. Off-territory pages have to be argued for, and the drift is priced against the work it dilutes. Rests on siteFocusScore and siteRadius, and on the retrieval argument above.
- A creation gate on semantic overlap. A proposed node is embedded and compared against every node already on the map. Above a calibrated similarity threshold it does not get created, it gets merged into the node that already owns the ground. The number stays in-house, but the reasoning does not: it is specific to one embedding model, it sits between a lenient clustering threshold and a much stricter duplicate threshold, it was calibrated against a corpus of confirmed duplicate pairs, and it answers whether a candidate would swallow its neighbouring territory rather than whether it repeats one. There is one escape hatch, for deliberate strategic bets, and it has to be named as one. Rests on RankEmbed and on the cannibalization problem the leak makes legible.
- An information-gain check at the brief stage, not the review stage. A brief that cannot name what the page adds to the current top ten does not get commissioned. Rests on contentEffort, OriginalContentScore and the Information Gain patent.
- Format follows query class. The brief specifies the answer shape, not only the topic, and the shape comes from reading the live result page. Rests on query classification, the eight semantic classes from Williams-Cook’s exploit, and on the common reading that
contentEffortpicks up structure through markup. - The title is written at brief stage. Never last, never in five minutes. It carries the job the searcher is trying to finish, in their words. Rests on titlematchScore working at both ends of the pipeline.
- Every node carries answer blocks. Explicit questions with passages built to be lifted whole, because the unit that competes is the section. Rests on passage-level retrieval and on the embedding stack.
- Internal links are typed and sourced from traffic. Each link carries a role, and the pages doing the linking are chosen from the traffic report rather than the taxonomy. Rests on the index-tier reading and on user flow as the second axis.
- Branded demand sits in the same plan as content. Not a separate budget, not a later phase. Rests on siteAuthority, reference queries, the Panda ratio and the third-party correlation data.
- Engagement gets audited before link spend. Ranking pages are checked for whether they end the search before anyone buys another placement. Rests on NavBoost being court-confirmed.
- Every recommendation carries its evidence grade. Court-confirmed, documented, or my reading. A client should always be able to see which of the three they are being asked to spend against.
None of these are settings you copy. They are the decisions the evidence forces once you stop treating a leak as trivia and start treating it as a standing constraint on where the money goes.
Every signal in the act bucket has been drawing one pattern: engagement is the UX layer, coherence maps to semantics, site-level trust is brand. I would not push it as hard if Google had not written it down itself.
In DOJ exhibit PXR0356 Kim explains what a competitor could reconstruct if forced disclosure ever happened: “the high-level buckets that compose the final IR score.” ABC, meaning topicality, built from Anchors, Body and Clicks, which Shaun Anderson identified in the documents as the Goldmine scoring engine. NavBoost. And Quality. Cyrus Shepard surfaced the passage publicly and read it the same way.
Three buckets, and they are the same three surfaces this article has been arguing from the start. Topicality is content and links against the query, which is semantics. NavBoost is behaviour, which is UX. Quality is the static, site-level notion of trustworthiness, which is brand. I did not reverse engineer that structure from the leak. Google described it to the Department of Justice, and the leak simply named the fields underneath it.
| BUXS surface | The general concept | How it shows up in the leak |
|---|---|---|
| Brand | Real-world authority & site-level trust | siteAuthority, NSR / pagerankNS (“nearest seed”), reference queries (branded search) |
| UX | Engagement & user behavior | NavBoost: goodClicks, badClicks, lastLongestClicks (court-confirmed); CRAPS; Glue |
| Semantics | Topical coherence & content effort | siteFocusScore, siteRadius, siteEmbeddings / RankEmbed; contentEffort, OriginalContentScore |
I named the methodology BUXS (Brand times UX times Semantics) after years of audits, years before I read a line of this leak. It does not prove the framework and I will not claim it does.
I built BUXS around what I believed Google actually measures, and the leak shows its own engineers instrumented those same three surfaces. When your assumptions and the opposing system’s own documentation point the same way, stop hedging and start executing.
What to do on Monday
The moves are written at the end of each answer above. The ordering is the part worth adding: fix eligibility before engagement, engagement before links, and fund the brand through all of it, because it is the only line that makes the other three cheaper.
One organisational consequence sits under all of it. An SEO team owns almost none of its own inputs. Branded search is produced by brand and PR. Engagement is produced by product and UX. Information gain is produced by whoever actually knows the subject.
Run them on separate plans and you pay three times to build one signal. That convergence deserves its own argument and I make it in SEO as the strategic core of the organic ecosystem.
Anderson put it well: “The leak did not reveal how to win battles tomorrow,” he wrote. “It revealed how wars are decided.” In my opinion the doctrine is what the documents, the patents and the courtroom all point at together: trust, engagement, coherence, and effort.
Google leak takeaways by business model: SEO priorities for SaaS, expert services, ecommerce and B2C
The systems do not care what you sell. Your constraints do. A SaaS company and an insurer face the same NavBoost, but the surface each of them can act on is different, so the same evidence produces different Monday lists. The tables below are this article compressed per business model: the move that matters most at each layer, what to watch, and roughly when to expect movement. Wherever a cell says fund the brand, read it as building hard-to-fake market signals (earned mentions, repeat users, direct traffic), not as manufacturing branded searches. Under each table, one paragraph on how the four moves feed each other, because they are a loop, not a checklist. Horizons carry the same disclaimer as the decision list above: case observation from my own accounts, not something the documents state.
| Engagement NavBoost, Glue | Ship small free tools that end the search on your domain: checkers, generators, calculators tied to the product’s job. Deliver the processed result or a downloadable asset by e-mail, so the tool doubles as prospecting. Watch: search-ending clicks, return visits, e-mail signups. 1 to 2 quarters. |
| Authority & brand siteAuthority | Pick the USP and fight for that one, not for the aggregator’s whole list. Build presence in the top SERPs through listicles, a founder’s entity, social channels and fan-out queries, then expand. Use media within your reach to publish your own narrative with mentions and backlinks. Watch: branded and brand-plus-category impressions year over year, share of search versus direct competitors, earned mentions. 4+ quarters. |
| Coherence siteFocusScore, siteRadius | Publish inside the product’s job-to-be-done and kill the generic traffic blog. 40k visits from “productivity tips” buy you nothing here. Watch: eligibility on close variants of money queries. 2 to 4 quarters. |
| Effort & originality contentEffort, OriginalContentScore | Publish data only you can have: usage benchmarks, an annual survey, anonymized client stories and use cases. Original numbers are the one content type competitors can only cite, not copy. Watch: unprompted links and citations. About 2 quarters. |
How it connects: the free tool ends searches and collects e-mails at the same time. Links arrive without outreach, because useful tools get referenced. The traffic it earns lands inside the product’s own territory, so coherence holds instead of leaking. And the anonymized outcomes people generate with it become the proprietary data only you can publish. One asset, five effects: engagement, pipeline, authority, coherence, effort.
SEO for expert services (legal, investing, consulting): price transparency and a named methodology
| Engagement NavBoost, Glue | Publish what competitors won’t: fees, process timelines, what happens at each step. The searcher stops searching on the page that finally gives a number. Watch: search-ending clicks on cost and process queries. 1 to 2 quarters. |
| Authority & brand siteAuthority | Brand the firm’s own take: a named methodology or registered sub-brand for the service, with practitioners fronting it. Push that narrative through the trade press within your reach, with mentions and backlinks. Watch: firm and framework name queries, mentions, referring trade domains. 4+ quarters for brand lift; mentions often appear earlier. |
| Coherence siteFocusScore, siteRadius | One practice area, one territory. Weekly news commentary scatters the site faster than it builds it; a competitor with far fewer posts wins procedure queries on focus. Watch: procedure-query eligibility. 2 to 4 quarters. |
| Effort & originality contentEffort, OriginalContentScore | Publish what only a practitioner can: precedent breakdowns, real case timelines, working templates delivered by e-mail. Add the corner cases: how it works, where the loopholes and dangers are, where relying on a chatbot instead of an expert’s analysis fails. Watch: links from professional audiences, template requests. About 2 quarters. |
How it connects: transparency and corner cases work as a pair. The fee page brings the searcher in; the corner-case analysis shows why the fee is worth paying, and where a generic chatbot answer would have walked them into a loophole. The named methodology gives the trade press something to cite and gives practitioners something to carry on stage.
Ecommerce SEO: the category page as the hub for engagement, links and topical maps
| Engagement NavBoost, Glue | Make the category page a transactional answer: H1 and a short text above the grid matched to the query, price ranges visible, decision arguments accessible, favourites and add-to-cart in the grid itself. A click that bounces back to the SERP is a countdown. Watch: position stability on category terms. 1 to 2 quarters. |
| Authority & brand siteAuthority | Route contextual internal links from indexed, topically relevant, click-earning pages (homepage, bestsellers, campaign pages) to money categories; traffic prioritizes the source list, relevance qualifies it. Off-site, earn links to category pages from reputable sources that give a link, a mention and entity co-occurrence; support them with second-tier links and make sure the linking pages get indexed. Brand campaigns create the named demand. Watch: retrieval and positions of linked categories in 1 quarter; branded demand on the 4+ horizon. |
| Coherence siteFocusScore, siteRadius | Prune faceted and tag URLs built for crawlers, and map the territory around each category: reviews, rankings, use cases, comparisons, each frame answered and feeding the category hub. Ten thousand thin URLs tax the radius; a mapped category concentrates it. Watch: pickup speed of new products in 1 to 2 quarters; category-term eligibility in 2 to 4. |
| Effort & originality contentEffort, OriginalContentScore | Replace manufacturer feed copy: own photos, measured size tables, buying guides with real comparisons. Watch: long-tail product-query retrieval. About 2 quarters. |
How it connects: the category page is the hub everything else serves. The grid UX ends the search, the topical map around the category feeds it internal links and covers the frames shoppers actually ask, the backlink program points reputable mentions at it, and feed-free product content makes the long tail retrievable at all.
Banking and insurance SEO (YMYL): calculators, brand trust and real numbers
| Engagement NavBoost, Glue | Build calculators and eligibility checkers that end the search with a number. “How much does X cost” should finish on your page. Watch: good clicks versus returns to the SERP. 1 to 2 quarters. |
| Authority & brand siteAuthority | In YMYL, site trust often decides eligibility before content quality gets a vote. Fund the brand, own every official query, and build the link base: related magazines, press, local media where you operate, seed pages with real traffic, plus foundational links from social profiles and industry or local directories. Watch: share of search on branded queries, direct and returning traffic, resilience through core updates. 4+ quarters. |
| Coherence siteFocusScore, siteRadius | Build content around customer needs, always leading to a conclusion tied to the offering. Scope-of-coverage pages are offers, not articles. Broad lifestyle posts and Wikipedia-like general guides with no added value are scatter. Watch: transactional eligibility. 2 to 4 quarters. |
| Effort & originality contentEffort, OriginalContentScore | Put real numbers where competitors put disclaimers: premium ranges, payout timelines, refusal reasons. Once a year, publish the report only you can write from your own operations. Add corner cases grounded in the company’s know-how: where cover fails, what generic AI answers get wrong. Watch: citations, snippet and AI Overview capture. About 2 quarters. |
How it connects: the calculator ends the search, the real numbers make the education credible, and every article walks the reader to a conclusion tied to the offering. In YMYL the compounding happens at the entity level: trust is what gets priced into eligibility, and every row above is a deposit into the same account.
SEO symptom checker: which Google system is behind what you see in reports
The tables tell you where to push. The one below works in the other direction, because most weeks do not start from strategy. They start from a symptom in a report. For page-level underperformance, open Search Console first and pull the URLs already earning high impressions at positions roughly 4 to 20 with weak CTR; fix those before commissioning another URL. Nine situations marketing managers actually bring to meetings, mapped to the system most likely producing them. The systems are documented; the pairings are my reading, so treat each row as the first hypothesis to test, not a verdict.
| What you see | Likely system | First move | What to expect |
|---|---|---|---|
| Ranked well for a quarter, then slid. Nothing changed on the page. | NavBoost, bad clicks accumulating under a stable position | Fix intent match and SERP format fit before touching links | Early stability signals within 1 to 2 quarters; full settle takes over a year |
| Traffic grows, signups and revenue stay flat | Coherence drift: the growth is off-territory | Prune or redirect the traffic-bait, concentrate on the money territory | Better eligibility on transactional variants |
| New pages do not appear at all, even for long-tails | Retrieval, not ranking | Contextual internal links from indexed, topically relevant, click-earning pages; the buyer’s vocabulary on the page as exact strings | Weeks to a quarter |
| You win the guides, stay invisible on money queries | Authority and intent gap | Fund named demand. Another guide will not fix it | 4+ quarters, brand-paced |
| A competitor with weaker content outranks you across the board | Site-level trust, which is largely static | Play the long game: brand and engagement, not a content sprint | Quarters, not weeks |
| One template dropped after a core update, the rest held | Template-level pattern: titles, framing, repeated blocks (titlematchScore is scored site-level) | Fix the template, not individual pages | Movement around the next update cycle |
| Links were built, rankings did not move | Link value conditional on the linking page: indexation, placement, anchor mismatch | Audit whether linking pages are indexed, earn clicks, fit topically, and use natural anchors before buying more | Re-judge after about a quarter |
| You rank #2 but AI Overviews cite everyone else | Passage extractability | Self-contained sections, headings matched to the query frame | Weeks after a recrawl |
| Impressions hold, but clicks drop on informational queries | Glue and SERP layout shift: an AI Overview or a new module pushed the blue links down | Audit the SERP first. If an AI Overview appeared, restructure H2s to answer the exact sub-questions it asks | Weeks after a recrawl, if the click is still winnable |
Read all of these tables with the evidence grades in hand. Most “watch” metrics are directly observable in Search Console, analytics or live SERP checks, and the rest are close proxies, which is the point: each row is a bet you can settle with your own data inside a few quarters, and settling it is cheaper than debating it.
Glossary: the leak’s terms you will actually meet
Every entry carries a grade. The grade is not how strongly I believe the claim. It is what would have to be true for the claim to be wrong, which is the only version of confidence you can act on.
| Grade | What it means | What would falsify it |
|---|---|---|
| confirmed | Established in the antitrust record: sworn testimony or an exhibit. | The transcript saying something else. |
| documented | The field or module exists in the leaked files. Weight, direction and deployment status unknown. | The field not being in the documents. |
| inferred | The most plausible reading of documented evidence, mine or another analyst’s. Named where it is not mine. | A better reading of the same evidence. |
| operational hypothesis | A bet I act on with clients before it is settled, because waiting costs more than being wrong. | Running it and getting nothing back. |
| case observation | Something I watched happen on one account, with the confounders named. | Nothing. It is one account. A lead, not a finding. |
| source account | Someone with first-hand access to the documents describing them directly. Primary, and outside the antitrust record. | The files saying otherwise. |
Two of those grades never appear in the table below, and that is exactly why they are worth naming. The glossary describes Google’s fields, so it can never climb past inferred. The bottom two grades belong to my claims rather than Google’s: the confidence level, retrieval cost as a business frame, traffic as the switch that activates a link, the loop itself. Under a three-grade system those had nowhere to sit, so they ended up borrowing the authority of the documented fields printed next to them. That is the honest mistake worth fixing, and if you take one method from this article rather than one tactic, take this one.
The systems and fields cited most often across Kopp’s catalog, Anderson’s pipeline work and this article. Grades follow the ladder above.
| Term | What it is | Grade |
|---|---|---|
| NavBoost | Click-based re-ranking on aggregated behaviour over a rolling 13-month window, sliced by country and device. | confirmed |
| Glue | The same idea across the whole result page rather than the ten blue links: hovers, scrolls and clicks on every module. | documented |
| CRAPS | The module holding click and impression metrics, including the cold-start case where history is thin. | documented |
| goodClicks / badClicks / lastLongestClicks | The click family. Read as clicks that end a search, clicks that send the user straight back, and the result that finally satisfied them. | documented + inferred |
| chromeInTotal | A Chrome-derived view signal. DOJ testimony separately established Chrome data reaches Google’s systems. | documented + confirmed |
| Mustang | The primary scoring system for relevance and on-page quality in the first pass. | inferred |
| SuperRoot | The serving orchestrator that assembles the candidate set and runs the re-ranking functions. | inferred |
| Twiddlers | Re-ranking functions applied after initial scoring. NavBoost is read as one of them. | inferred |
| Trawler, Alexandria, TeraGoogle | Crawling and indexing infrastructure. Named, and not levers you act on. | documented |
| RankEmbed | A learned model scoring how well a page answers a query. Scores with a dot product, not cosine similarity. | confirmed + inferred |
| FastSearch | The faster retrieval layer behind AI Overview grounding, checking fewer documents than full Search. | confirmed |
| Tangram (formerly Tetris) | The system that assembles the result page from its modules. | documented |
| siteAuthority | A site-level score inside CompressedQualitySignals. Not any third-party authority metric. | documented |
| NSR | A site-level quality signal. The documents never define the acronym. Public analyses expand it as Normalized Site Rank; Erfan Azimi, who sourced the documents, says the correct name is New Site Rank. | documented + source account |
| Q* | The broader site-quality score siteAuthority feeds. Named in the documents, not coined by analysts: experimentalQstarDeltaSignal, experimentalQstarSiteSignal and nsrOverrideBid all reference it. Kim describes Quality as largely static and site-level. | documented + confirmed |
| siteFocusScore | How tightly a site sticks to one topic. | documented |
| siteRadius | How far an individual page drifts from the site’s semantic center. | documented |
| contentEffort | A language-model estimate of the effort behind an article page. What it reads is not documented. | documented |
| OriginalContentScore | An originality score computed for pages with little content. | documented |
| GibberishScore, spam-token scores | The opposite end of contentEffort. Built to catch text that costs nothing to produce. | documented |
| titlematchScore | Described in the documents as a score of the site: how well its titles match user queries. Site-level, not one page. That it acts at eligibility is my inference. | documented + inferred |
| pagerankNS | Described as the production PageRank value. That it works by link-distance to trusted seed sites is inferred from patent US9953049B1. | documented + inferred |
| homepagePagerankNs | Homepage PageRank, named in the documents. That every page on a domain inherits it, and that this is why a new domain starts flat, is the common reading. | documented + inferred |
| onsiteProminence | How important a page is within its own site. Computed by propagating simulated traffic from the homepage and from pages with high click counts. | documented |
| hostAge | Earliest date Google saw a host’s pages, not WHOIS domain age. Read by some as a sandbox signal; Anderson argues it is spam defense. | documented + inferred |
| anchorMismatchDemotion | Penalises anchors that do not match what the target page is about. That it reaches your internal anchors too is my reading. | documented + inferred |
| The demotions | pandaDemotion, navDemotion, exactMatchDomainDemotion, serpDemotion. Named penalties, several inside CompressedQualitySignals. | documented |
| Freshness family | bylineDate and its relatives. Real, and mostly a question of which queries want recency. | documented |
One rule for reading all of it: a field existing tells you Google can compute something. It does not tell you the weight, and it does not tell you the direction. Grade before you spend.
Sources: who found what, and what kind of evidence it is
Nothing here was reverse engineered alone. This is the evidence base the article stands on. The column below says what kind of source each one is, which is a different question from how strongly any single claim is graded. Where a reading is someone else’s, the credit is theirs and the decision to act on it is mine.
| Source | What it contributes here | Evidence grade |
|---|---|---|
| Erfan Azimi | Sourced the documents and brought them forward. Corrected the NSR expansion for this article and described the system behind it. | Disclosure, source account |
| Rand Fishkin, SparkToro | Published the leak in May 2024 with the first public analysis. | Disclosure |
| hexdocs.pm | The raw field definitions, still public. | Primary document |
| DOJ v. Google exhibits | PXR0356 (Hyung-Jin Kim on the buckets composing the IR score), UPX0203 (Eric Lehman on document understanding), Pandu Nayak on NavBoost, and the September 2025 remedies ruling on RankEmbed. | Court record |
| Mark Williams-Cook | Exploited a Google scoring endpoint: the 2,000-plus classifying properties, the eight query semantic classes, and the nought-to-one site quality score. | Independent empirical |
| Mike King, iPullRank | The first full parse of the modules, the index-tier reading, the Panda site-quality ratio, and the 499 diagnosis. | Practitioner reading |
| Shaun Anderson, Hobo | Rebuilt the ranking pipeline from the documents, and the post-leak link building model the links section here rests on. | Practitioner reading |
| Olaf Kopp | The most complete public catalog of the leaked modules. | Practitioner reading |
| Dan Petrovic, Dejan | Embedding and similarity analysis, including how retrieval scoring is actually computed. | Practitioner reading |
| Massimiliano Geraci | Read the antitrust exhibits for RankEmbed’s scoring, a dot product rather than cosine similarity. | Practitioner reading |
| Cyrus Shepard, Zyppy | Surfaced the PXR0356 passage naming the three buckets behind the IR score. | Practitioner reading |
| Ahrefs | The 75,000-brand study correlating branded web mentions with AI Overview visibility. | Third-party dataset |
| Bill Slawski, SEO by the Sea | The patent-reading method this article follows. | Patent analysis |
One more note, a personal one. Analysis like this exists because people investigate, document, share and argue about these systems in the open, for free, for years: Bill Slawski above all, and everyone credited across this piece.
Special greetings to Erfan, who brought the documents to light and told his own side of the story on the Odys podcast. I have had the pleasure to meet some of these people, and I owe them more than one good argument. Pozdrawiam serdecznie. Polish greetings are warmer than English ones, so I use mine.
If you want that reading applied to your data, your rankings, your engagement reality, your territory, that is the work I do. Book an SEO consulting call. Bring your Search Console access and your skepticism. Both get used.
—
Article created by Szymon Słowik (narrative, know-how, strategy, cases, sources and quote selection) and edited with LLM, but could you actually see any difference? 🙂
Pozdrawiam serdecznie!