Every Google SERP Change That Broke Search Data (2024–2026)
If you collect Google results for a living, the last two years have felt like driving a road where someone keeps moving the signs. A parameter you relied on for a decade stops working. A plain request that used to return results now returns an empty page with a 200 status. Then, in 2026, the links themselves stop pointing where they say they go.
None of these changes came with a migration guide. Most were spotted by rank-tracking companies before Google said anything, and a few Google has never commented on at all. That makes it hard to tell which change is behind the strange numbers in front of you.
This guide puts every significant change in one place, with dates and sources. For each one you get what changed, how to recognise it in the HTML or the URL, what it broke, and what it means for you. We compiled it from Google's own posts, court filings and the trade press, and checked every source on 12 November 2026.
Short answer: Since January 2025 Google has steadily raised the cost of collecting its results. It made JavaScript mandatory (January 2025), stopped honouring &num=100 (September 2025), began routing result links through opaque google.com/goto redirects (confirmed August 2026), and, according to rank-tracking firms, started serving swapped results to suspected bots (September 2026). Most of these fail silently, so check what you parse, not the status code.
The timeline at a glance
Here is every change in date order. "Status" is as of 12 November 2026. The sections below explain each one in plain language, then in technical detail.
| Date | What changed | What it broke | Status |
|---|---|---|---|
| 1 Feb 2024 | "Cached" links removed from results; the cache: operator stopped working around 24 Sep 2024 | Archived copies of pages used for change tracking | Permanent |
| 14 May 2024 | AI Overviews launch to everyone in the US; a text-only "Web" filter (udm=14) appears the same month | The assumption that position 1 is the first thing a searcher sees | Expanded to 200+ countries |
| 25 Jun 2024 | Continuous scroll removed on desktop, back to numbered pages | Collectors built around infinite scroll | Permanent |
| Nov 2024 | "About X results" count moved under Tools | Result-count metrics read from the page | Permanent |
| 15–17 Jan 2025 | JavaScript required to search; Google later named the system SearchGuard | Every plain-HTTP scraper (requests, curl, BeautifulSoup) | Permanent |
| 13 May 2025 – 27 Apr 2026 | Search Console logging error inflates impressions | Year-on-year impression comparisons | Fixed going forward; old data not corrected |
| 20 May 2025 | AI Mode launches to everyone in the US (udm=50) | Coverage of a whole new answer surface | 200+ countries, 1B+ monthly users |
| 11 Aug 2025 | Microsoft retires the Bing Search APIs | The main non-Google official search API | Retired |
| 10–14 Sep 2025 | &num=100 stops being honoured; about 10 results per page | Top-100 rank tracking in one request; Search Console impression baselines | Unreliable (one unconfirmed sighting, Oct 2026) |
| 19 Dec 2025 | Google sues SerpApi under the DMCA, naming SearchGuard | Legal certainty for the SERP data industry | Amended complaint dismissed 9 Nov 2026; Google has 21 days to refile |
| Jan 2026 | Custom Search JSON API closed to new customers; existing customers must move by 1 Jan 2027 | Google's only self-serve results API | Closing |
| 19 May 2026 | New AI-first search box; follow-ups from AI Overviews continue into AI Mode | Clean separation between "results" and "AI answer" | Rolling out |
| 23 Jun – 26 Aug 2026 | Result links routed through opaque google.com/goto?url= redirects; Google confirms 26 Aug | Reading destination URLs from the page | Live, with fluctuations |
| From 13 Sep 2026 | Blocking wave, more CAPTCHAs and, per rank-tracking firms, swapped ("poisoned") results | Trust in any single collected SERP | Ongoing, lower than its late-September peak |
| Late Oct 2026 | Limits on resolving many /goto links from one results page | Fast, complete URL resolution | Live |
Why Google keeps doing this
Google's public explanation is short and consistent. When it made JavaScript mandatory it told TechCrunch the change "allows us to better protect our services and users from bots and evolving forms of abuse and spam." When it confirmed the /goto links in August 2026, a spokesperson said: "We have a long history of deploying technical measures against evolving forms of abuse."
The wider context is AI. Search results are the raw material for AI answer engines and agents that need fresh facts, and Google's own AI Overviews and AI Mode compete with them. In its December 2025 post announcing the SerpApi lawsuit, Google said the scraping it was suing over "has increased dramatically over the past year."
Rank trackers and SEO platforms collect results in much the same way, so they get caught in the same net. Several of them have said so publicly. Keep that in mind as you read: very little of this was aimed at SEO tools, but SEO tools have felt nearly all of it.
2024: the quiet groundwork
Nothing in 2024 broke data collection outright. But five changes removed features that tools quietly depended on, and they set the direction for what followed.
Cached pages disappear (February and September 2024)
On 1 February 2024 Google's Search Liaison, Danny Sullivan, confirmed the "Cached" link was gone, calling it "one of our oldest features" that was meant for a time when "you often couldn't depend on a page loading" (9to5Google). The cache: search operator kept working for a while, then stopped completely around 24 September 2024, shortly after Google added links to the Internet Archive's Wayback Machine.
What it means: if you used Google's cache to see the version of a page Google had indexed, that view is gone. The Wayback Machine is now the usual substitute.
AI Overviews and the "Web" filter (May 2024)
Google rolled out AI Overviews to everyone in the US on 14 May 2024. The same month it launched a "Web" filter that shows only text links. Reporters quickly found it maps to the URL parameter udm=14, which Google has never formally documented. More on the AI layer below.
Continuous scroll ends (June 2024)
Google had added continuous scroll to mobile in October 2021 and to desktop in December 2022, showing "up to six pages of results" as you scrolled. It began removing it on desktop on 25 June 2024, with mobile to follow (MacRumors). Pagination was back.
The result count goes into hiding (November 2024)
The familiar "About 1,230,000 results" line moved under the Tools menu. Sullivan explained that "counts tend to be something researchers are more interested in," so moving them was a way "to keep them available but not be distracting" (Search Engine Roundtable). If you scraped that number as a competition metric, it is no longer on the default page, and it was always a rough estimate anyway.
January 2025: JavaScript becomes mandatory
In plain terms: Google stopped answering visitors that cannot run JavaScript. That one change ended the era of scraping Google with a simple HTTP request and an HTML parser.
When: SerpApi dates it to 15 January 2025, and TechCrunch reported it on 17 January. Google told TechCrunch that "fewer than .1%" of searches come from people with JavaScript turned off, so ordinary users barely noticed.
How to recognise it: you get an HTTP 200, not an error. The body is a shell page with a meta refresh to /httpservice/retry/enablejs, a "Please click here if you are not redirected within a few seconds" notice, and no result headings. We sent one plain request on 12 November 2026 and got exactly that: about 93 KB of HTML and zero <h3> result titles. Our earlier write-up, Google Search now requires JavaScript, shows the same result from July 2026.
$ curl -s -A "Mozilla/5.0" \
"https://www.google.com/search?q=running+shoes" -o page.html
$ grep -c "<h3" page.html
0
$ grep -o '<meta[^>]*refresh[^>]*>' page.html
<meta content="0;url=/httpservice/retry/enablejs?sei=…" http-equiv="refresh">
# Status 200, about 93 KB, zero result titles: the JavaScript wall (12 Nov 2026).
What it broke: every tutorial built on requests plus BeautifulSoup, and every lightweight collector that did not render pages. On 17 January 2025 Search Engine Roundtable collected reports from tool vendors. Similarweb said the change "temporarily disrupted rank tracking and SERP data solutions across the industry, including ours." SE Ranking said some SERP features were "still unavailable for tracking."
What it means for you: collecting Google results now needs a full browser environment, which is heavier, slower and more expensive per page than an HTTP request. The worst part is the silent failure. If you only alert on HTTP errors, an empty 200 page sails straight through, a trap we cover in why your SERP scraper breaks at 3 a.m.
SearchGuard: the name behind the wall
In plain terms: for almost a year, nobody outside Google had a name for the system behind the JavaScript requirement. Google supplied one in its December 2025 lawsuit: SearchGuard.
What Google says it is: the complaint filed on 19 December 2025 describes it in a few short paragraphs:
- "SearchGuard is the product of tens of thousands of person hours and millions of dollars of investment."
- It "works in part by sending a JavaScript 'challenge' to search queries Google receives from unrecognized sources," and automated systems "typically cannot solve" it.
- "When SearchGuard launched in January 2025, it effectively blocked SerpApi" (an allegation the defendant disputes).
- The complaint also calls CAPTCHAs "another aspect of SearchGuard."
What it means for you: the JavaScript wall, CAPTCHAs and later measures are best understood as layers of one system that Google keeps tuning. When one layer changes, collection quality can shift overnight without any visible change to the page a human sees.
CAPTCHAs and the /sorry page: the one loud failure
In plain terms: when Google decides traffic looks automated, it stops showing results and asks for a CAPTCHA instead. This is the oldest defence on the list and the only one that fails loudly.
How to recognise it: the request is redirected to a URL under https://www.google.com/sorry/index?continue=…, commonly with HTTP status 429 (Too Many Requests). The page says "Our systems have detected unusual traffic from your computer network." Google's help page for that message says it usually shows a reCAPTCHA and names search scrapers among the kinds of automated traffic that trigger it.
What changed recently: volume. In October 2026 Derek Perkins of the rank tracker Nozzle described "a significant increase in the use of captchas" as one of three tactics Google was using against tracking tools (Search Engine Roundtable).
What it means for you: a 429 is at least honest. You know you got nothing and can schedule a retry later. Our guide to Google's 429 "unusual traffic" error covers what that page means and the usual responses to it.
Consent pages in Europe: the silent detour
In plain terms: signed-out visitors from Europe can be shown a cookie-choice page before they see any results. A collector that does not handle it receives a page with buttons and no listings.
When: Google added an equal-weight "Reject all" button for signed-out users on Search and YouTube from 21 April 2022, starting in France and then across the EEA, the UK and Switzerland (Google). In March 2024 its Digital Markets Act changes added more than 20 Search changes in the EEA and new consent prompts for linking services.
How to recognise it: the final URL is on consent.google.com, or the page holds a form that posts back there. Google's cookie policy says it stores your choice in a cookie called SOCS, which "lasts for 13 months."
What it means for you: if you collect results for European markets, an empty result set may be a consent page, not an empty SERP. Results for EEA searches also differ in layout because of the DMA changes, so do not reuse US parsing assumptions for Europe.
September 2025: &num=100 stops working
In plain terms: for years, adding &num=100 to a Google search URL returned 100 results on one page. Rank trackers used it to check positions 1 to 100 in a single request. Google switched it off, so seeing the top 100 now takes about ten page loads instead of one.
When: Search Console impressions started falling on 10 September 2025, according to Brodie Clark's timeline. On 12 September Search Engine Roundtable reported the parameter working "about half the time." By 14 September it had stopped working for nearly everyone. A Google spokesperson's only comment was: "The use of this URL parameter is not something that we formally support."
How to recognise it: you ask for 100 results and get about 10. The start parameter (start=10, start=20 and so on) still pages through results.
What it broke: two things, one obvious and one surprising.
- Rank-tracking costs. Ten requests per keyword instead of one. Vendors responded in different ways (Search Engine Roundtable, 15 Sep 2025). AccuRanker said "we will no longer track the Top 100 search results." Ahrefs' Tim Soulo asked users whether they needed ranking data below the top 20, "because it's likely going away." Semrush said "accurate Top 10 results are unaffected."
- Search Console impressions. When a bot loaded 100 results, every URL on that page logged an impression, including yours at position 80. With those page loads gone, impressions fell and average position "improved" overnight. Tyler Gargula's study of roughly 320 Search Console properties found 87.7% saw impressions drop and 77.6% lost unique ranking keywords (Search Engine Roundtable). Clicks did not move.
There is a second distortion to know about. Google later said a separate logging error "prevented Search Console from accurately reporting impressions from May 13, 2025 until April 27, 2026," and the fix applies only going forward (Search Engine Roundtable, 4 May 2026). So impression data from mid-2025 to April 2026 carries two overlapping problems. Clicks were affected by neither.
Current status: on 30 October 2026 Brodie Clark saw the parameter working "in some capacity" after clicking through from a knowledge panel, but Barry Schwartz could not reproduce it (Search Engine Roundtable). Treat it as gone.
What it means for you: decide how deep you really need to track. For most commercial keywords, the top 20 or 30 is where traffic lives. If your reports still compare impressions across September 2025, annotate the break. Our deep dives on the &num=100 removal and on why rank trackers and Search Console disagree go further.
AI Overviews and AI Mode: the answer moved above the results
In plain terms: Google now writes its own answer at the top of many results pages (AI Overviews) and offers a separate chat-style search (AI Mode). A "position 1" organic result can sit below a long AI answer, and AI Mode can answer a query without a classic results list at all.
The milestones
- 10 May 2023: Search Generative Experience opens as an opt-in Labs test in the US (Google).
- 14 May 2024: AI Overviews roll out to everyone in the US.
- 28 Oct 2024: more than 100 countries and over 1 billion monthly users (Google).
- 5 Mar 2025: AI Mode launches in Labs (Google).
- 20 May 2025: AI Overviews reach more than 200 countries and territories and 40+ languages (Google); AI Mode rolls out to everyone in the US (TechCrunch).
- July 2025: Alphabet reports AI Overviews at more than 2 billion monthly users (Q2 2025 earnings).
- 7 Oct 2025: AI Mode expands to more than 200 countries and territories (Google).
- 19 May 2026: at I/O, Google says AI Mode "has surpassed one billion monthly users," introduces a new AI-powered search box, and lets you ask a follow-up from an AI Overview and continue into AI Mode, worldwide (Google).
How to recognise them
AI Overviews appear inside the normal results page, above or among the organic listings, with linked sources. AI Mode is a separate surface. Clicking it produces a search URL carrying udm=50, a mapping documented by network-security vendors and SERP data providers rather than by Google. Several data providers also document that some AI Overviews finish loading after the rest of the page, so a capture taken too early can miss one that a person would see.
One reassurance from Google at I/O 2026: on the normal results page, "You'll continue to get a range of results… just like you do today." The classic page is not gone. It is just no longer the only page.
What it broke, and what it means for you
AI Overviews did not break collection the way the JavaScript wall did. They broke the meaning of rank. If you report positions without recording whether an AI Overview appeared, and which sources it cited, you are reporting half the page.
Search Console will not separate it for you either. Google's documentation says AI features, including AI Mode, are counted within the overall "Web" search type. Google added a generative-AI performance report (impressions only) on 3 June 2026 and extended it to all sites on 31 August 2026.
For the measurement side, see extracting AI Overviews at scale and our study of how AI Overviews and AI Mode cite different sources.
The official APIs close
In plain terms: while scraping got harder, the official doors also closed. That pushed more teams toward collecting results, which helps explain why Google's defences escalated.
- Bing Search APIs: Microsoft retired them on 11 August 2025 and pointed customers to "Grounding with Bing Search" inside its Azure AI agent service (Microsoft).
- Google Custom Search JSON API: Google's overview page now says it "is closed to new customers," and existing customers "have until January 1, 2027" to move. Its suggested replacement, Vertex AI Search, covers searching up to 50 domains, not the whole web.
- A partner-only door: on 11 September 2026 Search Engine Journal reported that Google had documented a "Web Search Service API" that performs a "full web search," available only to "programmatic partners" with an agreement. There is no public sign-up or price list.
If you still run on Custom Search, start planning now. Our Custom Search shutdown migration guide compares the options.
December 2025 onward: the SerpApi lawsuit
In plain terms: Google sued a company that sells Google results through an API, arguing that getting past SearchGuard breaks US copyright law. So far, the court has not agreed.
- 19 Dec 2025: Google files suit in the Northern District of California (Case No. 4:25-cv-10826) under the DMCA's anti-circumvention rule, 17 U.S.C. § 1201.
- 20 Jul 2026: Chief Judge Yvonne Gonzalez Rogers dismisses the claim as it applies to plain search results, without leave to amend, because those results are not "works protected under the Copyright Act" (Search Engine Roundtable). Google may refile on copyrighted components.
- 10 Aug 2026: Google files an amended complaint focused on licensed material such as Knowledge Panel images.
- 9 Nov 2026: the court dismisses the amended complaint in full, with leave to amend "only for the purpose of curing the deficiencies." If Google does not refile within 21 days, the case will be dismissed with prejudice (PPC Land, 11 Nov 2026).
What it means for you: the court has twice found Google's DMCA theory insufficient, and the core holding about ordinary results is not coming back in this case. But a court case is not Google's only tool. The technical measures in the next two sections arrived while the case was running. This is not legal advice; our neutral explainer on the lawsuit has more context.
2026: /goto links replace direct URLs
In plain terms: Google started wrapping result links in its own redirect. The title and snippet still say "example.com," but the link points to a Google address with a scrambled code. Only by following the link do you learn where it really goes.
When
- 23 Jun 2026: Alex Greenland reports result links "now being rewritten to google•com/goto?url=".
- 2–8 Jul 2026: Brodie Clark documents the pattern across organic and paid listings; Search Engine Roundtable reports Google is testing
google.com/gotoas a passthrough URL. Nozzle says it had been seeing it for months. - 26 Aug 2026: Google confirms the rollout to Search Engine Roundtable. Nozzle reports "nearly a 100% rollout" across the networks it tests from.
- Late October 2026: limits appear on resolving many
/gotolinks from the same results page (details below).
How to recognise it
Before the change, the href on an organic result was usually the destination itself. After it, the result looks like this:
<!-- Before (simplified) -->
<a href="https://www.example.com/running-shoes/"><h3>Best Running Shoes</h3></a>
<!-- After (simplified) -->
<a href="https://www.google.com/goto?url=CAES…"><h3>Best Running Shoes</h3></a>
The url value is not an encoded copy of the destination. ScrapingBee's 7 September 2026 analysis found the token Base64URL-decodes into a protobuf-like envelope whose payload appears encrypted, so "you cannot practically decode it back into the destination URL locally." Following the link with a normal GET returns a 302 whose Location header holds the destination. A HEAD request returned 200 with no Location header in its tests.
It is not limited to blue links. An SEO agency, Growtika, checked 493 links across eight US searches, covering organic results, videos, AI Overview sources, People Also Ask and ads, and found every one hid its destination.
What it broke
- Any field that stores a URL. Rank tracking matches your domain against result URLs. Citation tracking, link analysis and AI pipelines that fetch the cited pages all need the real destination. SerpApi noted the change "did not affect visible result titles, snippets, rankings, or other parsed data," only the link (SerpApi).
- Request volume. Every link now needs its own extra request to resolve. Nozzle's Derek Perkins estimated 500 to 1,000 requests to resolve a single five-page ranking (PPC Land).
- Speed, since late October. DataForSEO reported on 2 November 2026 that Google now caps how many
/gotolinks from one results page resolve quickly. In its example, the first five or six resolved instantly, then delays grew to about 40 seconds by the fifteenth link and up to 120 seconds for some. It said the limit applies per page, not per IP address, and waiting an hour does not reset it. - Hover-checking for ordinary users. Malwarebytes pointed out that hovering over a result no longer shows where it leads, which weakens a basic safety habit.
Brave's search team summed up the industry mood on 11 November 2026: "Scraping Google has become harder after the GOTO release, especially if results need to be fetched in real-time" (Brave).
What did not break: site owners' own analytics, as far as one test shows. In Growtika's test the visitor still arrived with a google.com referrer and Google Analytics still recorded "google / organic." Search Console reporting is unchanged.
What it means for you: check your stored URLs. If any contain google.com/goto, your domain matching and any downstream page fetches are quietly failing. And if your provider returns titles and positions but cannot give you destinations, your rank tracking is only as good as your title matching.
September 2026: blocking waves and swapped results
In plain terms: starting in mid-September 2026, rank-tracking firms reported that Google was not just blocking suspected bots but sometimes feeding them different results. The page looks complete and normal. The sites that usually rank are simply not there.
When
- From about 13 Sep 2026: Search Engine Roundtable reported Google had become "more successful in blocking scrapers and tracking tools". Nozzle saw about an 80% drop in the data it could collect, and Sistrix reported collecting "at a reduced rate."
- 12 Oct 2026: Search Engine Roundtable published Nozzle's finding that "Since September 2026, Google has been poisoning the SERPs it serves rank trackers" (report). Perkins described three tactics: "super wide IP blocking, which targets major residential proxy networks," more CAPTCHAs, and "injecting bad data into suspect SERPs."
The numbers
Nozzle's study, summarised by PPC Land on 19 October 2026, covered 27.5 million SERPs from 49 countries collected between 13 September and 9 October:
- 8.0% of pages came back "poisoned" after 13 September, against 0.17% before.
- The rate peaked at about 25–27% on 27–29 September, then ran at roughly 5–11% a day in October.
- On a poisoned page only 20.7% of the keyword's usual sites remained, against 88.5% normally.
- The swaps favoured forums and social platforms. Reddit's top-10 share rose from 20.8% to 28.8%.
- Most spells were short: 80% lasted one collection, and the usual sites returned within three days on 77.9% of affected pages.
Other vendors measured different rates, which is itself a clue that the treatment depends on how each collector's traffic looks. Ahrefs said it saw "between 5% and 20% of search results affected." SE Ranking said the issue "still affects roughly 2% of tracked results." Semrush said the impact on its users' rankings "has been limited." Google has not commented on any of it.
How to recognise it
You cannot spot a swapped page by looking at it. As Nozzle put it: "Nothing on the page gives it away. Each keyword's own history does." The working test, used in different forms by Nozzle and AccuRanker, is to compare today's top 10 with the sites that usually rank for that keyword. If most of them vanish at once, and especially if they come back the next day, distrust the page rather than reporting a ranking crash.
What it means for you: one collection is no longer proof of anything. Before you tell a client their site dropped out of the top 10, confirm it on a second collection. Our explainer on why Google results differ every time covers the normal sources of variation you should rule out first.
The pattern: failures got quieter
Line the changes up and a pattern jumps out. In 2024 Google removed features, which you notice immediately. From 2025 it started hiding data instead, and hidden data does not raise errors.
| What you see | What it usually means | Loud or silent |
|---|---|---|
HTTP 429 and a redirect to /sorry/index | A CAPTCHA block | Loud: an error status |
A page that points to /httpservice/retry/enablejs | The JavaScript requirement | Silent: HTTP 200 |
A consent.google.com page | The EU consent interstitial | Silent: HTTP 200 |
| About 10 results when you asked for 100 | num=100 is ignored | Silent: HTTP 200 |
google.com/goto result links | Opaque result links | Silent: HTTP 200 |
| A full page missing the usual sites | Swapped results | Silent: HTTP 200 |
That table is the most useful thing in this guide, because it tells you what to assert on. An HTTP status tells you almost nothing about Google any more. What you parsed tells you everything.
Here is the same logic as code. The first function labels a fetched page by the change most likely affecting it. The other two run the history check for swapped results. We ran it on 12 November 2026 with Python 3.14 against labelled sample inputs, plus the real JavaScript-wall page from the curl test above, which it labels correctly. It makes no network requests, so plug it in wherever your pages arrive (Python 3.9 or later).
import re
from collections import Counter
from urllib.parse import urlparse
def classify_google_page(status: int, final_url: str, html: str) -> str:
"""Label a fetched Google results page by the change most likely affecting it."""
url = final_url.lower()
body = html.lower()
if status == 429 or "/sorry/" in url:
return "blocked: unusual-traffic / CAPTCHA page"
if "consent.google." in url or 'action="https://consent.google.' in body:
return "consent interstitial (no results)"
if "enablejs" in url or "enablejs" in body or (
"http-equiv=\"refresh\"" in body and "<h3" not in body
):
return "JavaScript wall (no results)"
hrefs = re.findall(r'<a[^>]+href="([^"]+)"', html)
results = [h for h in hrefs if h.startswith(("http", "/goto", "/url"))]
if not results:
return "empty: zero result links"
opaque = [h for h in results if "/goto?" in h]
if len(opaque) / len(results) > 0.5:
return f"opaque /goto links ({len(opaque)} of {len(results)})"
return f"ok ({len(results)} links)"
def usual_domains(history: list[list[str]], min_share: float = 0.6) -> set[str]:
"""Domains that held a top-10 spot on at least `min_share` of past collections."""
counts = Counter(d for page in history for d in set(page))
return {d for d, n in counts.items() if n / len(history) >= min_share}
def looks_swapped(today: list[str], history: list[list[str]]) -> bool:
"""True when under half of the usual top-10 domains are present."""
usual = usual_domains(history)
if not usual:
return False
kept = len(usual & set(today)) / len(usual)
return kept < 0.5
def domain(url: str) -> str:
return urlparse(url).netloc.removeprefix("www.")
Run against five sample pages and two sample top-10 lists, it prints:
blocked: unusual-traffic / CAPTCHA page
consent interstitial (no results)
JavaScript wall (no results)
opaque /goto links (2 of 2)
ok (1 links)
False # 4 of 5 usual domains still present
True # usual domains replaced by reddit.com, facebook.com, quora.com ...
The 60% "usual site" share and the 50% threshold mirror the definition in Nozzle's published study. Tune both to your own data. The point is to make every silent failure loud before it reaches a report. Keep the raw page alongside each parsed result so you can check a suspicious one later.
What this means for you
The right response depends on what you do with the data. Here is the short version for the four groups this hits hardest.
If you run rank tracking or SEO reporting
- Pick a depth on purpose. Top 100 costs about ten times what top 10 does now. Most decisions need the top 20 or 30.
- Record the whole page, not just your position. Note whether an AI Overview appeared and whether you were cited in it.
- Confirm drops before you report them. A sudden exit from the top 10 should survive a second collection before it reaches a client.
- Annotate your history. Mark 10–14 September 2025 (the
num=100break) and 27 April 2026 (the Search Console logging fix) on every impression chart.
If you build AI agents or RAG pipelines
- Destination URLs are the field most at risk. If your agent fetches cited pages, a
google.com/gotoURL in your data means the fetch hits Google, not the source. - Freshness costs more. Fetching results in real time is exactly the case that Brave and DataForSEO called out as harder after the
/gotochange. Cache answers where your use case allows it. - Validate before you ground. A swapped page full of forum threads can mislead a model as easily as it misleads a rank tracker.
If you do research or market analysis
- Log your collection conditions: date, country, language and device, so later readers can judge your sample.
- Expect gaps around known dates (January 2025, September 2025, September 2026) and say so in your methods.
- Do not trust result counts. They are hidden by default and were always estimates.
If you mainly read Search Console
- Trust clicks over impressions for anything spanning May 2025 to April 2026.
- AI Mode and AI Overviews traffic is inside the "Web" numbers. Use the generative-AI report for impressions in those features.
- Expect your tracker and Search Console to disagree more than they used to. They measure different things, and the gap widened with every change above.
Where Serpent fits
If you would rather not maintain any of this yourself, that is what a SERP API is for. Serpent's Google SERP API returns Google results as structured JSON from one HTTPS call: organic results, Featured Snippets, People Also Ask, ads, related searches and optional AI Overviews with their sources. You choose from 112 country codes, and there is no browser, proxies or HTML parser for you to maintain.
Rank-tracking teams can build on the rank tracking API, and you can try any query in the playground before writing code. Pricing starts from $0.03 per 1,000 Web units, with no subscription; the documentation lists every field and parameter.
import requests
resp = requests.get(
"https://apiserpent.com/api/search",
headers={"X-API-Key": "sk_live_your_key"},
params={"q": "best running shoes", "engine": "google", "country": "us"},
)
for r in resp.json()["results"]["organic"]:
print(r["position"], r["title"], r["url"])
Google results as JSON, without the upkeep
One API call returns organic results, Featured Snippets, People Also Ask and optional AI Overviews in clean JSON. New accounts include free calls, then pay-as-you-go pricing with no subscription.
Get Your Free API KeyExplore: Google SERP API · Rank Tracking API · Pricing
FAQ
What are Google's /goto links?
Since mid-2026, Google has routed many search result links through a redirect of the form https://www.google.com/goto?url=CAES… instead of linking straight to the destination. The value is an opaque token, so the destination is not readable in the page. Google confirmed the rollout on 26 August 2026 as one of its technical measures against abuse.
Does &num=100 still work on Google?
Not reliably. Google stopped honouring it around 10 to 14 September 2025 and told reporters the parameter is not something it formally supports. On 30 October 2026 one SEO reported seeing it work in a narrow case, but others could not reproduce it, so plan on about 10 organic results per page.
Why did my Search Console impressions drop in September 2025?
Mostly because rank trackers stopped loading 100 results at a time, so deep listings stopped collecting automated impressions. Separately, Google says a logging error inflated impressions from 13 May 2025 to 27 April 2026 and that historical data will not be corrected. Clicks were not affected by either.
What is a poisoned or swapped SERP?
It is a complete, normal-looking Google results page in which most of the sites that usually rank for the keyword have been replaced, often by forums and social platforms. There is no error or CAPTCHA. Rank-tracking firms began reporting it after 13 September 2026; Google has not commented.
Is SearchGuard the same as a CAPTCHA?
No. SearchGuard is the name Google used in its December 2025 lawsuit against SerpApi for its anti-bot system, which it says launched in January 2025 and works partly by sending a JavaScript challenge to unrecognised traffic. The complaint describes CAPTCHAs as another aspect of SearchGuard.
Can I still get Google results without running my own scraper?
Yes. Google's Custom Search JSON API is closed to new customers and ends for existing ones on 1 January 2027, so many teams now use a commercial SERP API. You send one HTTPS request and receive structured JSON, with no browser, proxies or HTML parser of your own to maintain.


