What happened
In late May 2024, Rand Fishkin (co-founder of Moz, now SparkToro) and Mike King (CEO of iPullRank) published analysis of thousands of pages of documentation for a Google "Content Warehouse" API. Fishkin's account is in the original SparkToro article; King's technical breakdown is on iPullRank. Read both before you read anything of ours.
What Google said
Google did not dispute that the material is real. Its spokesperson, as reported by The Verge:
“We would caution against making inaccurate assumptions about Search based on out-of-context, outdated, or incomplete information.”
That is worth taking seriously. Documentation describes what fields exist, not how much each one counts, or whether it is used at all today.
Our reading
The documentation looks like a system for retrieving documents. Some fields read as though they belong to enterprise search rather than Google Search, which may mean an enterprise product was built from core Google code. We wanted to know what was useful to an SEO, so we extracted the text and asked an LLM, Google Gemini, to pull out anything relevant, then followed up what it listed by searching the documentation directly. A language model can misread or invent things, so treat its list as a set of leads, not findings. Everything below was checked against the text of the documentation.
Signals the documentation mentions
- Links and anchors. Anchor text is stored per link. PageRank appears around 30 times, in several forms:
homepagePagerankNs(the PageRank of a site's homepage),crawlPagerank, andtoolbarPagerank, whose notes suggest the old toolbar value was not raw PageRank. One place marks a PageRank field deprecated, which does not mean PageRank is gone. - Site-level signals. Site chunks and site quality features suggest pages are judged partly by the site they sit on.
- Content quality and spam. Fields such as
OriginalContentScore,SpamWordScore,GibberishScore,uacSpamScoreandspamrank(the likelihood that a document links to known spammers) show how many separate spam checks exist. - Freshness.
lastSignificantUpdate,semanticDate(a date estimated from the content itself, its anchors and related documents) and a freshness twiddler all point to Google caring when a page genuinely changed. - The basics. Mobile friendliness, HTTPS, title and meta description, language, robots.txt and schema.org structured data all appear.
Things that stood out as new to us were domain-level signals, the amount of freshness machinery, and how granular spam scoring is. Things the first pass did not surface, but which Fishkin and King highlight, include click data (Navboost), the use of Chrome data, and quality rater data. For those, go to their write-ups.
One example of following a lead
LiveResults looked odd. Searching the documentation shows a boost applied to a page that has a reliable live feed, limited to a "hot times" window: a few days around a sports fixture, say. That reads as a manual, event-driven feature, not something affecting an ordinary small business. It is a useful reminder that many fields describe narrow cases.
What it means for a local business
- Nothing here replaces Google's own guidance. For local rankings, Google says to focus on relevance, distance and prominence, and to follow its representation guidelines.
- Accurate, complete, consistent business information is both good practice and consistent with everything in the documentation.
- Keep content honest and original, and update pages when something really changes, not to fake freshness.
- Be sceptical of anyone selling a trick based on a single field name.
If you want to see where your own business stands, the free local SEO audit takes a few minutes.
How the text was extracted
The documentation is in a public GitHub repository of a generated Elixir client. In outline: sparse-checkout the clients/content_warehouse directory at the commit in question, generate the HTML docs with Elixir's documentation tooling, strip navigation with unfluff, and read the resulting ~12MB of text. This can drop relevant text, and the extraction is a convenience copy, not a source of record.
git clone --filter=blob:none --no-checkout https://github.com/yoshi-code-bot/elixir-google-api.git
cd elixir-google-api
git sparse-checkout init --cone
git sparse-checkout set clients/content_warehouse
git checkout d7a637f4391b2174a2cf43ee11e6577a204a161eSearching the text for a term, then reading the field's own description, repeatedly proved more informative than any summary.
