The Reality Gap: Public Guidance vs. Engineering Reality
Google's public communications do two things. They give real guidance to webmasters, and they hold back the detail that would make the ranking system easy to game. The denial of click-based ranking is the clearest case. This page maps the gap with specific quotes, specific API modules, and specific sworn testimony. That testimony calls NavBoost "perhaps the central way web ranking has improved for 15 years".
Compiled by Aviel Fahl · Last updated September 1, 2026
Key Findings
The 2024 Google API leak exposed 2,596 modules containing 14,014 attributes across Google's ranking infrastructure. The DOJ antitrust trial produced sworn testimony from senior Google engineers confirming click data as a core ranking signal. Together, these sources contradict at least eight specific public statements made by Google spokespeople over the past decade. Google denied using click data for ranking while maintaining NavBoost, a 13-month click-signal table confirmed under oath as one of their most important ranking signals. They denied having a domain authority metric while a field called siteAuthority exists in their CompressedQualitySignals module. They denied a sandbox for new sites while a hostAge attribute is explicitly described as used "to sandbox fresh spam in serving time."
Contents
2,596
API modules leaked (May 2024)
14,014
ranking attributes documented
8+
public statements directly contradicted
13 mo
NavBoost click data window (sworn testimony)
The Leak and the Trial Made the Gap Measurable
In May 2024, internal Google API documentation, the Content API Warehouse, 2,500+ pages of Java-based protobuf specs, was published to a public GitHub repository by an automated bot called yoshi-code-bot. Rand Fishkin at SparkToro and Mike King at iPullRank published independent analyses on May 27, 2024.
Google's response was a non-denial: "We would caution against making inaccurate assumptions about Search based on out-of-context, outdated, or incomplete information." They did not call the documentation fabricated, inaccurate, or non-production. They also declined to say which elements are accurate, invalid, active today, or weighted.
Separately, the DOJ v. Google antitrust trial in October 2023 produced sworn testimony from senior engineers including Pandu Nayak (VP of Search) and Eric Lehman (Distinguished Engineer). Court documents stated that "learning from user feedback is perhaps the central way web ranking has improved for 15 years."
The table below maps the core contradictions. Each row pairs a specific public statement with the specific internal evidence that contradicts it.
| Topic | Public Statement | Internal Evidence |
|---|---|---|
| Click data | Gary Illyes (2019): "Dwell time, CTR, whatever Fishkin's new theory is, those are generally made up crap." | NavBoost: goodClicks, badClicks, lastLongestClicks, unicornClicks in QualityNavboostCrapsCrapsClickSignals. Confirmed under oath by Pandu Nayak as "one of the most important ranking signals." |
| Domain authority | John Mueller (various): Google does not have a site-wide authority score. | siteAuthority field exists in CompressedQualitySignals. Q* combines it with PageRank and content quality. |
| Chrome data | Google (various): "We don't use Chrome browsing data for ranking purposes." | chromeInTotal in QualityNsrNsrData. chrome_trans_clicks in click processing. P* (Popularity signal) powered by Chrome visit data. |
| Sandbox | Google (various): denied existence of a sandbox for new sites. | hostAge in PerDocData, explicitly described as used "to sandbox fresh spam in serving time." |
| Link equality | Gary Illyes (2024): "We need very few links to rank pages... we've made links less important." | sourceType on AnchorsAnchorSource classifies links into HIGH_QUALITY / MEDIUM_QUALITY / LOW_QUALITY tiers tied to index storage. PageRank threshold bucketing at 51K (uint16): above = premium treatment, below 47K = all equivalent. |
| Authorship | Gary Illyes (various): Google is "not using authorship" as a ranking factor. | isAuthor boolean, authorReputationScore in documentation. Author Vectors patent (US 10,599,770) enables stylometric authorship detection. |
| Penguin real-time | Gary Illyes (2016): Penguin 4.0 is "real-time, part of core algorithm." | penguinLastUpdate timestamp suggests batch processing. penguinPenalty, penguinTooManySources operate as discrete flags. |
| User engagement | John Mueller (various): Google does not use "engagement" as a factor for ranking. | NavBoost operates on a rolling 13-month window of engagement data. CRAPS module segments clicks by country, device, language, metro area. |
Interpreting the leak
The documentation is authentic, and Google correctly calls it "out-of-context". We cannot tell which attributes carry weight today, which ones Google marked as deprecated but still populates, and which ones stay experimental. The architecture and the module relationships are the most durable findings. Treat a specific attribute name as confirmed to exist, not as confirmed to be active.
Clicks Rank Pages, and Google Denied It for Years
Of the eight contradictions in that table, the click data row holds the widest gap. For over a decade, several Google spokespeople denied or minimized the role of click data in rankings. The leaked documentation and the sworn testimony put click data at the center of the ranking system.
| What They Said | Who Said It | What the Systems Show |
|---|---|---|
| "Dwell time, CTR... those are generally made up crap. Search is much more simple than people think." | Gary Illyes, Reddit AMA, January 2019 | NavBoost tracks goodClicks (satisfaction), badClicks (pogo-sticking), lastLongestClicks (session-ending satisfaction), and unicornClicks (high-trust user behavior). |
| "We're not using such metrics" (dwell time, time on page). | Martin Splitt, 2019 | CRAPS module (Click-Related Active Promotion Signals) segments click data by country, device, language, and metro area. A page can rank differently on mobile in Brazil vs. desktop in Germany. |
| Google does not use "engagement" as a factor for ranking. | John Mueller, various | NavBoost confirmed under oath by Pandu Nayak (VP of Search) and Eric Lehman (Distinguished Engineer) as one of the most important ranking signals. Uses a rolling 13-month window. |
NavBoost is not a machine learning model. Eric Lehman described it under oath as "essentially a large spreadsheet". The spreadsheet stores which URLs a user clicked, and how often, for each query. A long click, where the user stays, is positive. A short click, where the user returns fast, is negative. The system also tracks aging buckets, which score click performance separately by content age and show whether the engagement on a page improves or decays.
The pipeline processes click data through the CompressedQualitySignals module as crapsNewUrlSignals (URL-level), crapsNewHostSignals (host-level), and crapsNewPatternSignals (pattern-level). Google keeps both squashed (production) and unsquashed (experimentation) data. Click squashing is statistical compression. The compression stops any single dominant signal from overwhelming the rankings. The squash step gives Google its primary defense against CTR manipulation, and clicks stay a core input.
The trial also revealed Google's ranking distills to two top-level signals: Quality (Q*) and Popularity (P*). Chrome visit data and the NavBoost interaction signals power the Popularity signal. Google publicly states that it does not use Chrome browsing data for ranking.
| Chrome Signal | Location | Function |
|---|---|---|
| chromeInTotal | QualityNsrNsrData | Site-level aggregate Chrome browser views |
| chrome_trans_clicks | Click processing pipeline | Chrome transition clicks, used to identify most-visited URLs and generate Sitelinks |
Why this matters for practitioners
You cannot optimize a click signal directly. Knowledge of the signal still changes the strategic priorities. A page that earns satisfied clicks (a long dwell, no return to the results) accumulates NavBoost signals that compound over time. A 13-month table of click satisfaction data re-ranks the results. That table is the quantitative mechanism behind "make content that satisfies the query".
Links Did Not Get Less Important. Fewer Pages Pass Signal.
Clicks are one half of the disclosure. Links are the other half. The public message on links moved from "one of the top three ranking factors" to "we need very few links to rank pages". The leaked documentation shows at least 11 distinct PageRank variants and a granular anchor text pipeline.
| What They Said | Who Said It | What the Systems Show |
|---|---|---|
| "Links are important, but people overestimate their importance. Not top 3, hasn't been for some time." | Gary Illyes, Pubcon, September 2023 | 11+ active PageRank variants in PerDocData: pagerank, pagerank0/1/2, homepagePagerankNs, pagerankNs, rawPagerank, crawlerPageRank, IndyRank, ScaledIndyRank, site_pr, setiPagerankWeight. |
| "We need very few links to rank pages... we've made links less important." | Gary Illyes, SERP Conf, March 2024 | sourceType on AnchorsAnchorSource classifies linking pages into three quality tiers (HIGH_QUALITY, MEDIUM_QUALITY, LOW_QUALITY) tied directly to index storage tier. Links from Base-tier pages carry full signal. Links from the Landfills tier carry little. |
| "I would recommend avoiding link building." | John Mueller, 2021 | PageRank threshold bucketing: topPrOnsiteAnchorCount / topPrOffdomainAnchorCount treat links from sources above 51,000 PageRank (uint16) as qualitatively different from everything below 47,000. Binary premium, not gradual. |
The anchor text processing is far more granular than public guidance suggests. Google maintains completely separate scoring pipelines for internal vs. external links: normalizedScoreFromOffdomain vs. normalizedScoreFromOnsite, with independent counts, volume denominators, and aggregate scores. Redirected links and fragment links each take a separate score. The system also deduplicates anchors inside a source organization, so one company cannot flood the anchor signals.
The system also analyzes full context around each anchor: fullLeftContext and fullRightContext capture all terms preceding and following the anchor text. Content position matters: inbodyTargetLink vs. outlinksTargetLink differentiates main content links from sidebar and footer links. The onsiteProminence attribute measures the importance of a page inside its own site, and Google does not take the number from a theoretical PageRank distribution. The computation propagates simulated traffic from the homepage and from the pages with high search-click volume. The simulation starts at entry points that real user behavior confirms. Google says that clicks do not matter for ranking, and clicks seed the simulation that sets internal page importance.
New pages inherit homepage authority (homepagePagerankNs) until acquiring individual PageRank. The Nearest Seeds variant seeds calculations from known-trusted pages rather than distributing uniformly. Q* measures authority as the distance from a known good source. The homePageInfo attribute then sorts a homepage into one of four trust tiers: FULLY_TRUSTED, PARTIALLY_TRUSTED, NOT_TRUSTED, and NOT_HOMEPAGE. Every page on the domain inherits from this tier, a site-wide authority gate by another name, despite Google's denials of a "domain authority" concept.
The practical takeaway
Links have not become less important. What has changed is which links carry signal. The three-tier index tiering system means links from pages with no clicks (Landfills tier) carry minimal value, while links from high-engagement pages (Base tier) carry full value. "We need very few links" is technically correct when those few links come from Base-tier, high-PageRank pages. The statement misleads a reader who takes it as "links barely matter."
A Site-Wide Authority Score Exists Under Another Name
The link tiers pass one site-level judgment. The quality module passes another. Google has stated repeatedly, and through several spokespeople, that it holds no domain authority metric. The leaked documentation shows a field called siteAuthority inside CompressedQualitySignals, the pre-computed quality module that can disqualify a page before query-time ranking begins.
| Signal | Module | Function |
|---|---|---|
| siteAuthority | CompressedQualitySignals | Combines content quality, click data, and link profile into a site-level authority score |
| pandaDemotion | CompressedQualitySignals | Site-wide quality penalty. Operates as algorithmic debt: a ceiling no page-level optimization can overcome |
| contentEffort | PerDocData | LLM-based effort estimation for article pages. Quantifies human labor, originality, and resources invested |
| OriginalContentScore | PerDocData | Score from 0-512 measuring content uniqueness at page level |
| siteFocusScore | QualityNsrNsrData | How dedicated a site is to a single topic (specialist vs. generalist) |
| siteRadius | QualityNsrNsrData | How much an individual page deviates from the site's central theme |
| authorityPromotion | CompressedQualitySignals | Boost signal (inverse of demotion). Explicit positive authority weighting |
The contentEffort attribute carries the most weight for a practitioner. The documentation describes it as an "LLM-based effort estimation for article pages" that quantifies human labor, originality, and resources invested in creating content. The contributing factors include unique images, videos, embedded tools, in-depth content, original data, and linguistic complexity. contentEffort is the closest algorithmic proxy for the Experience dimension of E-E-A-T.
The quality system around contentEffort uses codenames that reveal a layered evaluation pipeline. chard acts as the initial content classifier, and it triggers a more rigorous E-E-A-T evaluation when it classifies a page as YMYL. rhubarb measures the quality differential between a URL and its parent site. tofu predicts site-level quality from content patterns.
Danny Sullivan stated in 2024 that Google does not have a system that says "this is a brand, let's rank it higher." The internal evidence suggests something more nuanced: Copia and Firefly monitor content velocity (the ratio of URLs generated against substantive articles produced), and directFrac measures the fraction of direct traffic to a site, a brand signal. High direct traffic may boost quality scoring. The system does not explicitly favor "brands," but the signals it measures (direct traffic, click satisfaction, authority accumulation) structurally advantage established brands.
Google publicly states they do not penalize AI-generated or automated content, only "scaled content abuse" regardless of production method. Internally, Patent US9767157B2 (N-gram Quality, granted 2017) builds phrase models from known-quality sites with 2-gram through 5-gram frequency patterns. The model measures each phrase by its relative frequency across the pages of a site. A programmatic page that produces an unnatural phrase distribution (repeated boilerplate, identical sentence structures, shallow variable substitution) takes a low quality flag. The policy ignores the production method. The detection system does not.
The Q* quality metric adds a hard limit. A site that scores below 0.4 on the 0-1 scale cannot win a rich result, whatever structured data it publishes. A Featured Snippet and a People Also Ask entry both sit behind that gate. Google publicly encourages sites to implement structured data for rich result eligibility. Internally, a hard quality gate prevents low-scoring sites from ever appearing in them.
E-E-A-T Trains the Model That Scores the Page
The quality module scores the page. The E-E-A-T criteria decide what the module learns to score. Danny Sullivan and Gary Illyes have both stated that E-E-A-T is not a ranking factor or score. Sullivan: "E-E-A-T is not a direct ranking factor. It's a concept from the Quality Rater Guidelines." Illyes: Google does not have an internal E-A-T score. Mueller: "There's no single ranking factor you can point to and say it's the deciding factor."
The statement is true about direct measurement and misleading about practical impact. E-E-A-T is not a single signal. E-E-A-T is a marketing label for 80+ independent algorithmic features. Google evaluates the features at three levels: the document, the domain, and the originator entity.
The DOJ trial revealed the actual engineering pipeline: Quality Raters evaluate pages using E-E-A-T criteria from the Quality Rater Guidelines. Those evaluations become training data for Google's RankEmbed and RankEmbedBERT models. The models learn to predict rater-like quality scores at scale. E-E-A-T is not a direct ranking factor. E-E-A-T is the training objective for the quality scoring model.
| What They Say | What the Pipeline Does |
|---|---|
| "E-E-A-T is not a direct ranking factor. It's a concept from the Quality Rater Guidelines." | Quality Raters evaluate pages using E-E-A-T criteria. Those evaluations train RankEmbed models. The models produce quality scores used in ranking. E-E-A-T is the training signal, not a direct input. |
| "There is no E-A-T score." | Q* aggregates site/document quality. CompressedQualitySignals contains siteAuthority, pandaDemotion, authorityPromotion. The relationship: E-E-A-T is the goal, Q* is the system, Site_Quality is the score. |
| "Authorship is not a ranking factor." | isAuthor boolean, authorReputationScore in API docs. Author Topic Authority patent (US8458196B1) accumulates per-topic authority scores. Author Vectors patent (US 10,599,770) enables stylometric detection. |
| "Structured data doesn't directly rank." | bylineDateConfidence scores byline date accuracy. Entity-Based Ranking patent (US10235423B2) computes composite scores from knowledge graph entity metrics. Being a recognized entity is a direct ranking input. |
Google's only white paper that confirms differential E-A-T weighting is "How Google Fights Disinformation" (2019). The paper states: "Where our algorithms detect … a YMYL topic, we will give more weight in our ranking systems to … the authoritativeness, expertise, or trustworthiness of the pages."
The API leak adds a mechanism: the internal classifier chard determines whether a page is YMYL. A YMYL classification triggers the more rigorous E-E-A-T evaluation. chard is the algorithmic gate that the white paper describes.
The YMYL gate does not stop at ranking suppression. A 16-month SE Ranking experiment tested 2,000 AI-generated articles across 20 new domains. Finance pages kept only 9 of 100 in the index at month 16. Health pages kept only 14 of 100. Broad niches (food, home, lifestyle) kept near-complete indexing over the same period.
The YMYL quality gate operates at the indexing stage, and it removes a page from the index instead of a demotion. The public framing of E-E-A-T as a ranking concept understates that operational scope.
The distinction that matters
"E-E-A-T is not a ranking factor" is true about direct measurement and misleading about practical impact. Google derives the training objective for its quality models from the E-E-A-T criteria. The claim is like a claim that customer satisfaction does not drive revenue, because no line on the income statement carries that name. E-E-A-T is the input to the system that produces the ranking.
The Systems Tell an Update From a Date Change
Content effort measures the work in a page. Freshness measures when that work happened. The public guidance on freshness is short: update your content, keep it current, dates matter. The internal systems run a more careful pipeline that separates a cosmetic edit from a real content improvement.
| Signal | What It Does | Why It Matters |
|---|---|---|
| lastSignificantUpdate | Timestamp of last substantive revision, not last edit | Explains why updating dates without content changes stopped working circa 2023 (per Cyrus Shepard / Zyppy) |
| freshByDocFp | Fingerprint of the document. Shows whether the content changed, or only the timestamp | The system detects a cosmetic date change and ignores it |
| bylineDateConfidence | Confidence score for byline date accuracy | Contradictory dates in structured data vs. visible page degrade the freshness signal |
| freshnessDuration | How long content retains its freshness boost after publication or update | Freshness is a decaying signal, not a permanent state |
| syntacticDate / semanticDate | Date extracted from URL/title vs. estimated from content | Google cross-references multiple date signals to detect manipulation |
Google keeps only the last 20 versions of a document (via urlHistory / CrawlerChangerateUrlHistory). The window of observable content evolution is finite, so a page has no permanent record of every change you make to it.
The Content Freshness Scoring patent (US8549014B2) tracks the age distribution of content inside a document: how much of it is old, and how much the author added recently. The patent also treats a sudden spike in link acquisition as a spam signal. An update that changes the age distribution of the information improves the freshness score. A date change alone does not.
The Sandbox Is Four Systems, Not One Penalty
Freshness measures the age of the content. A second group of attributes measures the age of the host. Google has publicly denied a "sandbox" for new sites, a deliberate trust period that holds a new domain back from its full ranking potential. The leaked documentation contradicts the denial.
| What They Said | What the Documentation Shows |
|---|---|
| Google has no sandbox for new sites. | The documentation describes hostAge in PerDocData as used "to sandbox fresh spam in serving time." The value is the earliest firstseen date on the host. |
| No special treatment for new domains. | RegistrationInfo.createdDate / expiredDate. The module stores the domain creation and expiration timestamps where ranking can read them. |
| Content quality determines ranking from day one. | NavBoost requires a 13-month rolling window of click data. A new domain has zero accumulated click signals, creating an inherent structural disadvantage against sites with established engagement history. |
The sandbox effect is real, and it works differently from the early SEO theory. No single deliberate penalty applies. Four systems disadvantage a new domain at the same time. The domain has no NavBoost history, so no click signals boost it. In the source tier system it has no accumulated backlink signals, and in CompressedQualitySignals it has no siteAuthority accumulation. The host also carries the explicit hostAge sandbox flag.
For programmatic SEO builds on new domains, the effect is direct. The first 13 months carry a structural disadvantage, whatever the quality of the content. The evidence-builder strategy answers the constraint. Win the achievable queries first, accumulate NavBoost signals, and then compete for the harder queries.
The Gap Changes Where the Money Goes
The sandbox is the last of the eight contradictions. Together they change how a practitioner allocates the budget, and they leave the public advice directionally correct: create useful content, build real authority, maintain technical health. The problem is that the advice is incomplete, and the incompleteness createsmisallocation of resources. The clearest example: "create helpful content" obscures 13 independent classifiers that each detect a specific pattern of unhelpful content.
| Public Guidance | What It Misses | Practical Correction |
|---|---|---|
| "Create helpful content" | Three systems measure helpfulness: click satisfaction (NavBoost), content effort (the contentEffort LLM scorer), and pairwise comparison against a competitor. No single "helpfulness" metric exists. Google also dropped the "written by people, for people" wording from its guidelines. AI-generated content that satisfies these signals takes no inherent penalty. | Optimize for satisfied clicks and genuine content depth. Pairwise quality means your content only needs to beat the specific competition, not achieve abstract quality. |
| "Links aren't that important" | 11+ PageRank variants, three-tier link quality system, separate scoring for internal/external. Links from Base-tier pages carry full signal. Landfills-tier links carry little. | Few high-quality links from high-engagement pages outperform many links from low-tier pages. Focus on earning links from sites that themselves receive traffic. |
| "E-E-A-T is not a ranking factor" | E-E-A-T criteria are the training objective for RankEmbed quality models. 80+ independent features across document, domain, and entity levels. | Build the entity (author and brand recognition across platforms) and the evidence (contentEffort inputs: original data, unique images, linguistic complexity). The cosmetic signals (author bios, "About" pages) matter far less than the structural ones. |
| "Keep content fresh" | Google distinguishes substantive updates from cosmetic edits via document fingerprinting (freshByDocFp) and byline date cross-referencing (bylineDateConfidence). | Google detects a date change with no content change, and ignores it. A real content improvement (new data, a correction to outdated information) triggers lastSignificantUpdate. |
| "No sandbox for new sites" | hostAge explicitly sandboxes new hosts. NavBoost requires 13 months of click history. New domains start with zero authority signals. | New domains face a structural disadvantage for 12-13 months. Plan for it: target achievable queries first, build NavBoost signals through genuine engagement, accumulate entity trust before competing on high-difficulty queries. |
The reality gap now extends into AI search. Google describes AI Overviews and AI Mode as complementary to organic results, but the systems cite from different source pools. Daniel Shashko's sentence-level analysis (42,971 citations, 520 queries, 6 platforms) found that AI Mode and Gemini share only 3.5% of cited domains. Kevin Indig documented a 56.6% click decline across 10 B2B SaaS sites correlated with AIO rollout. Profound's analysis of 250M+ AI responses found that traffic explains 5% of citation behavior and backlinks explain 3.8%.
The Semrush 2024 Ranking Factors study shows the same pattern on the organic side. Text relevance is the strongest ranking factor at 0.47 correlation. Domain authority follows at 0.21. The metrics that practitioners have optimized for a decade, the ones that populate every SEO dashboard, lose explanatory power across both channels.
Mike King's counter-perspective after analyzing the leak remains the most grounded summary: despite the revelations, the fundamental practice remains unchanged. "Build websites and content that people want to visit, spend time on, and link to." The leak does not change what to do. It changes why it works and how much to invest in each signal.
The operating principle
Treat Google's public guidance as directionally correct but strategically incomplete. When a spokesperson says "don't worry about X," check whether the leaked documentation contains modules measuring X. When they say "focus on quality," ask which of the 80+ quality signals you are specifically losing the pairwise comparison on. The gap is not a reason for cynicism. The gap is a competitive advantage for the practitioner who reads the engineering documentation, and not only the blog posts.