Niche

SERP Scraping and Rank Tracking on Real Devices

Rank tracking is a measurement problem: search results shift by city, device class, and personalization, so the vantage point defines the sample.

A ranking is a measurement, and the vantage point is part of it

There is no single result page to scrape. Google’s own search documentation states that it “will always estimate the general area that you’re searching from”, and that a general area is “larger than 3 sq km, and has at least 1000 users”, typically much larger outside cities. Below that resolution, results still move with device class, interface language, signed-in state, and prior activity. SERP scraping therefore produces a sample, not a fact, and the sample is defined by where and how you took it.

This is why two rank trackers report different positions for the same keyword on the same morning. Neither is broken. They are standing in different places.

What makes a SERP sample reproducible

An SEO monitoring pipeline is only as good as the parts of its vantage point it can hold constant. Whether you buy a rank tracking API or run collection yourself, five variables decide whether two runs are comparable:

  • Geography. Country-level targeting is not enough for anything with local intent. Local rank tracking needs city-level collection, and the same city on every run.
  • Device class. Mobile and desktop return different result sets and different feature layouts. Track them as separate series rather than blending them into one average.
  • Language and locale. Interface language parameters are not a substitute for a physical location, and mixing the two produces a page no real user would be served.
  • Session state. Signed out with no carried history, or a deliberately persistent profile. Either is defensible. Switching between them inside one time series is not.
  • Capture time. Result pages are re-ranked through the day, so a 09:00 sample and a 21:00 sample are two measurements, not one.

Anything you cannot pin, log. A stored ranking with no record of the parameters it was collected under cannot be compared to anything, including itself six months later.

SERP features moved the goalposts

Position ten used to describe a stable amount of attention. It no longer does. Google’s 20 May 2025 update put AI Overviews in “more than 200 countries and territories and in more than 40 languages”, and an AI Overview, a local pack, or a video carousel sitting above your listing changes what that position earns without changing the number. A modern record needs the feature layout captured alongside the rank, or the number quietly stops meaning what it used to.

Collection also got more expensive. In September 2025 Google stopped honoring the num=100 URL parameter that let a tracker read a hundred results in a single request. Search Engine Roundtable reported on 15 September 2025 that most third-party tracking tools broke as a result. Reading to position 100 now takes roughly ten page loads instead of one, from ten times as many credible vantage points.

Where real devices fit

Archonum runs browser automation on 250,000+ real consumer smartphones across 175+ countries. Your collection runs Chrome on the handset that owns the residential IP: one hop, no proxy split between the browser and the exit address. The location is not asserted by a parameter, it is where the phone is. That matters for measurement before it matters for access, because a Lyon result set is defined by being observed from Lyon. The reasoning is spelled out in why real devices beat emulators.

Session persistence handles the other half. A stable profile per market lets you decide whether personalization sits inside your measurement or outside it, rather than letting it drift run to run.

The honest limit

No collection method sees exactly what one named user sees. Personalization, account history, and live experiment assignment belong to individuals, and any vendor claiming otherwise is overselling. What a well-specified pipeline gives you instead is reproducibility: same place, same device class, same session policy, same hour, so that a change in the data means the search results changed and not that you changed how you looked at them. If you are weighing the options, compare this against datacenter and residential proxies first, then talk to us once you know which variables you need to hold still.

FAQ

Because a search result page depends on the vantage point it was collected from. Google estimates the general area a query is sent from, and results also vary by device class, interface language, and session state. Two tools sampling from different places will legitimately record different positions on the same day.

Country-level targeting is not enough for queries with local intent. Google's search location documentation says a general area is larger than 3 square kilometres and contains at least 1,000 users, and is typically much larger than that outside cities. City-level collection is the practical floor, and the same city has to be used on every run.

In September 2025 Google stopped returning 100 results per page for that URL parameter. Search Engine Roundtable reported on 15 September 2025 that most third-party tracking tools broke as a result. Reading the top 100 now takes roughly ten requests instead of one, so deep tracking costs about ten times as much collection.

No. Personalization, account history, and live experiment assignment belong to individual people, so no external measurement reproduces one user's page exactly. The achievable goal is a reproducible sample: fix the location, device class, language, session policy, and time of day, and record them with every result.

Ready to get started?

Run the same script you're running today against Archonum and compare the block rate yourself.