Published
Google Search Requires JavaScript: What It Broke for Scrapers
For most of Google's history, you could fetch a results page with a single HTTP request and parse the HTML. That stopped working in January 2025, when Google began requiring JavaScript to show search results.
Rank tracker Nozzle dated the change to January 15, 2025, and TechCrunch reported it two days later. It was the first of several Google changes that made search data harder to collect. Our timeline of SERP changes lists the rest.
Why Google made the change
A Google spokesperson told TechCrunch that "enabling JavaScript allows us to better protect our services and users from bots and evolving forms of abuse and spam." The spokesperson also said JavaScript helps Google provide the most relevant and current information.
Google said fewer than 0.1% of searches came from people who had JavaScript turned off, so the change cost real users very little. According to Google's later lawsuit against SerpApi, Google also deployed an anti-bot system called SearchGuard that month. For automated traffic it was a large barrier, because running JavaScript takes far more work than downloading HTML.
What broke
Any scraper that fetched google.com/search with a plain HTTP client, such as curl, Python requests, or Go's net/http, stopped receiving results. Instead of a results page, it got a page asking the visitor to turn on JavaScript.
TechCrunch noted that rank tracking tools began having problems with Google Search around the same time. Many trackers responded the way Nozzle did and moved to headless browsers that run the page's JavaScript before reading the results.
AI Overviews load separately
AI Overviews add another step. Nozzle observed that when Google shows the AI Overview loading animation, the page makes a separate JavaScript request to an /async/folsrch endpoint to generate it. Popular queries are often served from a cache, but for others a scraper that reads the page too early sees no AI Overview at all.
A tracker that doesn't wait for that request can miss a large share of AI Overviews and their citations. If you report on AI Overview citations, check that your data source waits for the full answer.
What it costs to handle
Running a browser for every query changes the economics of scraping Google:
- Compute. A headless browser uses far more CPU and memory than an HTTP request, so the same server runs far fewer browsers at once.
- Speed. Loading and running the page takes longer, and waiting for async parts such as AI Overviews takes longer still.
- Detection. Headless browsers have their own fingerprints. Google can also look at how the browser behaves, which is part of how anti-bot detection works.
- Maintenance. Browser versions, fingerprints, and page timing all need ongoing work.
Our comparison of Requests, Scrapy, and Playwright covers when each tool makes sense, and the build vs buy cost guide estimates what running this yourself costs.
What this means if you use a SERP API
With a SERP API, the provider runs whatever it takes to load the page and returns parsed JSON. You don't need a browser on your side. The JavaScript requirement shows up only indirectly, in the provider's price and response time.
Two things are still worth checking with any provider:
- Does it wait for AI Overviews? Compare a few queries where you know an AI Overview appears.
- Does it return the rendered page? With PrismCrawl, set
html: trueto get the HTML alongside the JSON, so you can confirm what the parser saw.
Frequently asked questions
When did Google start requiring JavaScript for search?
In January 2025. Rank tracker Nozzle dated the change to January 15, 2025, and TechCrunch reported it on January 17, 2025.
Why does Google Search require JavaScript?
A Google spokesperson said enabling JavaScript lets Google better protect its services and users from bots and evolving forms of abuse and spam. Google said fewer than 0.1% of searches came from people with JavaScript turned off.
Can you still scrape Google with Python requests?
Not reliably. Since January 2025, a plain HTTP request to Google Search returns a page asking you to enable JavaScript rather than results. Most scrapers now use a headless browser or a SERP API.
Why does my scraper miss Google AI Overviews?
AI Overviews often load through a separate JavaScript request after the main page. A scraper that reads the page before that request finishes sees no AI Overview. It needs to wait for the answer to load.