September 2026AI Search · Attribution

Google AI Mode stopped linking publishers.Its citations decode to entities instead.

TL;DR: In the run of 31 August 2026, 29,556 of 29,568 Google AI Mode hotel citations — 99.96% — were google.com/searchviewer links rather than links to a publisher. Read literally, AI Mode now cites Google and nothing else. But the svid parameter is not opaque: it is base64 protobuf wrapping a second base64 protobuf, and inside is a Google Knowledge Graph entity ID. We decoded 100.000% of them, zero failures. So AI Mode citations are still attributable — to an entity, never again to a domain.

NS
Nicolas Sitter
Published 1 September 2026

Summarize with AI

ChatGPTPerplexityClaudeGeminiGrok

Executive summary

99.96%
of AI Mode citations wrapped
29,556 of 29,568, 31 Aug run
100.000%
decoded to an entity ID
zero failures
6,792
distinct entities recovered
6,330 /g/ + 462 /m/
0
entity IDs with an ambiguous name
the ID is cleaner than the name

Google AI Mode used to cite the way every other assistant cites: a footnote pointing at the page it read. It does not do that any more. Every citation now points at https://www.google.com/searchviewer/10?svid=…, an in-Google viewer, and the publisher URL is nowhere in the response.

For anyone measuring AI search, this looks like the end of AI Mode as a measurable surface. Our own dashboard said so first: the blended source mix reported “meta-search 58.5%” for the week, because google.com had always been classified as metasearch, next to trivago and kayak. Real metasearch that week was under 1%.

The wrapper is reversible, though not in the way you would hope. The svid is a base64url-encoded protobuf that contains another base64url-encoded protobuf, and the inner message carries a Knowledge Graph machine ID — /g/1tph2jlq, /m/07kjndc. That ID is the entity Google resolved the citation to. No API key, no request to Google: pure decoding.

What comes back is the entity. What does not come back, ever, is the publisher. “Is AI Mode citing our website or Booking.com?” became an unanswerable question on 31 August 2026, and no amount of decoding changes that.

The finding under the finding: this was not a switch flipped on 31 August. Searchviewer wrapping was already 37.7% of AI Mode citations on 18 May and sat between 61% and 72% all summer. We had been measuring a surface that was two-thirds obscured for three months without noticing, because a bucket labelled “meta-search” absorbed it quietly. The 31 August run did not break attribution. It finished breaking it.

1. What a citation looks like now

A single AI Mode citation from the 31 August run, exactly as captured:

url   : https://www.google.com/searchviewer/10?svid=CAwSGxIZCgNwdnESEkNnc3ZaeTh4ZEhCb01tcHNjURgK
title : Metropole Suites South Beach
cited : false
rank  : null

The title names a hotel. The url names Google. There is no third field holding the page the assistant actually read — we checked every column of the capture. Whatever searchviewer renders when a human clicks it, the publisher URL is not in the response we receive.

Twelve citations in that run were not wrapped, and they are worth listing because they show the wrapper is a rendering decision rather than a hard rule: two TripAdvisor review pages, two YouTube videos, two anantara.com pages, two Google Maps directions links, a Booking.com city page, and two hits on Google’s own /travel/hotels/entity/ surface — which is a different Google product and must not be confused with searchviewer.

2. A four-month rollout, not an event

We noticed this on 31 August because that is the week it hit 100%. Going back through the capture history shows it had been arriving for months, and never monotonically — the share fell from 72.2% in late May to 61.4% in late July before completing. That shape is a staged rollout being dialled, not a release.

Share of Google AI Mode citations wrapped in searchviewer
Weekly production runs, 616 hotel prompts across 56 cities. The decode rate is measured over the wrapped subset.
RunAI Mode citationsWrapped in searchviewerShareDecoded to an entity
2026-05-189,9943,76637.7%100.00%
2026-05-2519,72314,23672.2%100.00%
2026-06-2217,19111,96369.6%100.00%
2026-07-2724,11714,81961.4%100.00%
2026-08-1719,89413,44867.6%100.00%
2026-08-2420,32212,90963.5%100.00%
2026-08-3129,56829,556100.0%100.00%

The 31 August run carries 29,568 AI Mode citations against roughly 20,000 in adjacent weeks. That jump is not the wrapper: 3,536 of those citations come from a separate prompt library running alongside the hotel set. Restricted to the 616 production prompts only, the run holds 26,032 citations and the figures are unchanged — 100.0% wrapped, 100.00% decoded. We checked this before publishing precisely because a volume spike in the same week as a shape change is the kind of coincidence that produces a wrong headline.

