SEO Data Bench

SEO Data Bench/Benchmarks/serp-completeness

Google SERP completeness: live fetch versus stored index

Benchmarkcohort v1US · enrun 2026-09-15includes a Treg route

Fifty queries fetched through five Google results routes on the same day and compared with a live rendered Google page: how much of the real top 10 each route returns, whether the first result matches, what it costs and how long it takes.

By Shirley Lou, Research, TregPublished 2026-09-15Facts re-checked 2026-09-15Last material change 2026-09-15

Written for people asking: What is the cheapest way to run weekly keyword and SERP checks through an API?Which SerpApi alternatives return Google results and AI Overviews through an API at low volume?Is a SERP API's top 10 the same as what Google actually shows?

Against a live rendered Google results page captured at the same time, DataForSEO's live SERP endpoint returned 95% of the real top-10 URLs and the same first result on 47 of 50 queries; SerpApi 90% and 47 of 50; Treg's routed SERP endpoint, which was served by DataForSEO on all 50 calls, 95% and 48 of 50. Serpstat's SERP is a stored index, not a fetch: it had no data for 30 of the 50 queries and, on the 20 it had, matched 70% of the live top 10 and the first result on 13. Cost per query ranged from $0.0005 (Serpstat) to $0.015 (SerpApi); median latency from 1.0 s (Serpstat, no fetch) and 1.5 s (SerpApi) to 7.9 s (DataForSEO live) and 9.2 s (Treg routed).

The reference

Each of the 50 queries was fetched as a live, rendered Google results page (US, desktop, page 1) by Cloro at run time. That render is the reference for the query: its organic URLs, in order, are what a person searching at that moment would have seen. Every other route is scored against it. Rendered Google pages carried a median of 9 organic results, because an AI Overview, People Also Ask or video block takes one of the ten slots, so “full top 10” is rare for any route and is reported but not scored.

The reference is a single fetch per query. Google personalises and rotates results, so two live fetches seconds apart can differ by a position or a URL. Treat 90% and 95% as “the same page” and 70% as “a different page”.

Results

Cohort v1, 50 queries, US desktop, 2026-09-15. Overlap = share of the live top-10 URLs present in the route's top 10, averaged over queries where both returned data. 5 rows.Download CSV ↓
RouteReturned dataNo dataOverlap with live GoogleSame first resultMedian organic resultsp50p95Cost per query
Cloro (live Google render)500referencereference94559 ms9806 ms$0.0028
DataForSEO50095%47/5097894 ms18133 ms$0.0020
SerpApi50090%47/5091507 ms12805 ms$0.015
Serpstat203070%13/2010995 ms1667 ms$0.0005
Treg (routed)50095%48/5099215 ms22424 ms$0.0020

Reading the table:

  • Live fetchers agree with Google. DataForSEO and SerpApi both returned a page that matched the live render on 47 of 50 first results. The remaining disagreement is at positions 5 to 10, which move between fetches anyway.
  • Serpstat is a database, not a fetch. It returns a stored copy of the results page and only for queries it has crawled. Thirty of the 50 cohort queries were not in it. On the 20 that were, the first result matched the live page 13 times and the top 10 overlapped 70%, which is consistent with a page captured weeks earlier. It is the cheapest and fastest route by a wide margin for exactly that reason.
  • Treg’s routed endpoint was DataForSEO with 1.3 seconds added. All 50 calls were served by DataForSEO’s live endpoint, at DataForSEO’s price ($0.002), with the same data. The routing added about 1.3 seconds at the median and 4 seconds at p95. The response names the serving provider, so this is checkable per call. The advantage of the route is one credential and a fallback if DataForSEO fails; the cost is the latency, and there was no failure in this run to exercise the fallback.
  • SerpApi is the fastest live route and the most expensive. 1.5 seconds at the median, 7.5 times the price of DataForSEO per query.
  • Cloro’s live render is the slowest. 4.6 seconds at the median, because it renders the page rather than parsing an HTML fetch, which is also why it can return the AI Overview block the others do not.

What this means for a weekly check

A weekly rank check on 500 queries at these prices:

Route 500 queries a week Notes
Serpstat stored SERP $0.25 Only for queries in its index; expect gaps on long tail and stale positions
DataForSEO live $1.00 Matches live Google; 8 s per query serially, so batch or parallelise
Treg routed $1.00 Same data as DataForSEO in this run, one credential, slower
Cloro live render $1.40 Adds AI Overview text and sources
SerpApi $7.50 Fastest live option

Prices are list prices on the run date; subscriptions and volume tiers change them.

Who each route fits

  • Agent that needs the current page, occasionally: DataForSEO or Treg routed. Pay per call, no plan, live data.
  • Weekly monitoring of head terms you already track: Serpstat, if your queries are in its index. Check coverage on your list before relying on it.
  • You need the AI Overview, not just the blue links: Cloro.
  • Latency matters more than price: SerpApi.

What this run cannot tell you

One fetch per query per route, one day, one country, desktop only. Positions 5 to 10 move between any two fetches, so overlap differences of a few points are noise. Serpstat’s index freshness is not measured here beyond the overlap figure; a second run will show whether the same 20 queries drift. No route was rate-limited on SERP calls in this run, so throughput at volume is untested.

Reproduce it

Cohort, runner and scorer on the dataset page; the 250 raw SERP responses are under evidence, one file per query per route.


Spotted an error or a changed price? Email corrections@seodatabench.com with the page URL and a source. Corrections are logged on the corrections page.