Beyond the SERP: Reverse-Engineering Google’s /goto Redirect Wall and the New Economics of Search Result Scraping

Beyond the SERP: Reverse-Engineering Google’s /goto Redirect Wall and the New Economics of Search Result Scraping

SUPERCHARGE YOUR ONLINE VISIBILITY! CONTACT US AND LET’S ACHIEVE EXCELLENCE TOGETHER!

    Google Search has always exposed more information to a machine than a normal searcher necessarily notices. A result page is visually simple, but underneath the interface sits a structured collection of titles, snippets, result types, metadata, links and destination addresses. For years, that underlying structure created an important assumption for SEO software and search-data companies: once a system could reliably retrieve the Google results page, it could generally identify where each result pointed without having to ask Google a second question.

    Beyond the SERP: Reverse-Engineering Google’s /goto Redirect Wall and the New Economics of Search Result Scraping

    The google.com/goto rollout changes that assumption.

    In the affected Search results, the clickable destination is no longer necessarily present as a directly readable publisher URL in the result’s href. Instead, Google can place an intermediary URL such as:

    https://www.google.com/goto?url=CAES…

    The browser follows that Google URL, receives a redirect, and ultimately reaches the publisher’s page. To the human searcher, the difference is almost invisible. To a system collecting Search data at scale, it introduces another stage into the data path.

    Google confirmed the rollout publicly on 26 August. Its explanation was deliberately broad: a spokesperson said Google has a history of deploying technical measures against evolving forms of abuse and regularly takes steps to protect its services and users. Google did not publicly specify a complete technical description of the /goto mechanism or identify every category of automated activity it is intended to address.

    That distinction is important. The existence of the redirect is documented. Its practical effect on automated collection can be measured. But claims about Google’s exact internal motivation, cryptographic construction or long-term design should not be presented as established facts unless the underlying evidence supports them.

    The technical question is therefore more interesting than “How do I decode this URL?”

    The real question is:

    What happens when a search result stops being a directly addressable data object and becomes a Google-mediated resolution event?

    That is the boundary this first part examines.

    What Google Changed With /goto

    From Direct Destination URLs to Google-Controlled Intermediaries

    The traditional model of a Google organic result was conceptually straightforward:

    Google Search

         ↓

    Result

         ↓

    https://publisher.example/page

    A scraper parsing the HTML could extract the anchor’s href, normalise it, and associate that URL with the result’s position.

    The new model can instead look like this:

    Google Search

         ↓

    Result

         ↓

    https://www.google.com/goto?url=CAES…

         ↓

    HTTP redirect

         ↓

    https://publisher.example/page

    The publisher page has not disappeared. The user can still reach it by clicking the result. What has changed is where the publisher URL exists in the machine-observable chain.

    Previously, the destination was available at the first extraction point.

    Now, for an affected result, the first extraction point can provide only a Google-controlled intermediary.

    Independent testing published in September found that Google Search can return /goto links instead of direct destination links, while the final publisher URL remains accessible after resolving the redirect. The same research also found that the implementation is not necessarily identical across every browser and environment, which is an important warning against treating /goto as a perfectly uniform replacement for all Google Search links.

    This produces an important conceptual distinction:

    A Google Search result and the destination URL of that result are no longer necessarily the same data object.

    The result has its own identity inside Google’s Search system. The publisher URL exists at the end of a resolution process. A measurement system has to connect those two identities correctly.

    That sounds like a small implementation detail.

    At scale, it is not.

    Anatomy of a /goto Search Result

    A simplified affected result can be represented as:

    <a href=”https://www.google.com/goto?url=CAES…”>

        <h3>Example Result</h3>

    </a>

    The critical part is the href.

    The visible search result may still display information that allows a human to recognise the destination domain. But the machine extracting the anchor does not necessarily receive:

    https://example.com/article

    It receives:

    https://www.google.com/goto?url=CAES…

    The url query parameter is therefore misleading if interpreted according to the conventions of ordinary URL parameters. It is not simply a query-string representation of the destination.

    This is why a conventional URL extraction pipeline can appear to work while quietly returning the wrong object.

    A parser might successfully report:

    {

      “position”: 1,

      “link”: “https://www.google.com/goto?url=CAES…”

    }

    From a pure HTML-parsing perspective, that output is valid.

    From an SEO-data perspective, it is incomplete.

    The expected object was:

    {

      “position”: 1,

      “link”: “https://example.com/article”

    }

    The difference between those two outputs is the entire problem.

    The Redirect Chain and HTTP Behaviour

    The intermediary is not merely decorative.

    Testing reported by multiple technical observers shows the /goto endpoint can issue an HTTP redirect to the final destination. One independent analysis documented the chain as:

    google.com/search

           ↓

    google.com/goto?url=…

           ↓

    302 Found

           ↓

    publisher URL

    The important HTTP detail is the 302 response. The final destination can therefore be obtained from the redirect response rather than by decoding the token itself.

    This creates two separate operations:

    1. Extract the Google intermediary URL
    2. Resolve the intermediary to discover the destination

    A traditional parser performed essentially the first operation and stopped.

    A /goto-aware collector has to perform both.

    That distinction also explains why the change can be operationally significant even if the token is never reverse-engineered.

    The token does not have to be cracked.

    Google itself will tell the requesting client where the token resolves by returning the redirect.

    From an engineering standpoint, this is a crucial observation because it moves the problem away from cryptanalysis.

    The practical question becomes one of request orchestration, resolution, attribution and scale.

    What Google Has Officially Confirmed

    The strongest public statement currently available from Google is relatively narrow.

    On 26 August, Google confirmed that the /goto mechanism is being rolled out and characterised it as part of its technical measures against evolving forms of abuse. The company did not provide a public specification of the token format, its generation process, its cryptographic properties or the exact classes of automated systems affected.

    That leaves several layers of the story that must be kept separate.

    Confirmed:

    • Google Search is using /goto redirects for affected result links.
    • The links can redirect users to the intended publisher destination.
    • Google considers the rollout part of its broader technical measures.
    • The mechanism changes what appears in the Search result link itself.

    Observed independently:

    • The url= parameter can contain an opaque CAES… value.
    • Base64URL decoding does not simply produce the publisher URL.
    • The token can be resolved through Google’s redirect endpoint.
    • Behaviour can vary between browsers, sessions and Search environments.

    Not publicly established:

    • The exact token-generation algorithm.
    • Whether the payload should technically be described as encrypted.
    • Whether every byte has a documented semantic meaning.
    • Whether the present format is permanent.
    • Whether the same implementation will eventually cover every Search surface.

    This distinction matters because the /goto story has already attracted explanations that go further than the available evidence.

    Reverse-engineering becomes useful precisely where speculation stops.

    Inside the CAES Token

    Why the Token Looks Like Base64

    The first thing a technically minded observer notices is the CAES prefix.

    The value is URL-safe enough to resemble a Base64URL-encoded object. That naturally leads to the first hypothesis:

    Perhaps Google has simply Base64-encoded the destination URL.

    If that were true, the problem would be trivial.

    Take:

    CAES…

    Decode Base64URL.

    Recover:

    https://example.com/page

    Done.

    That is not what current testing shows.

    Independent reverse-engineering work published in September found that the CAES… value can indeed be Base64URL-decoded, but the output is binary rather than a readable destination URL. Further structural analysis indicates a small protobuf-like envelope followed by protected binary data.

    That is the first major break from the traditional URL model.

    The string is encoded, but decoding the outer representation does not reveal the destination.

    What Happens When the Payload Is Base64URL-Decoded

    Consider the conceptual transformation:

    CAESVAHrOzAV…

            ↓

    Base64URL decode

            ↓

    binary bytes

    The result is not:

    https://publisher.example/article

    Instead, researchers have observed a structured binary representation.

    One September examination reported that a sample token contained a small protobuf-like envelope, with an integer field and a binary payload. Another test of hundreds of tokens found a consistent basic envelope structure and binary material that did not expose the destination as plaintext.

    The important technical conclusion is not that the payload has definitively been identified as one particular cryptographic construction.

    It is this:

    The outer Base64URL layer is not the final encoding layer.

    There is additional structure underneath it.

    That means a scraper cannot solve the problem by applying a generic decoder.

    The Binary and Protobuf-Like Structure

    The presence of protobuf-like fields is particularly interesting because it suggests that the token is not merely a random string generated independently of Google’s internal data model.

    However, “protobuf-like” should not be casually converted into “Google is using protobuf with field X meaning Y”.

    A binary format can resemble protobuf because of its field encoding conventions without giving an observer enough information to reconstruct the full underlying schema.

    A responsible reverse-engineering description therefore looks like this:

    URL-safe representation

            ↓

    binary envelope

            ↓

    structured fields

            ↓

    opaque/protected payload

    rather than:

    Base64

            ↓

    Protobuf

            ↓

    encrypted URL

    The latter asserts more than the evidence currently demonstrates.

    This distinction becomes particularly important when discussing whether the token is “encrypted”.

    What the CAES Prefix Tells Us

    The prefix itself is evidence of structure, not an explanation of the structure.

    It tells us that the token has a repeatable outer representation.

    It does not, by itself, tell us:

    • what key was used;
    • what cipher was used;
    • whether encryption is involved;
    • whether the destination URL is contained directly;
    • whether the token refers to an internal Google object;
    • whether part of the token represents request context;
    • or whether the token can be reconstructed independently.

    This is a recurring problem in reverse-engineering web systems.

    A recognisable encoding is not the same thing as a documented protocol.

    The right question is therefore not:

    “What does CAES stand for?”

    The better question is:

    “What invariant structure survives decoding, and what information remains inaccessible?”

    That produces a more useful engineering conclusion.

    Why Decoding the Token Does Not Reveal the Destination

    Suppose a collector receives:

    https://www.google.com/goto?url=CAES…

    It can:

    1. Parse the URL.
    2. Extract the url parameter.
    3. Base64URL-decode the parameter.
    4. Inspect the resulting bytes.
    5. Identify repeated structural characteristics.

    None of those operations necessarily provides the final publisher URL.

    The destination appears to be recoverable through resolution, not straightforward local decoding.

    That is the key distinction.

    A local parser asks:

    “What does this string contain?”

    The resolver asks:

    “Where does Google send this string?”

    Those are different questions.

    Is the /goto Token Encrypted?

    Encoding, Serialisation and Encryption Are Different Problems

    The terminology needs to be precise.

    Encoding changes representation.

    For example:

    text → Base64URL

    The original information remains recoverable without a secret key.

    Serialisation converts structured data into a machine-readable byte representation.

    For example:

    fields → binary message

    Encryption transforms data using a cryptographic algorithm and secret material so that recovering the plaintext requires the relevant cryptographic capability.

    An opaque result after Base64 decoding does not automatically prove encryption.

    It could be:

    • serialised structured data;
    • compressed data;
    • encrypted data;
    • signed data;
    • an internal reference;
    • a combination of several mechanisms;
    • or something else entirely.

    Current public reverse-engineering evidence demonstrates opacity and structured binary data, but does not provide enough information to confidently publish a complete cryptographic specification.

    Testing the Plain-URL Hypothesis

    The simplest hypothesis is:

    token = Base64URL(destination)

    Observed behaviour contradicts that hypothesis.

    If the destination were simply encoded in that way, decoding should expose a recognisable URL string.

    It does not.

    That makes ordinary Base64 extraction an insufficient solution.

    Testing the Deterministic-Hash Hypothesis

    The next possibility is that Google could derive the token deterministically from the destination.

    Conceptually:

    destination URL

           ↓

    deterministic transformation

           ↓

    same token every time

    If that were the model, the same destination should tend to produce the same token across independent Search results.

    Current observations do not support such a simple model.

    Independent testing found that the same destination can receive different tokens in different SERPs, while repeated instances of the same destination within a particular SERP can show token reuse.

    That is a significant clue.

    It suggests that the token should not be treated as a universal identifier for a URL.

    A system should not assume:

    token A = page X forever

    or even:

    hash(page X) = token A

    The token appears to have a stronger relationship with the Search-result context than a simple permanent URL encoding would imply.

    Same Destination, Different Token

    Imagine the same publisher page appearing for two different queries:

    Query A

       ↓

    example.com/page

       ↓

    CAES-Token-A

    and:

    Query B

       ↓

    example.com/page

       ↓

    CAES-Token-B

    If the tokens differ, then the token cannot safely be treated as the page’s canonical identifier.

    This matters for caching.

    A naïve system might try:

    token → destination

    as its primary persistent mapping.

    A more robust system should store:

    query

    SERP context

    position

    token

    resolved destination

    timestamp

    environment

    and use the resolved destination as the durable entity wherever possible.

    Same SERP, Repeated Destination and Token Reuse

    The inverse observation is also important.

    If the same destination appears more than once within the same Search context, token reuse can occur according to current testing.

    That suggests the token is not simply random noise.

    But neither does it prove exactly what Google is encoding.

    Several architectural explanations remain possible:

    • result-level identity;
    • destination-level identity within a request;
    • an internal reference;
    • contextual metadata;
    • signed or protected state;
    • or another Google-specific representation.

    The available evidence supports describing the token as opaque and context-sensitive, rather than assigning it a precise internal meaning that has not been publicly documented.

    What Can Actually Be Established From the Evidence

    The strongest current conclusion is surprisingly practical:

    There is no demonstrated need to decode the token locally in order to obtain the destination URL.

    The HTTP redirect already provides a resolution mechanism.

    That means engineering effort spent trying to reconstruct Google’s internal token format may be academically interesting but unnecessary for a production collector.

    The more important engineering problem is making the resolution step:

    • reliable;
    • low-latency;
    • correctly attributed;
    • observable;
    • cache-aware;
    • and resistant to changes in Google’s implementation.

    That is where the /goto wall starts to become economically important.

    /goto Changes the Problem From Parsing to Resolution

    The Old SERP Extraction Model

    The conventional extraction pipeline looked roughly like:

    Request Google

           ↓

    Receive SERP HTML

           ↓

    Identify result

           ↓

    Read href

           ↓

    Normalise URL

           ↓

    Store result

    The destination was embedded directly in the result object.

    A result could therefore be represented as:

    {

      “position”: 4,

      “title”: “Example Page”,

      “url”: “https://example.com/page”

    }

    The collector’s primary challenge was finding and correctly parsing the relevant HTML.

    The New Resolution Model

    An affected /goto result changes the pipeline:

    Request Google

           ↓

    Receive SERP HTML

           ↓

    Identify result

           ↓

    Read href

           ↓

    Detect /goto

           ↓

    Resolve Google redirect

           ↓

    Read destination

           ↓

    Normalise URL

           ↓

    Store result

    The additional stage is not theoretical.

    Independent testing has observed the /goto request returning the destination through an HTTP redirect, while Search-data providers have reported having to adapt their pipelines to resolve the intermediary and continue returning direct destination URLs. SerpApi, for example, reported on 5 September that it had deployed a fix and was again returning direct destination URLs through its Search API.

    This is a useful distinction when interpreting reports that a SERP API has “fixed” the problem.

    The underlying Google behaviour may still exist.

    The API has simply inserted a resolution layer between Google’s output and the API’s customer-facing schema.

    Why Following the Redirect Is an Additional Data-Collection Operation

    Consider a SERP with ten affected results.

    Under the old model:

    1 SERP request

            ↓

    10 destination URLs

    Under the new model:

    1 SERP request

            ↓

    10 intermediary URLs

            ↓

    10 resolution operations

            ↓

    10 destination URLs

    The exact implementation can optimise this substantially. For example, duplicate intermediary URLs can potentially be resolved once, and a resolver can issue requests concurrently.

    But the fundamental change remains:

    The destination is no longer available entirely from the initial SERP document.

    That creates additional work even if the work is small per result.

    At low volume, this may be negligible.

    At large scale, it becomes infrastructure.

    Why Local Token Decoding Is Not the Same as Destination Recovery

    This is perhaps the most important technical distinction in Part 1.

    A developer might successfully decode:

    CAES…

    into binary.

    They might even reverse-engineer parts of the binary structure.

    That does not mean they have recovered:

    https://example.com/page

    The successful chain is:

    Token

     ↓

    Google resolution endpoint

     ↓

    HTTP Location

     ↓

    Destination

    not necessarily:

    Token

     ↓

    local decoder

     ↓

    Destination

    The first is currently demonstrable.

    The second has not been demonstrated as a general-purpose local solution.

    For production systems, that distinction should drive architecture.

    Reverse-Engineering Methodology

    The /goto mechanism is especially useful as a case study in how modern Search reverse-engineering should be performed.

    The objective should not be to collect one interesting token and speculate about its internals.

    The objective should be to establish repeatable behavioural invariants.

    Capturing Raw SERP HTML

    Start with the raw document.

    For every test, retain:

    • complete HTML;
    • timestamp;
    • query;
    • language;
    • country;
    • device class;
    • logged-in state;
    • browser;
    • IP environment;
    • result position;
    • result type.

    The raw document matters because post-processed API output can hide the behaviour being investigated.

    A SERP provider may already resolve /goto, making the API response appear unchanged even though the underlying Google HTML has changed.

    That is exactly what happened with some commercial Search-data systems during the rollout. SerpApi reported that the redirect format briefly affected certain URL fields before its engineering team adapted the extraction process.

    Capturing Browser Network Traffic

    The next layer is network observation.

    Instead of asking only:

    “What href did the DOM contain?”

    capture:

    Which URL did the browser request?

    What status code did it receive?

    What was in Location?

    How many hops occurred?

    How long did resolution take?

    This turns an apparently opaque URL into a measurable transaction.

    A browser session can therefore provide two distinct datasets:

    DOM dataset

    result → /goto?url=…

    Network dataset

    /goto?url=…

    → 302

    → https://publisher.example/page

    Both are necessary if the objective is to understand the full Search-result path.

    Building a Token Corpus

    One token proves almost nothing.

    A useful research corpus should contain hundreds or thousands of observations.

    Each observation can include:

    FieldPurpose
    QuerySearch context
    PositionSERP location
    Result typeOrganic/rich/other
    Displayed domainHuman-visible identity
    /goto tokenRaw intermediary
    Resolved URLFinal destination
    TimestampTemporal comparison
    BrowserEnvironment comparison
    Session stateBehaviour comparison
    LocationGeographic comparison
    IP classNetwork comparison

    Once this corpus exists, several hypotheses can be tested rather than guessed.

    Differential Testing Across Queries and Sessions

    The strongest experiments deliberately change one variable at a time.

    For example:

    Same query

    Same location

    Same browser

    Different session

    Then:

    Same query

    Different location

    Then:

    Same destination

    Different query

    Then:

    Same query

    Different browser

    The purpose is to determine which characteristics of the token are stable.

    A token that changes when the query changes behaves differently from a token that changes only when the destination changes.

    Likewise, a token that changes across browsers may contain or depend upon context that a browser-independent identifier would not.

    Comparing Browsers, IPs, Locations and User Agents

    Current testing indicates that /goto is not necessarily exposed identically to every browser and environment.

    A September study reported /goto results in Chrome and Edge, direct destination links in Brave and LibreWolf for comparable searches, and another Google redirect format in Safari. The same research also observed /goto in both manual and automated browser sessions.

    This is exactly why broad statements such as:

    “Google has replaced every Search URL with /goto.”

    should be treated cautiously.

    The more technically defensible formulation is:

    Google is deploying /goto redirects across affected Search result environments, with observed behaviour varying by browser, session, location and result context.

    The distinction is not semantic nitpicking.

    It determines how a production data collector should detect the condition.

    Measuring Redirect Consistency

    For every intermediary URL, capture:

    HTTP status

    Location

    response time

    headers

    success/failure

    Then ask:

    • Does the same token resolve repeatedly?
    • Does it resolve from another connection?
    • Does it resolve after a delay?
    • Does it require cookies?
    • Does it require the same User-Agent?
    • Does it behave differently under HEAD and GET?
    • Does the destination remain stable?

    Some September testing found tokens could remain resolvable across different connections and across subsequent days, although the maximum lifetime of a token has not been established publicly.

    That makes one operational rule particularly sensible:

    Do not build a long-term identity system around Google’s token. Store the resolved destination.

    What /goto Does and Does Not Reveal About Google’s Architecture

    The technical evidence tells us something important about the boundary between Search presentation and Search infrastructure.

    Confirmed Behaviour

    The following is now well established:

    1. Google Search can place google.com/goto?url=… links in Search results.
    2. The url parameter can contain an opaque CAES… token.
    3. The token is not simply the destination URL in ordinary readable form.
    4. The /goto endpoint can redirect the requester to the final destination.
    5. Google has publicly confirmed the rollout as a technical measure against evolving abuse.

    Strong Technical Observations

    Independent testing further indicates:

    • Base64URL decoding produces structured binary data rather than the destination URL.
    • The binary representation contains a repeatable envelope.
    • The same destination can be represented by different tokens in different contexts.
    • Browser and environment differences can affect whether /goto appears.
    • The implementation is therefore better understood as a dynamic Search-result mechanism than as a static URL transformation.

    Reasonable Inferences

    From those observations, several architectural conclusions are reasonable.

    First, Google has introduced an additional indirection layer between the Search result and the publisher destination.

    Second, the intermediary can be resolved without knowing the internal token-generation algorithm.

    Third, the token should not be treated as a durable substitute for the publisher URL.

    Fourth, the cost of extracting Search data can increase even if the visible Search experience barely changes.

    None of these conclusions requires knowing exactly how the CAES payload is generated.

    Unresolved Questions

    Several important questions remain open.

    What exactly is represented by the binary payload?

    Is the protected data encrypted, signed, obfuscated or generated through another mechanism?

    How much contextual information does Google encode?

    What determines when /goto is served instead of another link representation?

    What is the token’s maximum lifetime?

    Will the format remain stable?

    Will the same mechanism expand to additional Search surfaces?

    These are not merely academic questions.

    A change in any of them could alter how a SERP collector handles the redirect.

    For that reason, robust systems should detect /goto based on observed behaviour rather than assume that today’s token format will remain unchanged.

    The First Major Consequence: A Search Result Now Has Two Identities

    The most useful way to conceptualise the entire change is to separate result identity from destination identity.

    The Google Result Identity

    Google knows a result as part of a Search context.

    Conceptually:

    Query

    +

    Location

    +

    Language

    +

    Device

    +

    Search features

    +

    Position

    +

    Result

    The result exists inside that context.

    The visible title, snippet and destination are representations of that result.

    The Publisher Destination Identity

    The destination is something different:

    https://example.com/article

    It is a web resource that exists independently of the Search result.

    Historically, the two identities were easy to connect because the publisher URL appeared directly in the Search result’s link.

    The /goto layer separates them:

    Google result

         ↓

    opaque Google reference

         ↓

    redirect resolution

         ↓

    publisher destination

    This creates a new relationship that data collectors must preserve.

    Why the Separation Matters for Search Data

    Suppose a rank tracker records:

    Keyword: enterprise SEO

    Position: 4

    URL: https://www.google.com/goto?url=CAES…

    Technically, the tracker has captured a URL.

    But it has not captured the information that an SEO user actually needs.

    The useful relationship is:

    Keyword

       ↓

    Position 4

       ↓

    Publisher

       ↓

    https://example.com/enterprise-seo

    The intermediary is an implementation detail.

    The destination is the analytical entity.

    That distinction becomes even more important when a system performs:

    • keyword-to-page mapping;
    • ranking history;
    • landing-page analysis;
    • cannibalisation detection;
    • competitor analysis;
    • content-gap research;
    • SERP clustering;
    • AI citation monitoring.

    A system that loses the destination URL has not merely lost a convenient field.

    It has lost part of the relationship between Search visibility and the actual web document receiving that visibility.

    This is why /goto should not primarily be understood as a URL-format change.

    It is a data-model change.

    Why /goto Changes SERP Scraping Economics

    Part 1 established the critical architectural change: an affected Google Search result can now expose a Google-controlled intermediary instead of the publisher’s destination URL. The CAES… token does not need to be cracked for the system to work, because the /goto endpoint can resolve the token through a redirect.

    That observation leads to the more consequential question.

    What happens when this additional resolution step is multiplied across millions of searches, thousands of keywords, multiple locations, devices, languages and SERP features?

    The answer is not simply “scraping becomes harder”.

    The more precise answer is that the cost structure of Search-data acquisition changes.

    A scraper that previously extracted a destination URL while parsing the SERP now has to perform another operation to establish the same fact. That operation consumes some combination of network capacity, latency, proxy resources, concurrency, retries and engineering complexity.

    And /goto did not arrive in isolation.

    It follows a sequence of changes that had already made large-scale Google SERP collection more expensive. In September previous year, Google’s handling of the &num=100 parameter changed, disrupting workflows that had traditionally retrieved up to 100 results in one request. Industry testing and subsequent reporting showed that tools had to move towards pagination or alternative collection methods. Ahrefs documented that the change reduced its ability to assess results beyond the first page before it developed alternative approaches.

    Seen together, the changes are more significant than either mechanism alone.

    The problem is no longer simply:

    “Can a program download Google’s results?”

    It becomes:

    “How much infrastructure must a program operate to obtain a sufficiently complete, reliable and attributable representation of Google’s results?”

    That is the economics of the /goto wall.

    The Real Barrier Is Not the Opaque Token, It Is the Additional Work

    The temptation is to focus on the CAES string because it is the most visible technical novelty.

    But from the perspective of a production SERP platform, the token itself may be the least important part.

    If the destination can be recovered by following a redirect, the cryptographic or serialisation details are largely irrelevant to the end result.

    What matters is that one piece of information now requires an additional interaction with Google’s infrastructure.

    Request Multiplication

    Consider a conventional organic SERP containing ten results.

    Under the older extraction model:

    1 Google Search request

            ↓

    SERP HTML

            ↓

    10 destination URLs

    The destination URLs were part of the document being parsed.

    The number of HTTP interactions required to establish those ten destinations could therefore remain close to one Search request, excluding ancillary resources and the infrastructure required to obtain the SERP itself.

    With /goto, the conceptual flow becomes:

    1 Google Search request

            ↓

    SERP HTML

            ↓

    10 Google /goto URLs

            ↓

    10 resolution operations

            ↓

    10 destination URLs

    This does not necessarily mean that every implementation must literally issue ten independent requests in every circumstance. A sophisticated collector can deduplicate, parallelise, cache and optimise the resolution layer.

    But the information path has changed.

    The destination is no longer fully represented in the original SERP response.

    That means the collector has acquired a new unit of work.

    The difference becomes particularly important at scale.

    Suppose a system monitors 100,000 keyword queries per day and resolves ten affected result links per query.

    That creates a theoretical upper bound of:

    100,000 SERPs

    × 10 results

    =

    1,000,000 resolution events

    The exact number in a real system would be lower or higher depending on:

    • duplicate URLs;
    • result types;
    • cached resolutions;
    • failed requests;
    • pagination;
    • geographic variants;
    • mobile versus desktop;
    • query depth;
    • and how the provider structures its collection pipeline.

    The point is not that every provider will incur exactly one million additional requests.

    The point is that the unit of cost has moved from “SERP acquired” towards “SERP plus destination resolution”.

    That is a fundamentally different scaling model.

    Latency Multiplication

    Request count is only half the problem.

    Latency is the other half.

    If a collector resolves ten links sequentially, the theoretical chain becomes:

    SERP request

        ↓

    Result 1 resolution

        ↓

    Result 2 resolution

        ↓

    Result 3 resolution

        ↓

    …

        ↓

    Result 10 resolution

    Even relatively small per-resolution delays can accumulate.

    A production system therefore has a strong incentive to resolve links concurrently:

                    ┌─ Result 1

                     ├─ Result 2

    SERP ─ Resolver ─┼─ Result 3

                     ├─ Result 4

                     ├─ …

                     └─ Result 10

    But concurrency introduces its own constraints.

    The collector must now manage:

    • connection pools;
    • concurrent request limits;
    • timeouts;
    • retries;
    • backoff;
    • duplicate resolution;
    • cancellation;
    • partial failure;
    • and resource exhaustion.

    A system that previously spent most of its effort obtaining the SERP may now need a second subsystem dedicated to resolving the objects contained within that SERP.

    This is a recurring pattern in distributed systems.

    Moving information behind an additional network boundary rarely makes the information disappear. It makes retrieval stateful and operationally observable.

    Proxy and IP Economics

    The next constraint is network identity.

    A large-scale SERP system may already use a pool of IP addresses or sessions to obtain geographically and behaviourally representative Search results.

    Adding a second request layer creates another question:

    Which network identity should perform the /goto resolution?

    There are several possible models.

    Model 1: Same session

    SERP request

         ↓

    same session

         ↓

    /goto resolution

    This preserves contextual continuity.

    Model 2: Same IP, independent connection

    SERP request

         ↓

    IP A

    /goto resolution

         ↓

    IP A

    This may preserve network continuity while allowing connection-level optimisation.

    Model 3: Resolver pool

    SERP acquisition

         ↓

    Resolver queue

         ↓

    IP pool

         ↓

    Destination

    This can increase throughput but introduces another layer of attribution and consistency questions.

    A system that collects Search results from one geographic IP and resolves them through an unrelated network may create difficult edge cases if Google’s behaviour varies by location, cookies, session or request context.

    The point is not that Google necessarily rejects a resolution performed from another IP.

    The point is that a new request creates a new place where network policy can matter.

    Concurrency and Connection Management

    At modest volume, an extra HTTP request is trivial.

    At millions of results, connection management becomes an engineering problem.

    Suppose a resolver needs to process 100,000 destination resolutions per minute.

    A naïve design might launch an unbounded number of requests.

    That creates obvious problems:

    • socket exhaustion;
    • connection churn;
    • excessive simultaneous traffic;
    • queue instability;
    • retry amplification;
    • proxy exhaustion.

    A better architecture imposes controlled concurrency.

    Conceptually:

    SERP Queue

        ↓

    URL Extraction

        ↓

    Resolution Queue

        ↓

    ┌──────────────────────┐

    │ Resolver Workers     │

    │                      │

    │ Worker 1             │

    │ Worker 2             │

    │ Worker 3             │

    │ …                  │

    │ Worker N             │

    └──────────────────────┘

        ↓

    Destination Store

    The number of workers becomes a tunable infrastructure parameter.

    Too few:

    latency rises.

    Too many:

    resource pressure rises.

    This is precisely why /goto turns an HTML-parsing problem into a systems-engineering problem.

    Retry and Failure Costs

    A direct href either exists in the document or it does not.

    A network resolution can fail in many ways.

    For example:

    /goto

      ↓

    timeout

    or:

    /goto

      ↓

    HTTP error

    or:

    /goto

      ↓

    unexpected response

    or:

    /goto

      ↓

    redirect chain cannot be completed

    The collector must decide what each failure means.

    Is the result:

    • missing?
    • temporarily unresolved?
    • permanently unavailable?
    • blocked?
    • malformed?
    • a valid result with an unknown destination?

    This distinction is critical.

    If the system silently converts:

    resolution failed

    into:

    URL does not exist

    it has transformed an infrastructure failure into false SEO data.

    That is considerably more dangerous than simply returning an error.

    Why Position-100 Tracking Becomes a Different Engineering Problem

    The significance of /goto becomes clearer when combined with the previous year &num=100 change.

    The previous year Baseline Shift

    For years, adding:

    &num=100

    to a Google Search URL provided a convenient way to request a large result set in one Search response.

    Around September previous year, Google began disabling or no longer reliably honouring that parameter. Industry reports documented the disruption to rank trackers and SERP providers, while Ahrefs described the change as affecting its ability to retrieve results beyond Google’s first page until alternative approaches were developed.

    The economic distinction is straightforward.

    Previously:

    1 request

    → roughly 100 results

    After the change, systems seeking equivalent depth could need multiple paginated requests.

    The industry’s own reporting described this as potentially turning one request into approximately ten requests for the same nominal top-100 depth.

    Now introduce /goto.

    The conceptual pipeline becomes:

    Query

     ↓

    Page 1

     ↓

    10 results

     ↓

    10 URL resolutions

    Page 2

     ↓

    10 results

     ↓

    10 URL resolutions

    Page 3

     ↓

    10 results

     ↓

    10 URL resolutions

    …

    If a system wants positions 1–100, the data-acquisition problem is no longer simply “retrieve 100 results”.

    It becomes:

    Retrieve multiple SERP pages

    +

    extract affected intermediary links

    +

    resolve those links

    +

    preserve position

    +

    validate destination

    That is a very different cost model from the old one-request/top-100 workflow.

    This is why /goto should be analysed as part of a sequence of access-cost changes, rather than as an isolated redirect feature.

    /goto in the Context of Google’s Broader Search Access Restrictions

    The strongest analysis should resist the temptation to treat every Google change as a single coordinated anti-scraping programme.

    Google has not publicly provided such a complete architecture.

    But the technical effect of multiple changes can still be analysed together.

    JavaScript and Browser Execution

    Modern Google Search is not simply a static HTML page.

    Search can contain:

    • dynamic components;
    • interactive result modules;
    • AI-generated features;
    • location-dependent content;
    • personalised elements;
    • client-side behaviour.

    This means a collector seeking parity with a normal browser may increasingly need to reproduce more of the browser environment.

    That increases the distance between:

    HTTP request

    and:

    human-equivalent Search session

    Bot Detection and Abuse Prevention

    Automated access can also encounter:

    • rate controls;
    • CAPTCHA or challenge behaviour;
    • IP reputation effects;
    • session differences;
    • browser-specific differences;
    • traffic-pattern detection.

    The previous year num=100 episode itself produced reports of inconsistent behaviour across browsers and sessions, including CAPTCHA-related observations from rank-tracking practitioners. Those observations were industry reports rather than a detailed Google technical specification, so they should be treated as evidence of operational variability rather than proof of one particular detection algorithm.

    Search Pagination and Result-Depth Changes

    The num=100 change was significant because it altered how much Search data could be obtained per Search request.

    Ahrefs subsequently reported that it was gradually restoring top-100 tracking through alternative collection methods, illustrating that the industry did not simply lose the ability to collect deeper rankings. Instead, the collection architecture became more complicated.

    That distinction is important.

    Google did not make positions 11–100 conceptually nonexistent.

    It changed the mechanism through which third parties could retrieve them efficiently.

    Dynamic SERP Rendering

    The Search result page itself is also becoming more heterogeneous.

    A single query can contain combinations of:

    • organic results;
    • People Also Ask;
    • video results;
    • local results;
    • recipes;
    • AI Overviews;
    • knowledge features;
    • images;
    • shopping modules;
    • news;
    • other specialised result blocks.

    A modern collector therefore cannot safely assume:

    10 links = 10 organic results

    It must identify the semantic result type.

    That becomes especially important when /goto appears in non-traditional result surfaces.

    SerpApi’s own release history shows that its engineers were resolving /goto behaviour across several Google APIs and result types, including AI Overview, questions and answers, recipes, video key moments, local results and videos.

    The significance is architectural:

    The intermediary-link problem is not necessarily confined to the ten classic blue links.

    Redirect-Based URL Obfuscation

    This is the /goto layer.

    It does not necessarily stop the result from being displayed.

    It does not necessarily stop the destination from being reached.

    It changes how the destination is exposed to the machine.

    That makes it different from a conventional access block.

    The result still exists.

    The click still works.

    The destination still resolves.

    The extraction pathway has simply acquired an additional boundary.

    Why These Barriers Compound

    Each individual barrier can be manageable.

    The difficulty comes from composition.

    A simplified modern collection pipeline can look like:

    Query generation

           ↓

    Search request

           ↓

    Bot/access validation

           ↓

    Browser/session state

           ↓

    SERP retrieval

           ↓

    Pagination

           ↓

    Result classification

           ↓

    /goto detection

           ↓

    Destination resolution

           ↓

    URL normalisation

           ↓

    Data validation

           ↓

    Storage

    A failure at any layer can contaminate the final dataset.

    That is why modern SERP collection increasingly resembles distributed data infrastructure rather than a simple scraper.

    What /goto Breaks

    HTML-Only SERP Parsers

    The most obvious failure occurs when a parser assumes:

    <a href=”https://publisher.com/page”>

    will always contain the final URL.

    An affected result may instead contain:

    <a href=”https://www.google.com/goto?url=CAES…”>

    The parser has not necessarily failed technically.

    It has correctly extracted the href.

    Its data model has become outdated.

    Regex-Based URL Extraction

    A regex can successfully identify:

    https://www.google.com/goto?url=CAES…

    But that does not answer the question:

    What page does this result represent?

    This is the difference between syntactic extraction and semantic extraction.

    The first is easy.

    The second now requires resolution.

    Rank Trackers

    Rank tracking has several dependencies beyond position.

    A serious ranking record often needs:

    keyword

    country

    city

    device

    search engine

    position

    SERP feature

    domain

    landing URL

    title

    result type

    If the URL field becomes:

    google.com/goto?url=…

    the position itself may still be correct.

    But downstream workflows can break.

    For example:

    Keyword

    ↓

    Position 4

    ↓

    Landing URL

    ↓

    Page classification

    If the landing URL cannot be established, page-level analysis fails even though the position remains known.

    SerpApi explicitly noted that its /goto issue did not change visible rankings, titles, snippets or other parsed result data, but temporarily made the link field less useful for workflows requiring direct destination URLs.

    That distinction should not be overlooked.

    /goto is not itself a ranking change.

    It is a data-representation change.

    SERP APIs

    The impact on SERP APIs is more subtle.

    A good API abstracts away the underlying Search implementation.

    If Google changes:

    direct URL

    to:

    /goto

    the API provider can add a resolver and continue returning:

    {

      “link”: “https://example.com/page”

    }

    From the customer’s perspective, nothing may appear to change.

    But the provider has absorbed the complexity.

    SerpApi reported exactly this sequence: the rollout initially affected some returned URL fields, engineering work was performed, and by 5 September this year the company reported that direct destination URLs had been restored across affected Google Search result types.

    That means a “working SERP API” should not be interpreted as evidence that /goto has disappeared.

    It can simply mean the intermediary layer has been successfully abstracted away.

    Competitive Intelligence Systems

    Competitive intelligence platforms often need more than:

    domain = example.com

    They may need:

    domain

    subdomain

    directory

    landing page

    content type

    ranking keyword

    position

    SERP feature

    An unresolved /goto link can therefore degrade page-level competitive intelligence while leaving domain-level visibility apparently intact.

    That creates a dangerous asymmetry:

    the report can look healthy at the domain level while becoming incomplete at the page level.

    SEO Crawlers That Depend on SERP Discovery

    A conventional crawler that starts with a known URL does not care about /goto.

    If it already knows:

    https://example.com/page

    it can crawl the page directly.

    But a system whose workflow is:

    Google SERP

    ↓

    discover URLs

    ↓

    crawl discovered URLs

    does care.

    The intermediary therefore sits precisely at the discovery boundary.

    That is why /goto affects some SEO workflows much more than others.

    Historical SERP Datasets

    Historical data creates another problem.

    Suppose a dataset contains:

    January this year:

    position 5

    URL = example.com/page

    and a later collection contains:

    September this year:

    position 5

    URL = google.com/goto?url=CAES…

    A naïve data pipeline may interpret that as a URL change.

    It is not.

    It is a collection-method change.

    This is one reason provenance becomes increasingly important in Search datasets.

    What /goto Does Not Break

    A technically serious analysis also needs to define the boundaries of the problem.

    Search Console

    Google Search Console is fundamentally different from third-party SERP scraping.

    Search Console is a Google-controlled reporting system that exposes Search performance data through Google’s own infrastructure.

    A /goto intermediary in a browser-visible Search link does not imply that Search Console suddenly needs to parse that link to calculate a site’s performance data.

    The two systems have different data paths.

    This is why it would be incorrect to say:

    “/goto breaks Search Console.”

    It does not follow from the architecture.

    Direct Website Crawling

    If a crawler already has:

    https://example.com/article

    Google’s intermediary is irrelevant.

    The crawler can request the publisher directly, subject to the publisher’s own access controls and normal web-crawling considerations.

    Therefore:

    /goto is primarily a Search-result discovery and resolution issue, not a general web-crawling mechanism.

    First-Party Analytics

    Analytics systems operating on the publisher’s website continue to receive the information available through their own measurement architecture.

    The Google intermediary does not automatically erase:

    • page views;
    • server requests;
    • campaign parameters;
    • internal navigation;
    • conversion events.

    Its effect is primarily on systems trying to infer destination information by extracting Google’s Search result links.

    Known-URL Monitoring

    If the system already knows the target URL, it can monitor it directly.

    For example:

    Known:

    example.com/pricing

    Need:

    check status

    check canonical

    check content

    check rankings

    No /goto resolution is required for the page-monitoring component.

    Domain-Level SERP Measurement

    A collector may still be able to establish:

    example.com appears in position 4

    even if exact URL resolution fails.

    This distinction is extremely important.

    A system can have:

    high confidence in domain presence

    while having:

    low confidence in exact landing-page identity.

    Those should not be collapsed into a single binary success/failure state.

    The Exact-URL Attribution Problem

    This is where /goto becomes more consequential for SEO than it first appears.

    Domain Visibility Versus Landing-Page Visibility

    Consider:

    Query: enterprise SEO

    Position: 3

    Domain: example.com

    That may be enough for a basic share-of-voice report.

    But an advanced SEO platform may need:

    URL: example.com/enterprise-seo

    because the URL determines:

    • page intent;
    • content type;
    • internal linking;
    • conversion path;
    • cannibalisation;
    • template;
    • topical cluster.

    A domain-level answer cannot replace a URL-level answer.

    Keyword-to-URL Mapping

    SEO systems often construct a graph:

    Keyword

      ↓

    Ranking URL

      ↓

    Topic

      ↓

    Traffic

      ↓

    Conversion

    If the ranking URL becomes unknown, the graph becomes incomplete.

    This can affect:

    • keyword clustering;
    • page-level reporting;
    • content refresh recommendations;
    • cannibalisation analysis;
    • internal-link recommendations.

    Cannibalisation Detection

    Cannibalisation systems need to know whether:

    keyword A

    maps to:

    /page-a

    or:

    /page-b

    If both pages alternate in Search, that pattern can be analytically important.

    A domain-only record cannot reliably identify it.

    Therefore, URL resolution is not cosmetic.

    It affects the semantic interpretation of the ranking dataset.

    Page-Level Share of Voice

    Suppose:

    example.com

    owns 20 rankings.

    A domain-level system can count all 20.

    But suppose those 20 rankings are distributed across:

    • 2 product pages;
    • 8 category pages;
    • 6 editorial pages;
    • 4 location pages.

    That is a very different SEO picture.

    Exact URL attribution enables the second level of analysis.

    SERP Intent Classification

    The landing page can also reveal intent.

    For example:

    /search-term

    might resolve to:

    /product/

    rather than:

    /blog/

    That distinction can inform how a SERP behaves.

    If URL resolution fails, some classification systems must rely on weaker signals such as:

    • title;
    • snippet;
    • visible breadcrumb;
    • displayed domain;
    • structured result metadata.

    Those can be useful, but they are not equivalent to knowing the actual destination.

    Why a Missing URL Can Create a False SEO Signal

    Imagine an SEO platform reports:

    Keyword:

    “enterprise seo agency”

    Position:

    4

    Ranking URL:

    Unknown

    An analyst may interpret that as a data-quality issue.

    Correct.

    But if the platform instead drops the result entirely, the problem becomes more serious.

    The dataset now says:

    No result detected

    rather than:

    Result detected, destination unresolved

    Those are radically different states.

    The first implies absence.

    The second implies incomplete observation.

    A robust /goto-aware platform must preserve that distinction.

    The New Failure Modes in SEO Measurement

    Apparent Ranking Loss Caused by Resolution Failure

    A ranking collector can identify a result but fail to resolve its destination.

    If its downstream data model requires a valid URL before storing the ranking, the ranking may disappear from the final report.

    That can produce:

    Google:

    result exists

    Rank tracker:

    result missing

    The discrepancy is methodological, not necessarily algorithmic.

    Missing Landing Pages

    A platform may still report:

    Domain: example.com

    Position: 7

    but fail to report:

    Landing page: /service/enterprise-seo

    This is less severe than losing the ranking entirely, but it still corrupts page-level analysis.

    Incorrect URL Attribution

    A more dangerous failure occurs when the system assigns the wrong destination.

    For example:

    Keyword A

    Position 4

    URL = page B

    when the actual destination is page A.

    That can create false cannibalisation signals and incorrect content recommendations.

    In measurement systems, incorrect data can be worse than missing data.

    Distorted Share of Voice

    If URL resolution failures are non-random, share-of-voice calculations can become biased.

    For example, suppose /goto resolution fails disproportionately for one category of result.

    The resulting dataset may undercount that category.

    That is not a simple 5% missing-data problem.

    It is a sampling problem.

    SERP Feature Undercounting

    The same issue can occur outside conventional organic results.

    SerpApi’s September release notes show that /goto handling had to be addressed in several specialised result types, including local results and videos, while its weekly changelog described fixes for AI Overview, questions and answers, recipes and video key moments.

    This means an implementation that checks only:

    organic_result.link

    may be incomplete.

    A /goto-aware architecture needs to consider result-type-specific URL fields.

    Historical Data Discontinuity

    Any major Search collection change introduces a possible break in longitudinal datasets.

    A rank-tracking graph might show:

    Aug this year

    100-result coverage

    Sep this year

    partial result coverage

    If that transition is not recorded, analysts may interpret the difference as a genuine change in Search visibility.

    The same problem already appeared during the num=100 disruption, when rank-tracking providers had to adapt their methods for deeper results. Ahrefs documented the disruption and later reported progressive restoration of top-100 tracking.

    The lesson is broader:

    Every Search collection-method change needs a measurement-version boundary.

    How to Detect /goto-Driven Measurement Errors

    Detecting Google Intermediary URLs

    The simplest diagnostic is to inspect raw link fields for:

    google.com/goto

    Do not stop there.

    Also inspect:

    • encoded variants;
    • redirects;
    • result-type-specific fields;
    • API-normalised URLs.

    A provider may already resolve the intermediary before returning its output.

    Monitoring Resolution Success Rates

    Track:

    resolved / total affected links

    over time.

    For example:

    Resolution success:

    99.8%

    ↓

    97.1%

    ↓

    91.4%

    A sudden change should trigger investigation.

    Comparing Domain and URL-Level Visibility

    Maintain separate metrics:

    Domain identification success

    Exact URL identification success

    If domain identification remains stable while URL identification falls, the problem is likely in destination resolution rather than Search-result detection.

    Identifying Sudden Resolver Latency

    Track:

    • median resolution time;
    • p95;
    • p99;
    • timeout rate;
    • retry rate.

    A resolver that technically succeeds but takes dramatically longer can still make the collection system operationally unstable.

    Comparing Third-Party Data With First-Party Search Data

    Search Console and rank trackers answer different questions, so they should not be expected to match exactly.

    But large unexplained changes in:

    • impressions;
    • ranking coverage;
    • landing-page attribution;
    • keyword counts

    can provide useful diagnostic signals when they coincide with a collection-method change.

    The key is to avoid treating correlation as proof.

    Establishing a Measurement Breakpoint

    A serious Search dataset should retain something like:

    collector_version

    google_link_format

    resolution_strategy

    timestamp

    Then an analyst can distinguish:

    SEO performance change

    from:

    measurement-system change

    That distinction is becoming increasingly important.

    The SerpApi Litigation and the Legal Context

    The /goto rollout also occurred against a background of litigation involving Google and SerpApi.

    That context is relevant, but it must be handled carefully.

    The existence of the lawsuit does not establish why Google introduced /goto.

    What Google Alleged

    Google sued SerpApi over claims involving the collection and use of information from Google services.

    In July this year, the U.S. District Court for the Northern District of California dismissed Google’s DMCA claims, while giving Google an opportunity to amend portions of the case involving copyrighted material. Search Engine Land reported that the court permanently dismissed claims based on Search results that did not contain copyrighted content and allowed Google to revise claims concerning Search results containing copyrighted content.

    What SerpApi Argued

    SerpApi disputed Google’s claims and sought dismissal.

    After Google filed an amended complaint in August this year, SerpApi described the amended case as narrower, saying that the surviving theories focused on licensed content, principally material appearing in Knowledge Panels, rather than the broader Shopping and Maps theories present in the original complaint. That is SerpApi’s description of the amended pleading, not an independent judicial finding.

    What the Court Actually Decided

    The July order matters because it established that Google’s original legal theories did not all survive the motion-to-dismiss stage.

    But it is equally important not to overread the ruling.

    A dismissal of particular claims is not a judicial finding that:

    • Search scraping is universally lawful;
    • all Search data is freely reusable;
    • Google’s technical protections are unlawful;
    • or /goto was introduced because of the litigation.

    Those are separate questions.

    The Significance of the July this year Order

    The timing is nevertheless notable.

    The sequence was:

    July this year

    Court dismisses key Google claims

    August this year

    Google files amended complaint

    August 26, this year

    Google publicly confirms /goto rollout

    The chronology is factual.

    The causal explanation is not established by that chronology.

    That distinction is essential.

    A report can accurately say the two developments occurred in close temporal proximity without claiming that one caused the other.

    The /goto Timeline Versus the Litigation Timeline

    Some industry commentators have explicitly connected the redirect rollout with Google’s broader dispute over automated access to Search.

    That interpretation should be attributed to those commentators.

    Google’s public statement did not cite the SerpApi litigation. It described the mechanism generally as part of technical measures against evolving forms of abuse.

    Therefore, the strongest formulation is:

    The /goto rollout occurred during an active legal and technical dispute over automated access to Google Search, but the public record does not establish that the litigation caused the rollout.

    That is both more defensible and more interesting than reducing the story to a simple legal narrative.

    Timeline of Google’s Search Access Barriers

    The Pre-/goto Architecture

    For much of the modern SEO-tool era, the basic model was straightforward:

    Google Search

    ↓

    SERP

    ↓

    direct destination URLs

    Search-data providers still had to deal with:

    • IP reputation;
    • request limits;
    • browser differences;
    • JavaScript;
    • pagination;
    • result variability.

    But destination extraction itself was comparatively direct.

    The previous year Search Access Changes

    The September previous year &num=100 change was a major event for SERP measurement.

    Industry reports documented that the parameter stopped reliably returning 100 results, disrupting rank trackers and forcing providers to reconsider how they collected deeper rankings.

    Ahrefs subsequently described a sequence of engineering adaptations, including gradual restoration of top-100 tracking.

    This matters because it established a precedent:

    Google could materially alter the economics of SERP collection without changing the underlying rankings.

    The Emergence of /goto

    Public observations of /goto appeared before Google’s August confirmation.

    SerpApi’s public roadmap contains an issue dating to June 30, this year documenting /goto links in Google AI Overview results, showing that the behaviour had been observed in specialised Search contexts before the broader August rollout.

    By late August, multiple industry observers were reporting broader Search-result use.

    The this year Rollout

    On 26 August this year, Google confirmed that it was deploying the mechanism.

    Its public statement was intentionally non-specific:

    Google said it has a history of deploying technical measures against evolving forms of abuse and regularly takes steps to protect its services and users.

    That statement is significant precisely because it does not describe the implementation as a ranking change.

    The September Adaptation Phase

    The first days of September became an engineering race between Google-side changes and Search-data providers.

    SerpApi reported on 30 August that it was actively resolving /goto URLs as the implementation evolved.

    By 5 September, it reported that it had deployed fixes and was again returning direct destination URLs.

    Its release notes subsequently documented additional /goto-related fixes for Google Search, local results, videos and other APIs.

    This sequence demonstrates something important:

    The problem is not necessarily solved once a provider implements one resolver.

    If Google changes where or how intermediary links appear, the provider must continue adapting.

    /goto Versus Google’s Older Redirect Mechanisms

    Google has used intermediary URLs and click-tracking mechanisms before.

    So what makes /goto different?

    google.com/url

    Older Google Search interfaces and specialised environments have historically used redirect wrappers in which the destination could often be extracted from an explicit parameter.

    Conceptually:

    google.com/url?q=https://example.com

    The important property was that the destination remained comparatively accessible from the wrapper itself.

    google.com/aclk

    Advertising links use Google-controlled click-tracking infrastructure for measurement and attribution.

    The purpose and context are different from organic Search result links.

    The broader point is that Google has long had mechanisms for placing itself between a user click and a publisher.

    That means /goto is not historically unprecedented as a concept.

    Tracking and Attribution Redirects

    A redirect can serve many purposes:

    • click measurement;
    • attribution;
    • security;
    • policy enforcement;
    • link management;
    • abuse prevention;
    • experimentation.

    The existence of an intermediary therefore does not by itself establish its purpose.

    What makes /goto notable is the combination of:

    1. its appearance in Search result links;
    2. its opaque token;
    3. its displacement of the readable destination in the result markup;
    4. and its implications for automated SERP data extraction.

    What Makes /goto Technically Different

    The key difference is not simply:

    Google redirects users

    Google has done that before.

    The important change is:

    Google Search result

    ↓

    opaque Google reference

    ↓

    Google-controlled resolution

    ↓

    publisher destination

    The destination is no longer a simple property of the result’s initial HTML representation.

    That changes the machine-readable data model.

    Engineering a /goto-Aware SERP Pipeline

    A production system should treat destination resolution as a separate subsystem.

    Detection Layer

    The first layer identifies whether a result contains:

    google.com/goto

    or another Google intermediary format.

    The detector should not assume that every result uses /goto.

    It should support:

    direct

    goto

    legacy_redirect

    unknown

    This allows Google to change link formats without requiring a complete rewrite of the extraction pipeline.

    Resolution Layer

    The next stage resolves affected URLs.

    Conceptually:

    SERP

     ↓

    Result parser

     ↓

    URL classifier

     ├── direct ────────────→ destination

     ├── /goto ─────────────→ resolver

     └── unknown ───────────→ fallback

    The resolver should return more than a string.

    It should return structured state:

    {

      “status”: “resolved”,

      “destination”: “https://example.com/page”,

      “http_status”: 302,

      “latency_ms”: 184

    }

    That makes the system observable.

    Resolver Queues

    A queue separates Search acquisition from destination resolution.

    That allows:

    SERP acquisition

            ↓

    resolution queue

            ↓

    workers

            ↓

    destination store

    If resolution slows down, the system can measure queue depth rather than silently stalling the entire Search collector.

    Concurrency Control

    Resolution should be bounded.

    A resolver can dynamically adjust concurrency based on:

    • success rate;
    • latency;
    • queue size;
    • available connections;
    • provider limits.

    This is standard distributed-systems engineering, but it becomes newly relevant to Search extraction because Google has inserted another network operation into the data path.

    Deduplication

    If the same intermediary URL occurs multiple times within a collection batch, resolving it repeatedly may be wasteful.

    A cache can temporarily map:

    goto_token

    →

    resolved_destination

    But that mapping should not automatically be treated as permanent.

    As Part 1 established, current evidence does not justify treating the token as a durable URL identifier.

    Redirect Caching

    A sensible system can maintain short-lived resolution caches.

    For example:

    Cache key:

    exact intermediary URL

    Value:

    destination + timestamp + status

    The TTL should be conservative unless the token’s lifetime and semantics are known.

    The goal is not to reverse-engineer Google’s token system.

    The goal is to avoid unnecessary repeated resolution while preserving correctness.

    Failure-State Modelling

    This is one of the most important architectural requirements.

    Do not store only:

    url = null

    Instead use states such as:

    direct

    resolved

    unresolved

    timeout

    blocked

    invalid

    unknown

    Then downstream analytics can distinguish:

    No destination exists

    from:

    Destination exists but collection failed

    That distinction protects the integrity of the dataset.

    Preserving SERP Position During Resolution

    The resolver must never lose the relationship between:

    query

    position

    result

    token

    destination

    A poor implementation can produce a destination list:

    URL A

    URL B

    URL C

    without knowing which URL corresponded to which result position after asynchronous resolution.

    A robust implementation preserves the result identity:

    {

      “query”: “enterprise seo”,

      “position”: 4,

      “intermediary_url”: “https://www.google.com/goto?url=…”,

      “destination_url”: “https://example.com/enterprise-seo”

    }

    The resolver is asynchronous.

    The ranking relationship is not.

    Raw-Evidence Retention

    The final structured URL should not replace the original evidence.

    Store:

    raw href

    resolved URL

    HTTP status

    timestamp

    collector version

    That provides an audit trail.

    If Google changes /goto tomorrow, engineers can inspect historical raw data instead of trying to reconstruct what the Search page looked like from a normalised database.

    Why the Naïve Workarounds Fail

    “Just Decode the Base64”

    This addresses the wrong layer.

    Base64URL decoding can expose the underlying binary representation, but current public research does not show a practical local transformation from the CAES… token directly to the final URL.

    The redirect itself remains the more practical resolution mechanism.

    “Just Use Regex”

    Regex can identify the intermediary.

    It cannot infer the destination if the destination is not present in the string.

    The problem is no longer pattern matching.

    It is network resolution.

    “Just Follow Every Link”

    This is closer to the real solution, but it ignores scale.

    Following every link introduces:

    • additional requests;
    • latency;
    • concurrency requirements;
    • failure handling;
    • caching;
    • attribution problems.

    It solves the logical problem while creating an infrastructure problem.

    “Just Use HEAD Requests”

    A common optimisation instinct is to replace:

    GET

    with:

    HEAD

    But redirect behaviour and server handling cannot simply be assumed to be identical across methods and environments.

    A production resolver needs empirical validation rather than assuming that every intermediary will provide an equivalent Location response to every HTTP method.

    “Just Rotate User Agents”

    User-Agent rotation does not remove the fundamental need to resolve an intermediary URL.

    It may change what Search returns, but it does not eliminate the second stage.

    It therefore addresses a different problem.

    “Just Buy More Proxies”

    More IP addresses can increase capacity.

    They cannot fix:

    • incorrect URL attribution;
    • poor resolver architecture;
    • token parsing assumptions;
    • missing result states;
    • historical-data corruption.

    Infrastructure scale is not a substitute for a correct data model.

    “Just Use Search Console”

    Search Console is valuable, but it answers a different question.

    It can provide first-party Search performance information for a site.

    It does not replace a third-party system that needs to answer:

    For this exact query,

    in this exact location,

    on this exact device,

    what appeared at position 7,

    and which URL did that result point to?

    First-party Search data and independent SERP observation are complementary, not interchangeable.

    Part 3: /goto, AI Search and the Future of Search Observability

    The first two parts established two separate facts that become much more significant when combined.

    First, Google’s /goto mechanism can place an opaque intermediary between a Search result and the publisher destination. Independent testing shows that the CAES… payload can be structurally decoded but does not practically expose the destination URL through ordinary local decoding. The destination can instead be recovered through Google’s redirect behaviour.

    Second, the resulting engineering problem is not limited to URL parsing. A Search-data system must now acquire the SERP, identify the intermediary, resolve it, preserve the relationship between the result and destination, handle failures and maintain enough provenance to know whether a change in its dataset represents an actual Search change or a collection change.

    That matters even more as Search increasingly becomes an input into systems that do not simply report rankings.

    AI retrieval systems, answer engines, citation monitors, competitive-intelligence platforms and agentic browsing systems all depend on one fundamental relationship:

    Query

       ↓

    Search result

       ↓

    Source

       ↓

    Source URL

       ↓

    Source content

    If the source URL becomes a separate resolution event, then URL resolution becomes part of retrieval infrastructure.

    That is the larger significance of /goto.

    It is not simply a new Google URL format.

    It is a change in the observability layer between Search and the systems that consume Search.

    /goto and AI Search Systems

    SERP Scraping Versus Web Crawling

    One of the easiest mistakes in discussions about /goto is to treat all automated access to the web as one activity.

    It is not.

    A conventional crawler can begin with:

    https://example.com/article

    and request that page directly.

    A SERP collector begins with:

    “enterprise SEO agency“

    and asks:

    Which pages did Google return?

    In what order?

    For which Search environment?

    The two workflows have fundamentally different starting points.

    A simplified crawler looks like:

    Known URL

       ↓

    HTTP request

       ↓

    Page

       ↓

    Links

       ↓

    More pages

    A SERP-driven retrieval system looks like:

    Query

       ↓

    Search engine

       ↓

    Candidate sources

       ↓

    Destination URLs

       ↓

    Source retrieval

    /goto primarily inserts friction into the second architecture.

    That distinction is crucial.

    It would be incorrect to conclude that Google has somehow placed the entire open web behind /goto. It has not.

    A publisher’s URL remains an ordinary web address.

    What has changed is how easily an automated system can extract that address from an affected Google Search result.

    Search Retrieval Versus Destination Retrieval

    An AI system performing web retrieval often has at least two logically separate stages.

    Stage 1: Candidate discovery

    Query

     ↓

    Search

     ↓

    Candidate results

    Stage 2: Evidence acquisition

    Candidate result

     ↓

    Destination URL

     ↓

    Web request

     ↓

    Page content

    The /goto mechanism sits between those stages.

    Before:

    Candidate result

     ↓

    URL already visible

     ↓

    Fetch page

    After:

    Candidate result

     ↓

    Google intermediary

     ↓

    Resolve

     ↓

    Fetch page

    This adds a network-dependent step before the retrieval system can even decide whether it wants to fetch the page.

    For an occasional human-style agent, that extra step may be trivial.

    For a system evaluating millions of Search results, it becomes a measurable component of retrieval cost.

    Where /goto Sits in an AI Retrieval Pipeline

    Consider an AI research system answering:

    What are the leading approaches to enterprise search optimisation?

    A conventional retrieval pipeline might look like:

    User question

           ↓

    Query generation

           ↓

    Google Search

           ↓

    Top results

           ↓

    URLs

           ↓

    Page retrieval

           ↓

    Content extraction

           ↓

    Chunking

           ↓

    Ranking

           ↓

    LLM synthesis

    With affected /goto results:

    User question

           ↓

    Query generation

           ↓

    Google Search

           ↓

    Top results

           ↓

    Google /goto links

           ↓

    Destination resolution

           ↓

    URLs

           ↓

    Page retrieval

           ↓

    Chunking

           ↓

    Ranking

           ↓

    LLM synthesis

    The additional stage has an interesting property.

    It does not necessarily change the information available to the final language model.

    It changes the cost and reliability of obtaining that information.

    That distinction is central to understanding the effect on AI systems.

    Search APIs Versus Browser-Based Agents

    Not every AI system interacts with Google in the same way.

    There are at least three broad architectures.

    Search API architecture

    AI system

     ↓

    Search API

     ↓

    structured results

     ↓

    source URLs

    The API provider absorbs the complexity of Google’s implementation.

    SerpApi, for example, reported that after the /goto rollout it adapted its infrastructure so that its customer-facing APIs continued returning direct destination URLs. It also reported fixing affected result types including AI Overview and several specialised Search result structures.

    For an AI company using such an API, /goto may therefore be largely invisible.

    The infrastructure provider has effectively become the resolution layer.

    Browser-agent architecture

    A browser agent can operate more like a human:

    Open Search

     ↓

    Observe result

     ↓

    Click

     ↓

    Follow redirect

     ↓

    Read page

    The intermediary may therefore be handled naturally by the browser.

    But the cost profile is different.

    Browser automation is significantly more expensive than extracting URLs from static HTML.

    The /goto change therefore matters differently depending on whether the AI system is already paying the cost of a browser environment.

    Hybrid retrieval architecture

    The third model combines Search APIs with direct retrieval:

    Search API

     ↓

    Candidate URLs

     ↓

    Direct HTTP fetch

     ↓

    Content

    This model depends heavily on the API provider correctly resolving /goto.

    That makes the provider’s extraction quality part of the AI system’s retrieval quality.

    Agentic Browsing and Redirect Resolution

    An agent that literally clicks a result does not need to understand the CAES token.

    It only needs a browser capable of following the link.

    This is an important reason not to exaggerate the impact of /goto on AI.

    The mechanism does not automatically prevent an agent from navigating to the source.

    The more significant effect is on systems that want to inspect, classify or manipulate Search-result URLs before clicking them.

    For example, an agent may want to:

    • reject certain domains;
    • classify source types;
    • compare URLs;
    • deduplicate results;
    • prioritise canonical pages;
    • inspect URL paths;
    • estimate source relevance;
    • build a source graph.

    Those tasks benefit from knowing the destination before navigation.

    An opaque intermediary makes that pre-navigation analysis more expensive.

    This creates a subtle distinction:

    Click-based agents can often tolerate indirection.

    Data-centric retrieval systems care much more about indirection.

    /goto and AI Citation Monitoring

    Citation Discovery

    AI visibility platforms increasingly ask questions such as:

    Which sources were cited?

    How often?

    For which prompts?

    At what position?

    Which pages were referenced?

    The answer is fundamentally URL-oriented.

    Consider an AI answer containing:

    Source: example.com

    A serious monitoring platform may want to determine whether the cited source was:

    example.com/

    or:

    example.com/resources/enterprise-seo

    or:

    example.com/blog/search-visibility

    The domain alone is insufficient.

    The page is the actual evidence source.

    Source URL Identification

    This is where /goto becomes relevant.

    If Google Search is used as one of the discovery layers for an AI citation-monitoring system, the system may encounter:

    google.com/goto?url=CAES…

    instead of:

    example.com/article

    The platform must resolve the intermediary before it can store the source identity.

    This is not fundamentally different from the problem faced by a rank tracker.

    But the downstream consequences can be larger.

    A rank tracker may only need to report:

    Position 5

    An AI visibility platform may need to build a source-level evidence graph.

    For example:

    Prompt

     ↓

    AI answer

     ↓

    Citation

     ↓

    Publisher

     ↓

    URL

     ↓

    Canonical

     ↓

    Content

     ↓

    Entity/topic

    An unresolved URL interrupts that graph.

    Canonical URL Resolution

    Even after resolving /goto, the job may not be finished.

    The destination could itself redirect:

    Google /goto

           ↓

    https://example.com/old-page

           ↓

    301

           ↓

    https://example.com/new-page

    Or:

    Google /goto

           ↓

    tracking URL

           ↓

    canonical page

    Therefore, an advanced retrieval system should distinguish at least four layers:

    1. Search-result href

    2. Google intermediary

    3. HTTP destination

    4. Canonical document URL

    That creates a much richer model:

    SERP Result

        ↓

    Google transport URL

        ↓

    Resolved URL

        ↓

    Final URL

        ↓

    Canonical URL

    Collapsing those into a single url field destroys useful information.

    Citation-Level Attribution

    This becomes particularly important when measuring AI visibility.

    Suppose a system reports:

    Brand:

    Example Company

    Citation:

    example.com

    That is a weak measurement.

    A more useful record is:

    Prompt:

    enterprise SEO tools

    Answer:

    …

    Citation:

    https://example.com/resources/enterprise-seo-tools

    Citation type:

    direct source

    Discovery path:

    Google Search

    Resolution:

    Google /goto → destination

    Canonical:

    https://example.com/resources/enterprise-seo-tools

    That dataset can support longitudinal analysis.

    The first cannot.

    Why Domain-Level Visibility Is Not Enough

    A domain may have thousands of pages.

    If an AI system cites:

    example.com

    that does not tell an SEO team which content earned the citation.

    The actionable question is:

    Which document became evidence?

    That is a URL-level question.

    Google’s intermediary therefore has disproportionate relevance to systems measuring content-level AI visibility.

    The New Architecture of Search Data Acquisition

    The larger shift can now be expressed more clearly.

    From HTML Parsing to Behavioural Resolution

    The old SERP extraction mindset was:

    Download

     ↓

    Parse

     ↓

    Extract

    The newer model is:

    Acquire

     ↓

    Observe

     ↓

    Classify

     ↓

    Resolve

     ↓

    Validate

     ↓

    Normalise

     ↓

    Store

    This is a fundamentally more sophisticated data pipeline.

    The distinction resembles the difference between parsing a document and interacting with a service.

    A static document contains its data.

    A service can require an additional transaction to reveal the data.

    /goto moves part of Search-result information towards the second model.

    Search Data as an Acquisition Pipeline

    A mature Search-data platform should therefore be thought of as an acquisition system rather than a scraper.

    A useful abstraction is:

                      Google Search

                            │

                            ▼

                     Search Collector

                            │

                            ▼

                     Result Classifier

                            │

              ┌─────────────┴─────────────┐

              ▼                           ▼

         Direct URL                    /goto

              │                           │

              │                           ▼

              │                     URL Resolver

              │                           │

              └─────────────┬─────────────┘

                            ▼

                     URL Normaliser

                            │

                            ▼

                      Result Store

                            │

                            ▼

                    Analytics Layer

    Each component can fail independently.

    That means each component also needs observability.

    Provenance Becomes a First-Class Data Attribute

    Traditional ranking databases often store something like:

    keyword

    position

    url

    date

    That is increasingly insufficient.

    A modern Search observation should be closer to:

    keyword

    position

    result_type

    raw_href

    transport_url

    resolved_url

    canonical_url

    collection_timestamp

    location

    language

    device

    collector_version

    resolution_status

    Why?

    Because two identical URLs can be obtained through different collection pathways.

    And two apparently different URLs can represent the same canonical document.

    Without provenance, future analysts cannot distinguish:

    Google changed

    from:

    collector changed

    from:

    provider changed

    from:

    publisher changed

    That is a major shift in how Search datasets need to be designed.

    Measurement Confidence

    A mature platform should also stop treating every result as equally certain.

    Consider:

    Result detected:

    YES

    Domain:

    example.com

    Exact destination:

    UNRESOLVED

    That should not become:

    Result:

    MISSING

    Nor should it become:

    URL:

    example.com/page

    The correct representation is uncertainty.

    For example:

    Domain confidence: High

    Position confidence: High

    Exact URL confidence: Low

    Canonical confidence: Unknown

    This allows downstream analytics to remain honest.

    Collector Versioning

    Suppose a ranking report changes significantly on 28 August this year.

    Without collector metadata, an analyst may investigate:

    • Google’s ranking algorithm;
    • competitor activity;
    • content changes;
    • backlinks;
    • technical SEO.

    But the real cause could be a Search collection change.

    A robust system should therefore store:

    collector_version = this year.08.28

    link_resolution = goto-aware

    The exact implementation can vary, but the principle is universal:

    Search measurements need methodology versioning.

    Search-Environment Versioning

    Search results are not generated in a vacuum.

    A result can depend on:

    • location;
    • language;
    • device;
    • browser;
    • session;
    • personalisation;
    • Search features;
    • time.

    A /goto investigation makes that even more obvious because independent tests have shown that the link representation can vary across environments. A September this year test found direct and /goto link behaviour differing by browser and session, while other research observed variations across Search result types.

    Therefore:

    “Google Search”

    is not a sufficiently precise description of a measurement environment.

    A reproducible observation should identify the environment in which it was collected.

    How SEO Platforms Need to Adapt

    Separating Ranking Collection From URL Resolution

    This is perhaps the most important architectural recommendation for Search-data providers.

    Do not build:

    parse_result()

    → url

    → save()

    as one indivisible function.

    Separate:

    collect_result()

    from:

    resolve_destination()

    and:

    normalise_destination()

    That makes the system resilient to changes in Google’s link architecture.

    Building Resolver Abstractions

    The resolver should not be hard-coded around one exact token structure.

    Instead:

    Transport URL

         ↓

    Resolver interface

         ↓

    Resolved destination

    The implementation can then change without changing the rest of the analytics system.

    This matters because Google’s current /goto representation should not be assumed to be permanent.

    The September this year industry response already demonstrates how quickly implementations have had to evolve. SerpApi described the rollout as changing across Search features and continued shipping fixes for affected result types.

    Preserving Raw SERP Evidence

    Normalised data is convenient.

    Raw evidence is what allows future debugging.

    A platform should retain, where permitted and operationally appropriate:

    raw href

    result metadata

    intermediary URL

    HTTP response

    resolved destination

    timestamp

    That allows engineers to reconstruct the event.

    Without the raw link, a later investigation may only reveal:

    URL = example.com/page

    which tells nothing about whether Google originally exposed that URL directly or through /goto.

    Handling Partial Resolution

    A resolver should be allowed to return partial results.

    For example:

    {

      “position”: 7,

      “domain”: “example.com”,

      “destination_status”: “unresolved”

    }

    This is superior to dropping the result.

    Partial information can be analytically useful if its limitations are explicit.

    Confidence-Aware Reporting

    A platform can expose separate quality metrics:

    SERP detection rate

    Result classification rate

    Destination resolution rate

    Canonical resolution rate

    This creates a data-quality dashboard for the Search measurement system itself.

    That is a significant conceptual upgrade.

    The SEO platform is no longer merely reporting Google’s Search data.

    It is reporting how confidently it was able to observe Google’s Search data.

    Re-Baselining Historical Data

    When collection architecture changes, historical comparisons need to be annotated.

    For example:

    Before Aug this year:

    direct-link extraction

    Aug–Sep this year:

    mixed direct + /goto

    After resolver deployment:

    resolved destination extraction

    If a provider fails to record this transition, users may interpret measurement changes as ranking changes.

    This is especially important for long-term enterprise SEO reporting.

    Avoiding Silent Data Corruption

    The worst possible implementation is one that continues producing numbers while silently changing what those numbers mean.

    For example:

    Before:

    URL = publisher destination

    After:

    URL = Google intermediary

    If the schema remains:

    url

    downstream systems may never notice.

    The result is not an obvious outage.

    It is semantic corruption.

    That is much harder to detect.

    A Technical Taxonomy of Google’s Search Access Barriers

    The /goto mechanism becomes easier to understand when placed into a broader taxonomy.

    LayerMechanismWhat changes
    RenderingDynamic/client-side SearchHow results become observable
    AccessAnti-automation controlsWho can reliably retrieve results
    DepthPagination/result-count changesHow much data each request returns
    Representation/gotoHow destination URLs are exposed
    ResolutionRedirect chainHow destinations are discovered
    RateRequest controlsHow quickly data can be collected
    SemanticsDynamic SERP featuresHow results must be classified

    The important point is that these layers operate differently.

    A rendering barrier increases client complexity.

    A pagination change increases request volume.

    A /goto mechanism increases destination-resolution work.

    A rate-control mechanism limits throughput.

    A dynamic SERP feature increases classification complexity.

    Together, they produce a system in which Search observation itself becomes an engineering discipline.

    What We Know, What We Suspect and What Remains Unknown

    The most responsible conclusion about /goto is not that every popular explanation is correct.

    It is that enough evidence now exists to separate fact from inference.

    Confirmed by Google

    Google confirmed on 26 August this year that it was rolling out the /goto redirect mechanism as part of its technical measures against evolving forms of abuse. The company did not publicly identify the precise abuse categories or provide a full technical specification of the token.

    That is the official position.

    It should remain the baseline.

    Demonstrated Through Technical Testing

    Independent testing has established several useful observations.

    Affected Search results can expose:

    google.com/goto?url=CAES…

    instead of the direct publisher URL.

    The token can be Base64URL-decoded into binary, but the final destination is not practically recoverable through ordinary local decoding. Research has identified a protobuf-like envelope and protected binary payload.

    Other testing has found that the representation is not uniform across every browser or environment.

    Third-Party Observations

    Search-data providers have documented real-world impact.

    SerpApi reported that the rollout temporarily affected direct URL fields and required engineering changes. It later reported restoring direct destination URLs and continuing to monitor evolving variations.

    Its changelog also records fixes for /goto handling across multiple result types, including AI Overview, questions and answers, recipes, video key moments, Lens and other Search interfaces.

    These reports demonstrate that the mechanism is operationally significant for systems consuming Google Search at scale.

    Plausible Architectural Interpretations

    It is reasonable to conclude that /goto makes automated extraction of destination URLs more complicated because the destination is no longer necessarily present directly in the initial result link.

    It is also reasonable to conclude that the mechanism increases the engineering work required for systems that need exact destination URLs.

    It is less defensible to assert the precise internal purpose of every part of the token.

    Claims That Should Not Yet Be Treated as Facts

    Several questions remain unresolved:

    • the complete token-generation algorithm;
    • the exact cryptographic construction, if any;
    • the semantic meaning of every payload field;
    • the complete rollout percentage globally;
    • the exact lifetime of tokens;
    • the permanent scope of /goto;
    • whether all Search surfaces will ultimately use the same mechanism;
    • whether Google’s implementation will remain stable.

    A September this year report described the rollout as broad, while other testing continues to find variation by browser and environment. That means claims of a single universal implementation should be treated cautiously.

    A Forensic Checklist for Investigating /goto

    A serious investigation should begin with evidence rather than assumptions.

    Capture

    Capture:

    • raw SERP HTML;
    • DOM representation;
    • result position;
    • result type;
    • raw href;
    • visible destination text;
    • network requests;
    • redirect status;
    • final destination.

    Compare

    Run controlled comparisons across:

    • browser;
    • User-Agent;
    • session;
    • IP;
    • location;
    • language;
    • device;
    • signed-in state;
    • query.

    Do not change all variables simultaneously.

    Otherwise, a difference cannot be attributed confidently.

    Measure

    Record:

    /go-to detection rate

    resolution success rate

    resolution latency

    timeout rate

    redirect status

    destination stability

    These measurements can reveal whether a problem is:

    • Search acquisition;
    • URL resolution;
    • network reliability;
    • or downstream parsing.

    Validate

    For every resolved destination, where relevant, validate:

    • final URL;
    • canonical URL;
    • redirect chain;
    • domain;
    • path;
    • result position;
    • result type.

    This prevents the resolver from becoming another source of silent data corruption.

    Preserve

    Retain enough evidence to reconstruct the observation later.

    At minimum:

    timestamp

    query

    position

    raw href

    resolved URL

    collector version

    resolution status

    environment

    That turns a scraper into a measurable data-acquisition system.

    The Broader Shift From SERP Scraping to Search Observability

    This is where the /goto story ultimately becomes bigger than /goto.

    For years, third-party SEO platforms operated under a relatively simple conceptual division.

    Google determined the rankings.

    Third-party systems observed them.

    The observation layer was not necessarily trivial, but the basic premise was clear.

    A Search result could be retrieved, parsed and converted into a structured record.

    The increasing sophistication of Google’s Search interfaces changes that relationship.

    Google Controls Ranking, But Third Parties Traditionally Observed It

    The third-party measurement ecosystem developed around independent observation.

    Rank trackers effectively said:

    We queried Google under defined conditions.

    Here is what appeared.

    That observation model depends on the ability to reproduce and inspect Search.

    When Google changes the representation of the Search result, the observer must adapt.

    That does not mean independent observation becomes impossible.

    It means the observer must increasingly operate infrastructure specifically designed for that purpose.

    The Growing Cost of Independent SERP Observation

    The sequence is now easier to see:

    Static HTML extraction

            ↓

    Browser-aware extraction

            ↓

    Anti-bot adaptation

            ↓

    Pagination adaptation

            ↓

    Dynamic result classification

            ↓

    URL resolution

            ↓

    Provenance management

    Each additional layer increases the cost of maintaining an independent observation system.

    The important economic effect is therefore not necessarily that a competitor disappears.

    It is that the barrier to building and maintaining a high-quality independent Search dataset rises.

    Search Results as a Controlled Data Boundary

    The /goto mechanism is particularly interesting because it changes a boundary without changing the visible result.

    A human sees:

    Result

     ↓

    Website

    A data system can see:

    Result

     ↓

    Google-controlled object

     ↓

    Google-controlled resolution

     ↓

    Website

    The publisher page is still public.

    The Search result is still visible.

    But the machine-readable relationship between them is mediated.

    That is a different kind of control.

    It is not access denial.

    It is access mediation.

    The Rise of Search-Data Infrastructure

    This is likely to be the lasting lesson.

    A sophisticated Search-data platform increasingly needs:

    • collectors;
    • browser environments;
    • network infrastructure;
    • parsers;
    • result classifiers;
    • redirect resolvers;
    • URL normalisers;
    • canonicalisation engines;
    • caches;
    • quality monitoring;
    • provenance systems;
    • anomaly detection.

    The old mental model was:

    scraper

    The newer model is:

    Search data infrastructure

    That is a significant shift.

    The Implications for SEO and AI Visibility Measurement

    Ranking Reports

    Ranking reports remain fundamentally possible.

    The important change is that the quality of the report depends increasingly on the quality of the collection architecture.

    A platform should therefore distinguish:

    ranking detected

    from:

    destination resolved

    and:

    canonical resolved

    Share of Search

    Domain-level visibility can survive even when URL-level resolution temporarily fails.

    But platforms should disclose the distinction.

    A report might say:

    Domain visibility:

    confirmed

    Exact landing-page visibility:

    partial

    rather than presenting both as equally certain.

    Landing-Page Attribution

    This is one of the areas most exposed to /goto.

    A ranking without a destination URL can tell an SEO team:

    You appeared.

    It cannot reliably tell them:

    This specific page appeared.

    That difference matters for:

    • content strategy;
    • internal linking;
    • cannibalisation;
    • conversion analysis;
    • page-level optimisation.

    AI Search Visibility

    The same principle applies to AI visibility.

    A brand-level mention is one measurement.

    A citation to a specific page is another.

    An enterprise may want to know:

    Which page was cited?

    For which prompt?

    In which AI system?

    In which context?

    Was the page canonical?

    Was the citation direct or indirect?

    That requires source identity.

    Citation Tracking

    Citation tracking is therefore moving towards a provenance problem.

    The system should know:

    Prompt

     ↓

    AI response

     ↓

    Citation

     ↓

    Source URL

     ↓

    Discovery path

     ↓

    Resolution path

     ↓

    Canonical URL

    /goto introduces one more node into that graph when Google Search is part of the discovery process.

    Competitive Intelligence

    Competitive intelligence platforms also need page-level identity.

    Knowing:

    Competitor X ranks

    is useful.

    Knowing:

    Competitor X’s /enterprise-seo/ page ranks

    is much more actionable.

    The difference between those two levels of information is exactly where destination resolution matters.

    Longitudinal Search Research

    Researchers tracking Search over months or years need to know whether the observation methodology changed.

    A dataset should therefore treat collection methodology as part of the dataset itself.

    For example:

    Observation

    =

    Search result

    +

    Environment

    +

    Collection method

    +

    Resolution method

    +

    Timestamp

    This is the only reliable way to interpret long-term changes when the Search interface itself evolves.

    The Strategic Question: Who Controls Search Observability?

    The deepest implication of /goto is not technical.

    It is architectural.

    Google Controls Ranking

    Google controls:

    • indexing;
    • ranking;
    • Search presentation;
    • many Search features;
    • Search result delivery.

    That has always been understood.

    Third Parties Traditionally Controlled Measurement

    SEO platforms historically built independent measurement systems around Google’s output.

    Their value came partly from converting Search observations into:

    • historical rankings;
    • competitive intelligence;
    • visibility metrics;
    • keyword databases;
    • market analysis.

    The /goto mechanism does not eliminate that capability.

    But it introduces another point at which Google’s Search implementation controls what the observer can see directly.

    Search Becomes Increasingly API-Like Without Being a Public API

    This produces an unusual situation.

    Google Search is a public interface.

    But it is not a public, stable, general-purpose SERP data API.

    Third-party systems therefore build observation layers around a continuously changing interface.

    When Google changes the interface, those systems must adapt.

    /goto is another example of that dynamic.

    The Search result can remain perfectly usable for its intended human experience while becoming substantially different for a machine attempting to treat it as structured data.

    Measurement Becomes Infrastructure

    That means SEO measurement increasingly resembles observability engineering.

    An observability platform does not merely collect data.

    It asks:

    Can I trust this observation?

    How was it collected?

    What changed?

    What failed?

    How complete is it?

    That is exactly the direction advanced Search measurement is moving towards.

    What /goto Means for the Future of Search Data

    It would be premature to conclude that Google’s /goto rollout represents the final architecture of Search.

    The implementation is still evolving.

    The public evidence already shows variation across:

    • browsers;
    • Search features;
    • result types;
    • API providers;
    • sessions.

    SerpApi’s August and September updates demonstrate that its engineering team has had to adapt repeatedly as different Search result types began exposing /goto links.

    That makes one conclusion particularly important:

    The right response is not to build a permanent parser for today’s token.

    It is to build a system capable of detecting tomorrow’s change.

    Don’t Hard-Code Google’s Current Representation

    A fragile implementation assumes:

    if href contains /goto:

        decode CAES

    A resilient implementation assumes:

    if destination is not directly available:

        invoke resolution strategy

    The second design survives changes in Google’s representation.

    Build for Behaviour, Not Format

    The permanent invariant is not:

    CAES…

    The more useful invariant is:

    Google result

    →

    intermediary

    →

    destination

    Even if Google changes:

    /goto?url=…

    to another mechanism, a behaviour-oriented collector can adapt.

    Treat Google as a Changing Data Source

    This does not require assuming malicious intent.

    It is simply good engineering.

    A data source can change:

    • schema;
    • transport;
    • response format;
    • pagination;
    • rate limits;
    • authentication;
    • result structure.

    Google Search is no different.

    The appropriate architecture therefore includes:

    • monitoring;
    • regression tests;
    • sample SERP fixtures;
    • format detection;
    • resolution tests;
    • alerting.

    Build Observability Into the Collector

    A collector should know when its own accuracy changes.

    For example:

    Yesterday:

    98.9% exact URL resolution

    Today:

    87.3%

    That should trigger an alert.

    Likewise:

    Organic results:

    99% resolved

    AI Overview:

    76% resolved

    That should trigger a result-type-specific investigation.

    The collector becomes an observable system in its own right.

    The /goto Investigation Checklist for Enterprise SEO Teams

    If an organisation depends on third-party Search data, the following questions should now be part of vendor evaluation.

    Question 1: Does the platform return the final destination URL?

    Not merely the Google intermediary.

    Question 2: Does the platform preserve the raw result link?

    This matters for auditability.

    Question 3: How does the provider resolve /goto?

    The exact implementation may be proprietary, but the methodology should be understood at a high level.

    Question 4: What happens when resolution fails?

    Does the platform:

    • drop the result;
    • mark it unresolved;
    • retry;
    • return the intermediary;
    • or report an error?

    Question 5: Does the provider distinguish URL confidence?

    This becomes increasingly valuable.

    Question 6: Does the provider support specialised Search features?

    The public evidence shows that /goto handling has affected more than conventional organic results. SerpApi has documented work involving AI Overview, questions and answers, recipes, video key moments, Lens, local results and other Search surfaces.

    Question 7: Does historical data preserve methodology?

    Without that, long-term comparisons become harder to trust.

    Question 8: Can the platform detect collection changes?

    A mature provider should have monitoring around its own data quality.

    Final Analysis: The SERP Has Become a Controlled Data Boundary

    The /goto story is easy to describe incorrectly.

    It is tempting to say:

    Google has blocked scraping.

    That is too broad.

    It is equally tempting to say:

    Nothing has changed because the links still work.

    That is also too simplistic.

    The technically meaningful change sits between those two statements.

    Google has changed how the relationship between a Search result and its destination is exposed to machines.

    The resulting architecture can be represented as:

                       OLD MODEL

    Google Search

         ↓

    SERP Result

         ↓

    Direct Destination URL

         ↓

    Publisher

    versus:

                       /GOTO MODEL

    Google Search

         ↓

    SERP Result

         ↓

    Google /goto intermediary

         ↓

    Opaque token

         ↓

    Google resolution

         ↓

    Destination URL

         ↓

    Publisher

    The publisher has not moved.

    The ranking has not inherently changed.

    The canonical URL has not inherently changed.

    The page itself has not disappeared.

    The observation boundary has moved.

    That is the important finding.

    The first consequence is technical.

    A parser must become a resolver.

    The second is economic.

    A Search result may require additional network work to become a complete structured record.

    The third is analytical.

    A ranking observation must preserve the relationship between position and destination through an additional layer.

    The fourth is methodological.

    Search datasets increasingly need provenance, confidence and collection-version metadata.

    The fifth is strategic.

    AI retrieval systems and visibility platforms that depend on Search as a source-discovery mechanism must treat URL resolution as part of their retrieval infrastructure.

    And the sixth is architectural.

    The modern SERP is no longer best understood as a static document containing all the information a downstream system needs.

    It is increasingly a dynamic interface whose observable data is produced through a combination of document structure, browser state, network behaviour, redirects and Search-specific infrastructure.

    That is why the CAES token is not actually the central mystery.

    The token is merely the visible artefact.

    The deeper change is this:

    Search result

          ↓

    was once sufficient

          ↓

    to identify destination

    Now:

    Search result

          ↓

    may require resolution

          ↓

    to identify destination

    That one additional arrow has consequences far beyond URL parsing.

    It changes the economics of rank tracking.

    It changes how SERP APIs must be engineered.

    It changes the provenance requirements of Search datasets.

    It changes how page-level competitive intelligence should validate its observations.

    It introduces another failure point into AI retrieval pipelines.

    And it makes the distinction between observing Search and accessing Search increasingly important.

    The future of Search measurement will therefore not be determined solely by whether engineers can find another way to decode Google’s latest token.

    A more durable question is whether the industry can build observation systems that remain reliable when the underlying Search interface is continuously changing.

    That means moving away from:

    “Scrape the HTML.”

    towards:

    “Observe the Search system.”

    The distinction is fundamental.

    A scraper expects a format.

    An observation system expects change.

    And Google’s /goto wall is a clear signal that advanced Search data infrastructure now needs to be designed for the latter.

    The final model

    The evolution can be reduced to one progression:

    Direct URL

         ↓

    Google intermediary

         ↓

    Opaque representation

         ↓

    Resolution event

         ↓

    Destination

         ↓

    Provenance

         ↓

    Measurement

    The important new component is not the opaque token.

    It is the resolution event.

    Once Google makes destination identity dependent on an additional interaction, that interaction becomes part of the data model, the cost model and the measurement model.

    That is why the /goto redirect wall matters.

    It does not make Google Search unreadable.

    It makes the path from Search result to machine-readable source identity more controlled, more operationally expensive and more dependent on infrastructure.

    And for an industry whose products increasingly depend on knowing exactly what Google showed, where it showed it, and which page received that visibility, that is a much bigger change than a new URL format.

    It is a change in the economics of Search observability.

    FAQ

    Google’s /goto system replaces some direct destination URLs in Search result links with Google-hosted redirect URLs containing encoded tokens such as CAES.... The browser follows the intermediary before reaching the publisher’s URL.

    Not through straightforward Base64URL decoding. Decoding exposes a binary, protobuf-like structure, but the destination is not presented as readable plaintext.

    No. Base64URL is only an encoding layer. The decoded payload contains structured binary data, meaning the token involves additional serialisation or protected data.

    No evidence indicates that /goto itself changes ranking positions. Its primary observable effect is on how destination URLs are represented and resolved in Search result links.

    It converts direct URL extraction into a resolution workflow. Scrapers must now obtain the intermediary URL and resolve it to identify the actual publisher destination, adding requests, latency and failure points.

    No. It makes some collection architectures more complex, particularly those relying on direct HTML URL extraction. Systems can adapt by adding redirect resolution and stronger provenance tracking.

    Potentially. If the final destination URL cannot be resolved reliably, systems may know that a domain ranked without confidently identifying the exact landing page, affecting keyword-to-URL attribution and page-level reporting.

    In practical collection workflows, HTTP resolution can provide the destination even when local token decoding cannot. The important distinction is between decoding the token and resolving the redirect.

    It can affect systems that depend on Search results to discover and attribute source URLs. AI visibility platforms may need to resolve intermediary links before matching citations to canonical publisher pages.

    The relationship between a Search result and its destination is no longer exposed purely as static HTML data. It becomes a resolution event, making Search data acquisition more dependent on HTTP behaviour, environment and collection infrastructure.

    Summary of the Page - RAG-Ready Highlights

    Below are concise, structured insights summarizing the key principles, entities, and technologies discussed on this page.

    A scraper can no longer assume that the anchor's visible href contains the publisher URL. It must preserve the Google intermediary and resolve it separately before reliable destination attribution.

    Base64URL decoding can reveal the token's binary structure, but it does not provide a simple plaintext URL that can be extracted with conventional decoding.

    Every additional resolution can introduce network requests, latency, proxy consumption, concurrency requirements, retries and failure handling, increasing the operational cost of SERP datasets.

    A robust pipeline should preserve the original Search result, Google intermediary URL, resolved URL and canonical URL independently rather than collapsing them into a single URL field.

    A ranking may still exist even when its destination cannot be resolved, so treating an unresolved URL as a ranking loss can produce incorrect keyword, landing-page and share-of-voice reporting.

    Knowing that a domain appears as an AI or Search source is insufficient for precise attribution because different pages can represent different entities, claims, products and search intents.

    Providers can centralise browser execution, HTTP resolution, caching and normalisation, while self-managed collectors need explicit resolver queues, retry policies and provenance fields.

    Browser, user-agent, location, session state, rendering behaviour and Google Search surface can influence what a collector observes, making environment metadata increasingly important for reproducible datasets.

    A measurement system should distinguish between directly observed URLs, successfully resolved URLs, canonicalised URLs and unresolved destinations rather than silently converting missing data into definitive SEO conclusions.

    Modern Search measurement increasingly requires collecting raw evidence, resolving intermediary states, tracking provenance, handling access barriers and maintaining reproducible collection environments rather than simply parsing HTML.

    Tuhin Banik - Author

    Tuhin Banik

    Thatware | Founder & CEO

    Tuhin is recognized across the globe for his vision to revolutionize digital transformation industry with the help of cutting-edge technology. He won bronze for India at the Stevie Awards USA as well as winning the India Business Awards, India Technology Award, Top 100 influential tech leaders from Analytics Insights, Clutch Global Front runner in digital marketing, founder of the fastest growing company in Asia by The CEO Magazine and is a TEDx speaker and BrightonSEO speaker.

    Leave a Reply

    Your email address will not be published. Required fields are marked *