If your Google Search collector suddenly returns links such as google.com/goto?url=... instead of the destination page, your parser is probably not broken. Google has been testing and rolling out an intermediate redirect format that changes how search-result URLs appear in the page source.
For a person, the experience is almost identical: click a result and the browser reaches the website. For a SERP data pipeline, the workflow is different. The destination may no longer be readable in the href attribute, so a collector must recognise the wrapper and resolve it before storing the final URL.
This guide explains what Google /goto links are, how they differ from older /url and advertising /aclk wrappers, why they matter for search-data collection, and how to design a resilient workflow without assuming that one HTML pattern will last forever.
Important: Google’s exact rollout logic is not fully documented publicly. The behaviour described here is based on current industry observations and may vary by browser, account, location, device, and request context.
What is a Google /goto redirect link?
A normal organic result used to expose a destination URL directly in the result anchor. A newer result may instead contain a Google-owned wrapper similar to:
https://www.google.com/goto?url=CAES...
The value after url= can look like an opaque token rather than a URL-encoded destination. When a browser opens the link, Google responds with a redirect and the browser continues to the final page.
That creates a two-step path:
SERP HTML → google.com/goto wrapper → destination URL
The wrapper is not the page that the searcher intended to visit. It is an intermediate hop used by Google’s delivery layer. A scraper that stores the first href value without resolving it can therefore save a Google URL instead of the actual result URL.
/goto, /url, and /aclk: what is the difference?
Google has used several redirect-style link formats over time. They should not be treated as interchangeable strings.
| Link pattern | Typical context | What a collector should do |
|---|---|---|
google.com/goto?url=... |
Newer observed organic-result wrapper | Detect it and resolve the redirect to obtain the final URL |
google.com/url?...&url=... |
Older redirect format and some browser variations | Parse the readable parameter when present, then validate the destination |
google.com/aclk?... |
Paid advertising click-tracking wrapper | Treat as an ad click path; do not classify it as an organic result |
| Direct external URL | Organic result in some contexts | Store the URL, then normalise and validate it |
The same query can produce different formats across sessions. That is why a production parser should classify links by hostname and path, not rely on one fixed selector or one browser snapshot.
Why does this matter for SERP scraping?
1. The raw href is no longer enough
Many SERP collectors begin with a simple rule: select result anchors and read href. That still finds the anchor, but the value may now be a Google wrapper. The collector can appear to work while silently returning unusable URLs.
2. Resolving every result adds requests
If the destination is not encoded in readable form, the collector needs an additional request to Google’s redirect endpoint. The extra hop increases latency and request volume, especially when a ranking report contains several result pages.
Industry reports have also observed that HEAD requests may not be sufficient for some /goto links, making a controlled GET request necessary to observe the redirect. This behaviour should be measured in your own environment rather than assumed to be universal.
3. URL quality affects downstream analysis
Storing the wrapper instead of the final URL can corrupt:
- rank tracking and share-of-search reports;
- domain and landing-page grouping;
- canonical URL comparisons;
- deduplication across locations or devices;
- page-level traffic and content analysis;
- alerts that depend on a destination changing.
The result is often a data-quality issue, not an obvious scraper error. HTTP requests may succeed while the extracted URL is still wrong.
A resilient workflow for handling /goto links
Step 1: Preserve the observed link
Store the exact href that appeared in the SERP as observed_url. Do not overwrite it when you resolve the redirect. Keeping both values makes debugging and audits possible.
Step 2: Classify the link
Check the parsed hostname and path. Separate direct external URLs from Google wrappers and paid click URLs. Also preserve the result type, rank, title, displayed domain, device, location, and query that produced the record.
Step 3: Resolve only when needed
Do not follow every link blindly. Resolve a link when it belongs to a known Google redirect path and when your workflow needs the final destination. Set a timeout, limit redirect hops, and record the HTTP status and final Location value.
Step 4: Validate the destination
After resolution, confirm that the destination is an HTTP or HTTPS URL, has a valid hostname, and is not another unexpected tracking or redirect endpoint. Normalise obvious variants such as fragments and default ports, but keep the original value for traceability.
Step 5: Cache and deduplicate
The same destination can appear in many queries, locations, or device profiles. Cache successful resolutions for a short, policy-defined period and deduplicate by a normalised destination URL. This reduces repeat requests without treating a cached value as permanent truth.
Step 6: Monitor format changes
Add a metric for the percentage of result links that are direct URLs, /goto, /url, /aclk, or unknown. A sudden change is an early warning that the parser or resolution layer needs review.
Common implementation mistakes
Assuming the token is ordinary Base64
An opaque CAES... value should not be treated as a standard Base64 representation of the target URL. If the destination is not readable, the dependable approach is to resolve the redirect rather than rely on a private decoding guess.
Using only a HEAD request
HEAD is attractive because it is lightweight, but a server can handle it differently from GET. Test both methods, follow your project’s request policy, and use the smallest reliable request pattern.
Replacing the original href
If you keep only the final URL, you lose evidence of what Google returned. Store observed_url, resolved_url, resolution_status, and resolved_at as separate fields.
Treating every Google URL as an organic result
/aclk generally indicates an advertising click path. Mixing paid and organic links can make ranking reports inaccurate even if every URL resolves correctly.
Hard-coding one CSS selector
Search-result markup changes frequently. Use layered extraction: identify result containers, collect visible metadata, inspect candidate anchors, classify the URL, and validate the final record.
How a scraping API can simplify the workflow
A managed scraping API can take care of the browser session, request orchestration, redirect handling, retries, and structured output so your team does not have to maintain every SERP change inside an internal script. The important question is not whether a provider claims to “support Google,” but what the response contract contains.
Before choosing a provider, confirm whether it returns:
- the final destination URL, not only the observed Google wrapper;
- the observed URL for traceability;
- organic and paid results as separate types;
- rank, title, snippet, displayed domain, and result features;
- location, language, device, and timestamp metadata;
- explicit errors when a destination cannot be resolved;
- documentation for rate limits, retries, and data retention.
If you use Clawoxy or another collection API for this workflow, validate the provider’s current Google-specific output fields and redirect behaviour before publishing a product claim. A no-code interface can make the collection step easier, but it does not eliminate the need to verify URL provenance and result type.
FAQ
Is Google /goto a broken link?
No. It is an intermediate Google link. A browser can follow it to the destination, but a collector that reads only the raw href may store the wrapper instead of the final page.
Can I decode a /goto URL locally?
Do not assume so. Current observations describe the token as opaque rather than a simple encoded destination. Resolve the redirect through a controlled request and keep the original wrapper for debugging.
Does /goto change the ranking itself?
The observed change concerns how result links are delivered in the SERP. It does not, by itself, prove that rankings or Search Console performance data changed. Keep link-resolution logic separate from rank interpretation.
Will every Google result use /goto?
Not necessarily. Results can vary by client, session, geography, device, and rollout stage. A robust pipeline should support direct URLs and multiple redirect formats.
Final takeaway
Google /goto redirect links turn a previously simple extraction step into a small URL-resolution workflow. The reliable pattern is to preserve the observed link, classify the wrapper, resolve only when necessary, validate the final destination, and monitor format changes over time.
That approach keeps the impact contained to one layer of your SERP pipeline instead of forcing every downstream report to understand Google’s changing link format.