3. Decoding the svid

The svid is base64url. Decoded, it is a protobuf message. Inside that message is a string which is itself base64url, and decoding that gives a second protobuf holding a Knowledge Graph machine ID.

svid          CAwSGxIZCgNwdnESEkNnc3ZaeTh4ZEhCb01tcHNjURgK
  base64url   080c121b12190a037076711212436773765a7938786448426f4d6d70736351180a
  protobuf    field 1     = 12
              field 2.2.1 = "pvq"
              field 2.2.2 = "CgsvZy8xdHBoMmpscQ"     <-- base64url again
  base64url   0a0b2f672f31747068326a6c71
  protobuf    field 1     = "/g/1tph2jlq"            <-- Knowledge Graph MID

            /g/1tph2jlq  =  Metropole Suites South Beach

Two ID shapes appear. /m/ IDs are curated Knowledge Graph nodes — the famous properties, 462 of them, including /m/033bxs (Bellagio) and /m/06bx1c (The Taj Mahal Palace, Mumbai). /g/ IDs are machine-generated, 6,330 of them, and cover everything else.

Written to survive Google changing its mind. Our decoder walks the protobuf wire format and collects every length-delimited field, rather than reading a fixed field path like 2.2.2. We do not have Google’s message definition and should not depend on it: if they renumber a field, a path-based parser breaks silently and a wire-walking parser does not notice. The trade is that a schema-free walk will happily return any string it finds, so it is strict about what counts as an ID (^/[gm]/[0-9a-z_]{4,32}$). Over the full run that produced 6,792 IDs and zero non-ID strings.

4. The entity ID is a better key than the name

The obvious objection is that the title field already gives you the hotel name, so why bother decoding. Because the ID is strictly better than the string, in two ways we can measure.

It disambiguates same-name hotels

Across the 31 August run there were 6,792 distinct IDs and 6,784 distinct titles. No ID mapped to more than one title. Eight titles mapped to two IDs each — and every one of those is a genuine collision that a name-based resolver merges into a single fictional hotel:

The four clearest of the eight titles that resolve to more than one entity ID. In every case the ID is the more precise identifier.
Citation titleDistinct entity IDsWhat it actually is
Hotel Astoria/g/1tf14sqq, /g/1tg4hjlxTwo unrelated properties in different cities
Hôtel Atlas/g/1tm8jx2y, /g/1vtqxg4lTwo unrelated properties
Ji Hotel/g/11h1mg07vq, /g/11h1mg0dxkTwo branches of a Chinese chain
Grand Palladium Punta Cana Resort & Spa/g/11b6d6pw99, /g/11l6vlhyctTwo entities in one resort complex

It survives renames

3,760 entity IDs appear in both the 24 and 31 August runs. Of those, exactly six had a different title in the second week — and all six are Google trimming the string, not a different hotel:

/m/07kjndc     "Mandarin Oriental Hyde Park, London"   ->  "Mandarin Oriental Hyde Park"
/m/05rx2d      "Park Inn by Radisson Berlin Alex..."   ->  "Park Inn Berlin Alexanderplatz"
/g/11fkmbf3kk  "Calisto Luxury Trastevere, Rome"       ->  "Calisto Luxury Trastevere"
/g/1tg9rx0c    "INK Hotel Amsterdam - MGallery..."     ->  "INK Hotel"
/g/1tg16z38    "Infinity Copacabana hotel"             ->  "Hotel Infinity Copacabana"

The entity held while the name moved. If you are tracking hotel visibility in AI Mode week over week, the ID gives you a join key that does not churn when Google edits a display string — which is a real improvement on the name matching most visibility tooling relies on.

5. What is gone for good

It would be easy to present the decoding as a fix. It is not. Decoding recovers which entity Google resolved a citation to. It does not recover which page Google read, and that page is not in the response at all.

Still answerable
  • Which hotels does AI Mode cite, by entity
  • How often, and in which cities
  • Week-over-week entity visibility, on a stable key
  • Whether a cited entity made it into the answer
No longer answerable
  • Is AI Mode citing our site or an OTA
  • Which review site, blog, or directory it read
  • Whether owning your content changed anything
  • Any domain-level share of voice for AI Mode
