Google Search Scraper: SERP, Ads & AI Overview
Pricing
from $0.08 / 1,000 search results
Google Search Scraper: SERP, Ads & AI Overview
Scrape Google search results for any keyword and country: organic rank, title, URL, snippet, date, sitelinks, People also ask, related searches, AI Overview and ads. Rank tracking, SEO research.
Pricing
from $0.08 / 1,000 search results
Rating
0.0
(0)
Developer
Trevor Ortega
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
2
Monthly active users
7 days ago
Last modified
Categories
Features
Share
Google SERP Scraper: Rankings, Ads & AI Overview
Scrape Google search results for any keyword, country, language or city. For every search you get one row per organic result (position, title, URL, displayed URL, domain, snippet, date, sitelinks), plus one summary row per results page with People also ask questions, related searches, the AI Overview text and its sources, Top stories and the list of SERP features Google showed. Turn on ads to get every text ad with its landing URL, at no add-on fee.
Use it for SEO rank tracking, keyword and content research, competitor and brand monitoring, building URL and domain lists, or feeding fresh Google results to an AI agent. No Google API key, no browser, no login.
What data does it extract?
Every row has a type (organic, serp or ad), searchTerm, page, country, language, googleDomain,
searchUrl (the Google URL, to open in a browser) and scrapedAt.
| Field | Rows | Description |
|---|---|---|
position | organic | Organic rank for the search, continuing across pages (page 2 starts after page 1's last result) |
positionOnPage | organic | Rank on its own results page |
title | organic, ad | Result title |
url | organic, ad | Target URL. Ads: the landing URL, read from the page (ads are never clicked) |
displayedUrl | organic, ad | The URL / breadcrumb Google prints under the title (https://www.cnet.com › ... › VPN) |
domain | organic, ad | Host of the result (www.cnet.com), filled even when Google hides the URL |
siteName | organic, ad | Site name Google shows (CNET, Reddit · r/running, YouTube · Channel), or the advertiser |
description | organic, ad | Snippet text (without the date) |
date | organic | Date Google shows with the result (Oct 20, 2026, 6 days ago, 06.10.2026) |
emphasizedKeywords | organic | Words Google printed in bold in the snippet |
siteLinks | organic, ad | Sitelinks under the result: [{title, url, description}] |
richSnippet | organic | Extra line under some results: ratings, prices, views, comments (4.7 (5,077), 330+ views · 1 year ago) |
resultType, videoDuration | organic | web or video; video length (4:56) |
urlSource, googleRedirectUrl | organic | Where url came from: page (printed in the page) or googleRedirect (see FAQ); googleRedirectUrl is kept only if the URL could not be read |
adPlacement, adPosition | ad | top or bottom, and the rank within that block |
organicResultsCount, adsCount, firstPosition, lastPosition | serp | What the page contained |
peopleAlsoAsk | serp | Questions in the "People also ask" box |
relatedSearches | serp | [{query, url}] from "People also search for" |
aiOverview | serp | {text, sources: [{title, url}]} when Google shows an AI Overview (the text rendered in the page) |
topStories | serp | [{title, source, publishedAt, dateText, section, url, googleRedirectUrl}]: Top stories and "What people are saying" cards |
serpFeatures | serp | Blocks on the page: AI Overview, People also ask, Videos, Top stories, Ads, ... |
hasNextPage | serp | Whether Google offers another page |
detectedLocation | serp | The location Google says it used, from the page footer, as Google words it: {name, source} (Austin, Texas / From your IP address, or Unknown / Can't determine location) |
changeType, previousValues | organic (monitoring) | new or changed, and the old position |
Example output
An organic result:
{"type": "organic","position": 1,"positionOnPage": 1,"title": "Sourdough Bread: A Beginner's Guide","url": "https://www.theclevercarrot.com/2014/01/sourdough-bread-a-beginners-guide/","displayedUrl": "https://www.theclevercarrot.com › 2014/01 › sourdoug...","domain": "www.theclevercarrot.com","siteName": "The Clever Carrot","description": "In a large bowl, add the sourdough starter, water and olive oil. Mix with a fork to combine, then add the flour and salt. Continue mixing until...","date": "Oct 17, 2025","emphasizedKeywords": ["In a large bowl, add the sourdough starter, water and olive oil"],"siteLinks": [],"richSnippet": "4.9 (1,444) · 14 hr","resultType": "web","videoDuration": null,"urlSource": "page","googleRedirectUrl": null,"searchTerm": "how to make sourdough bread","page": 1,"country": "us","language": "en","googleDomain": "google.com","searchUrl": "https://www.google.com/search?q=how+to+make+sourdough+bread&hl=en&gl=us&uule=w%2BCAIQICINVW5pdGVkIFN0YXRlcw","scrapedAt": "2026-11-05T15:17:44Z"}
The SERP summary row of the same page (shortened):
{"type": "serp","organicResultsCount": 6,"adsCount": 0,"firstPosition": 1,"lastPosition": 6,"peopleAlsoAsk": ["What is the secret to making good sourdough bread?","What is the biggest mistake beginners make with sourdough bread?","What is the 3 ingredient sourdough?","How difficult is sourdough bread to make?"],"relatedSearches": [{"query": "Sourdough starter Kit", "url": "https://www.google.com/search?q=Sourdough+starter+Kit"},{"query": "How to make sourdough bread without starter", "url": "https://www.google.com/search?q=How+to+make+sourdough+bread+without+starter"}],"aiOverview": {"text": "Classic artisan sourdough bread uses just four simple ingredients: active sourdough starter, bread flour, water, and sea salt. ...","sources": [{"title": "Farmhouse on Boone", "url": "https://www.farmhouseonboone.com/beginners-sourdough-bread-recipe/"},{"title": "The Best Sourdough Bread Recipe, Video, watch on YouTube", "url": "https://www.youtube.com/watch?v=McqmnU1vVe4&t=6"}]},"topStories": [],"serpFeatures": ["AI Overview", "Recipes", "People also ask", "Videos", "Short videos"],"hasNextPage": true,"searchTerm": "how to make sourdough bread","page": 1}
How to scrape Google search results
- Add one or more search terms (one per line). Google operators work:
site:example.com pricing,"exact phrase",intitle:review,filetype:pdf,-word,after:2026-01-01. You can also paste a full Google search URL (https://www.google.co.uk/search?q=coffee&hl=en); it keeps its own domain, country, language, start page and filters. - Pick the country and, if you want, the interface language, an exact location (city) and a time period.
- Set Results pages per search (1 page = up to 10 organic results) and start the run.
- Download the dataset as JSON, CSV, Excel or HTML, or read it through the Apify API. The dataset has three views: Organic results, SERP summary and Ads.
Input example:
{"queries": ["best running shoes", "site:reddit.com marathon training plan"],"countryCode": "us","maxPagesPerQuery": 3,"includeAds": true}
How much does it cost?
You pay $0.08 per 1,000 rows (result event: an organic result, an ad or a page's summary row) plus Apify's
platform usage, which is almost all the Google SERP proxy: Apify bills $0.0025 per results page on the Free
and Starter plans ($0.002 on Scale, $0.0017 on Business), plus about $0.0002 of compute per page.
A typical page (about 9 organic results + 1 summary row) costs about $0.0035 in total on the Free plan, about 22% less than the $0.0045 per page that the most used Google search actor charges on the Free plan, and ads are included instead of being a $0.0065-per-page add-on. 1,000 keywords x 1 page ≈ $3.5.
Why do some results come with urlSource: googleRedirect?
Google currently serves many results pages with encrypted redirect links (/goto?url=...) instead of the real
target URLs; which pages get them depends on the network route of each request. For those pages the actor asks
Google for each redirect's target (one small request per result, from the run's own IP, not through the paid
proxy) and fills url with it. In our test runs 199 of 204 organic results (97.5%) got their URL this way or
straight from the page.
If Google refuses a redirect, the row keeps url: null, the domain and displayedUrl from the page, and a
googleRedirectUrl that opens the result in a browser. Ads are never followed.
Can I get results for another country, language or city?
Yes. Country sets the Google domain (google.de, google.co.uk, ...), gl, and a country-level location
(Google's uule), so Google ranks for that country instead of wherever Apify's proxy exits (a German search saved
without it was placed in Delhi). About 50 countries work through pasted Google URLs
(https://www.google.com.ar/search?q=...).
Exact location (best effort) sends Google's canonical location name (Austin,Texas,United States) for local
searches like "plumber near me". Google applies it on some requests only: in our tests 3 of 7 requests came back
with Austin results, the others with results from all over the US. The summary row's detectedLocation shows the
location Google reported (not a guarantee either). Ads are chosen by Google's ad system and can follow the proxy's
own location (a UK ad on a US search was seen).
Why do two runs of the same search give different results?
Google does not serve one fixed ranking. In our tests, six requests for "best project management software" (US, one
minute apart) came back with two clearly different top-10s, three times each; Google's data centers and ranking
experiments differ by network route, and Apify's Google SERP proxy picks a new route for every request. That is
true for any tool that scrapes Google, and for real users. Treat a single run as a sample: for rank tracking, run
on a schedule and compare positions over several runs; detectedLocation on the summary row shows which location
Google said it used.
Monitor changes on a schedule
Turn on Only new or changed items and save the input as a task with a Schedule (for example daily). The actor
remembers the results of earlier runs of the same search (term, country, language) and outputs only results that
are new in the search or whose position changed, so you get a lightweight rank tracker. Unchanged results
are not saved and not charged (the proxy cost per page still applies). Because Google's ranking varies between
requests (see above), expect some "new" results that are really route-to-route variation. Each row gets changeType (new or
changed) and, for moved results, previousValues with the old position. Use Monitoring key to keep several
schedules on the same search separate. Ads and summary rows are not output in this mode.
Does it need a Google account or a browser?
No. It reads the same public results page anyone sees without logging in, through Apify's Google SERP proxy, and parses the HTML. No CAPTCHA solving and no cookies from your account.
Is it legal to scrape Google search results?
The actor collects what Google shows publicly to anyone: result titles, URLs, snippets, questions and ads. Some results show public names (for example the author of a forum post or a news byline), which are exported as shown. Check Google's terms and the laws that apply to you for your use case, and use the data responsibly.
Limits
- Up to 10 organic results per page (Google no longer supports
num=100); 6-10 is common because Google mixes in videos, forums and other blocks. Deeper pages often broaden the query (page 3 of "best vpn" is about "vpn"). - People also ask: questions only (Google loads the answers when you click).
- The AI Overview is the text Google renders in the page; very long overviews can be cut where Google shows "Show more". AI Mode answers are not collected.
- Knowledge panels, local map packs, shopping and image carousels are listed in
serpFeaturesbut not parsed. - Google changes its page layout often; the daily health check of this actor watches for it.
Related scrapers
- Google Autocomplete Scraper: Keyword Ideas, YouTube & Bing
- Google Trends Scraper: Interest, Regions, Queries & Trending
- Google News Scraper: Articles & Headlines
- Google Images Scraper: Full-Size Image URLs & Sources
- Google Shopping Scraper: Prices & Offers
Found it useful?
A ★ review on this Actor's Apify Store page helps other users find it and tells us what to improve. Issues and feature requests are welcome in the Actor's Issues tab.