What Changed
Starting January 15th, 2025 Google began forcing anyone or anything trying to access a Google search results page to turn on JavaScript.
Here is a comparison showing a Google search results page for desktop Chrome users with (left) and without (right) javascript rendering enabled:

Nozzle was the first rank tracker to publicly discuss the issue, in the SEO Community Slack, triggering a broader conversation, leading to the initial coverage on Search Engine Roundtable by Barry Schwartz.
Why This Happened
From what we’re seeing friends discuss and what we believe to be true as well, Google’s new JavaScript requirement isn’t primarily targeting SEO tools like ours – it’s aimed at stopping mass data collection by LLM training operations. Companies trying to train competing AI models have been scraping Google at scale, and this activity is likely what has prompted this “defensive” move by Google.
Vercel published an analysis in December, showing that “none of the major AI crawlers currently render JavaScript, this includes: OpenAI, Anthropic, Meta, ByteDance, Perplexity… [However,] Google’s Gemini leverages Googlebot’s infrastructure, enabling full JavaScript rendering.”
This isn’t a panacea to stop data collection, but even once they add the capability to render pages, it will still require potentially 10x the infrastructure cost. Google has had decades to hone their crawler, which it hopes to continue to provide a competitive advantage as we move into an AI-first world.
While AI crawlers haven’t reached Googlebot’s scale, they represent a significant portion of web crawler traffic. For context, GPTBot, Claude, AppleBot, and PerplexityBot combined account for nearly 1.3 billion fetches—a little over 28% of Googlebot’s volume.

We may see more changes similar to this one in the future by Google, as this may be part of a larger competitive strategy by Google to protect its data from being used to train rival AI systems. The timing is particularly interesting given recent rise of RAG-based tools that rely heavily on search engine data to function.
To restate, Google’s core concern seems to be maintaining its competitive advantage in the AI space rather than blocking SEO tool companies. As always, we’ll continue working on solutions to ensure our customers continue getting the rank tracking data they need while respecting Google’s new technical requirements.
How SERP Collection Works
< 2010 – Simple cURL Requests
Historically, it was simple enough to make an HTTP GET request to fetch a SERP, and thus required minimal sophistication to get good data.
curl 'https://www.google.com/search?q=rank+tracker&gl=us&hl=en'
There are two main query parameters that dictate the search location and language: gl
(country code) and hl
(language code)
2013 – UULE Localization Parameter
As localized search became more important, the uule query parameter was reverse engineered, and currently Google allows for two different styles to be used. Even today, this is how the majority of rank trackers handle localization.
uule=w+CAIQICIbTmV3IFlvcmssIE5ZLCBVbml0ZWQgU3RhdGVz
uule=a+cm9sZToxCnByb2R1Y2VyOjEyCnByb3ZlbmFuY2U6Ngp0aW1lc3RhbXA6MTU5MTUyMTI0OTAzNDAwMApsYXRsbmd7CmxhdGl0dWRlX2U3OjM3NDIxMDAwMApsb25naXR1ZGVfZTc6LTEyMjA4NDAwMDAKfQpyYWRpdXM6OTMwMDA%3D
2017 – Country TLDs discontinued
Today, around one in five searches on Google is related to location, so providing locally relevant search results is an essential part of serving you the most accurate information.
https://blog.google/products/search/making-search-results-more-local-and-relevant/
Google stopped allowing the usage of a ccTLD to override the user location. Users can still change those in their search settings, but it is buried 4 clicks deep now. These changes continue to be reflected by the gl
and hl
search parameters.

2020 – Geo Centering replaced by cities
As local results continue to become more relevant to searches, Google started to roll out a change to location targeting. Unless there was specific local intent, like a location based business, most rank tracking happened at a country level. In the event that a map pack or other local feature was displayed, Google chose the centroid of the country or specified location, which for the United States is near Lebanon, Kansas. That wasn’t particularly helpful for users, so Google made a change to start returning arbitrary city results, in lieu of user supplied targeting.

📍 For people tracking terms at a national level, this may be showing you less relevant results compared to your spot checks, and may show higher volatility than real users are seeing, as there are no guarantees which city might be selected.
2022 – Google Ads Data Pollution
As Google’s cash cow, Google Ads has always been more worried about click fraud / manipulation than traditional search. Even if organic results look correct, the ads served are held to a higher standard. Here are two examples where a search targeting US English returned ads for completely different countries / currencies. The primary way to prevent this from happening is using geo-targeted IP addresses, so that your request isn’t flagged as a risk by any of the Google systems.

2023 – JavaScript Split
While it continued to be possible to make Google searches with JavaScript disabled, new SERP features weren’t able to be replicated. Pictured below are two mobile SERPs collected on the same day, the left without JavaScript, and the right with JavaScript disabled.

💥 There were major rank trackers and data providers that for months, if not years, didn’t differentiate between the two. For rank tracking customers frustrated with inaccurate data, it is possible that this has been a major cause of problems.
Even with this change, it was still possible to collect the JavaScript enabled version without actually executing the request in a browser, and it would render correctly when opened later.
2024 – AI Overviews
AI Overviews were the first significant feature in Google Search that not only expected JavaScript to be enabled, but often did not come in the initial HTML payload.
When you see the loading animation, there is a JavaScript initiated fetch request to https://www.google.com/async/folsrch?… to generate a new AI Overview. This isn’t always required, as more popular searches seem to be pulled from cache and delivered with the rest of the page.
✨ If your rank tracker isn’t sophisticated enough to wait for that extra request to be made, you could be missing out on a large percentage of AI Overviews that are showing for end users.
2025 – JavaScript Required
Now that brings us to last week’s update. According to a Google spokesperson via TechCrunch:
fewer than .1% of searches on Google are done by people who disable JavaScript… Enabling JavaScript allows us to better protect our services and users from bots and evolving forms of abuse and spam
Google has clearly been increasing its reliance on JavaScript, and now is forcing change industry-wide. With each change, the sophistication and infrastructure required to scrape SERPs at scale continues to increase, and not every company is technical enough to keep up. More and more tools are becoming reliant on a smaller number of data providers, essentially just white labeling the data and putting an interface on top of it.
Nozzle’s Adjustments
We’ve upgraded our SERP collection methodology to use a headless browser approach. This doesn’t affect the level of detail we are parsing out of each SERP and in fact, it opens up new possibilities for additional data collection that requires browser interaction, like deep product data that opens up in the side panel on click.
As a preliminary step to be able to collect even more SERP data, we already had most of this functionality built out ahead of time and were able to make the finishing touches and roll this out fairly quickly. Furthermore, our SERP collection and parsing is built on our own infrastructure and we are not relying on third party api’s to give you the very granular SERP data that you have come to know and love.
For any questions about these changes or to discuss optimizing your tracking setup, please don’t hesitate to reach out to our support team.