Publisher-level attribution for Google AI Mode ended on 31 August 2026. If your AI-visibility reporting shows an AI Mode figure broken down by domain for any period after that date, it is either measuring something else or it is wrong. The honest reporting line is that the denominator changed: AI Mode is now an entity surface, and any domain metric you had for it is discontinued rather than declining.

6. It cites six times more than it recommends

With citations reduced to entities, one question becomes newly answerable: does AI Mode cite the hotels it recommends? Joining decoded citation entities to the hotels named in the answer, for the same prompt, across 608 of 615 prompts in the run:

19.9
entities cited per prompt
decoded from searchviewer links
3.2
hotels named per prompt
in the visible answer
71.6%
of recommended hotels appear as a cited entity
1,372 of 1,917

AI Mode consults roughly six times more entities than it names. That gap is the interesting part: it means a hotel can be firmly inside AI Mode’s consideration set and still not appear in the answer, and the consideration set is now visible when it was not before. Conversely, 28.4% of recommended hotels have no matching cited entity — named in the answer without a corresponding citation.

One methodology note that cost us an afternoon and will cost you one too. In our schema, citations and extracted hotels live in different capture rows for the same prompt: only 148 of 615 overlap on capture_id, while 608 of 615 overlap on query_id. Our first pass joined on capture_id, reported a 89.3% recovery rate off a quarter of the data, and was wrong. Join on the prompt, not the capture.

7. The measurement trap this walked into

Our classifier mapped google.com to meta — metasearch, the bucket for trivago, kayak and momondo. That was defensible in April, when google.com was a rounding error in AI Mode’s citations. By 31 August it meant the dashboard reported:

Blended source mix, week of 31 August 2026
Meta-search: 58.5%
Actual metasearch that week: under 1%. Lifetime, google.com accounts for 413,003 citations against 8,323 for kayak.com, 3,017 for hotelscombined and 1,319 for trivago.com.

Anyone reading that chart would have concluded metasearch was mounting a serious challenge in AI-assisted hotel discovery. The truth was the opposite: Google had stopped citing anyone at all. A bucket whose label described something other than its contents produced a confident, precise, completely inverted conclusion — and it survived four months because the number it produced was plausible.

Search engines now get their own category in our pipeline, covering Google on every regional domain plus Bing, DuckDuckGo, Yandex and the rest. The live AI Mode dashboard marks the week the wrapper started, so the step change cannot be mistaken for a trend.

Methodology

Corpus. 616 hotel prompts across 56 cities in 37 countries, run weekly against Google AI Mode via Bright Data and flattened to one row per cited source. Figures in this article come from seven runs between 18 May and 31 August 2026; the 31 August run holds 29,568 AI Mode citation rows (26,032 restricted to the production prompt library).

Decoding. Every svid was decoded offline — no request was made to Google, and no API key is involved. The decoder walks the protobuf wire format, recurses into nested base64url payloads to a depth of four, and accepts a string as an entity ID only if it matches ^/[gm]/[0-9a-z_]{4,32}$. It is open in the pipeline repository as tasks/searchviewer.py with 24 assertions, including six classes of malformed input that must return empty rather than raise, and the non-searchviewer google.com URLs from the same run that must not be matched.

Entity-to-answer join. Citations were matched to the hotels named in the answer on query_id, comparing accent-folded, stopword-stripped names. This understates the match rate wherever Google’s display name and the name in the answer text differ by more than punctuation, so 71.6% is a floor rather than a point estimate.

Not verified against Google. Turning an entity ID into an independently sourced name and address needs the Knowledge Graph Search API or Places API with a server-side key; the key available to us is HTTP-referrer restricted and refuses server-side calls. The entity names in this article therefore come from the citation title field in the same response, not from an independent lookup. The ID-to-name mapping is internally consistent across 29,556 citations with zero conflicts, but it has not been checked against Google’s own record.

What would make this stale. A fall back below ~99% in a later run would mean Google partially reverted. A decode rate below 100% would mean the payload changed, and the failing svid is the artefact to capture. Gemini does not currently use this wrapper; if it starts, that is a separate finding.

FAQ

It is an in-Google viewer that Google AI Mode now uses in place of a direct link to the page it cited. Instead of a footnote pointing at a hotel website, an OTA or a review site, the citation points at https://www.google.com/searchviewer/10?svid=…. In the run of 31 August 2026, 29,556 of 29,568 AI Mode hotel citations (99.96%) used this form.

Related research