Google Search Results Scraper
Pricing
$19.99/month + usage
Google Search Results Scraper
Scrape Google search results with accuracy, including titles, URLs, snippets, rankings, and featured elements. This Apify scraper helps you track keywords, monitor competitors, analyze SERPs, and gather structured data for SEO research and market insights.
Pricing
$19.99/month + usage
Rating
0.0
(0)
Developer
ScrapeEngine
Actor stats
0
Bookmarked
3
Total users
0
Monthly active users
2 days ago
Last modified
Categories
Share
Google Search Results Scraper
The Google Search Results Scraper is a production-ready google SERP scraper that turns messy result pages into clean, structured JSON for analysis and automation. It solves the pain of manual google search results scraping by extracting titles, URLs, snippets, rankings, paid ads, shopping products, People Also Ask, related queries, and optional AI summaries at scale. Built for marketers, developers, data analysts, and researchers, this google serp scraping tool doubles as a google search results API for pipelines, dashboards, and automated google SERP scraping workflows. 🚀
What data / output can you get?
This actor streams standardized SERP-style JSON items to the Apify dataset. Below are key fields you’ll get back, with examples.
| Data type | Description | Example value |
|---|---|---|
| searchQuery.term | Full query with applied operators/filters | "javascript site:developer.mozilla.org" |
| url | Final SERP URL for the request | "https://www.google.com/search?q=javascript+site%3Adeveloper.mozilla.org&gl=US&hl=en" |
| resultsTotal | Parsed “About X results” value (if present) | 1250000 |
| hasNextPage | Whether another SERP page is detected | true |
| relatedQueries[] | Related queries derived from top organic titles | [{"title":"JavaScript tutorial","url":"https://www.google.com/search?q=JavaScript+tutorial&hl=en&gl=us"}] |
| organicResults[] | Organic results with title, URL, snippet, sitelinks, position | {"title":"JavaScript |
| paidResults[] | Paid ads (if found) with title, URL, position | {"title":"Learn JS Fast","url":"https://ads.example.com%22,%22displayedUrl%22:%22ads.example.com%22,%22type%22:%22paid%22,%22position%22:1%7D |
| paidProducts[] | Shopping/commerce blocks with title and prices | {"title":"Best JavaScript book","displayedUrl":"shop.example.com","prices":["$19.99"]} |
| peopleAlsoAsk[] | PAA questions (with optional URL) | {"question":"What is JavaScript used for?","url":null,"answer":null,"date":null} |
| aiOverview | AI Overview text and references (when enabled) | {"text":"JavaScript is a programming language...","references":[{"title":"MDN","url":"https://developer.mozilla.org/..."}]} |
| htmlSnapshotUrl | Key-value store key if HTML snapshots are saved | "javascript_20260412_120501_p1.html" |
Notes:
- html appears when saveHtml is true.
- htmlSnapshotUrl is set when saveHtmlToKeyValueStore is true (links to the stored HTML file).
- peopleAlsoAsk may include null values for answer/date when not present.
Export your dataset to JSON, CSV, or Excel directly from Apify. Bonus fields include suggestedResults, customData (for Perplexity and ChatGPT add-ons), optional html, and optional icon data when includeIcons is enabled.
Key features
-
🚀 Always-on proxy resilience
Uses Apify proxies by default with a Google SERP proxy and automatic fallback to RESIDENTIAL on block (with retries). Once residential is used, it sticks to it for subsequent requests. -
📦 Batch scraping & bulk automation
Paste multiple queries or full Google Search URLs (one per line). The actor processes each and streams results page-by-page to the dataset. -
🔎 Accurate SERP parsing
Extracts organicResults, paidResults, paidProducts, peopleAlsoAsk, relatedQueries, suggestedResults, resultsTotal, and the final SERP URL — ideal for google serp data extraction and a reliable google serp scraping api. -
🌍 Full location & language control
Emulate local SERPs with countryCode, searchLanguage, languageCode, and exact location via locationUule. Supports mobileResults and includeUnfilteredResults. -
🧠 AI & Answer Engine add-ons
Enable aiMode with a serpApiKey to collect AI Overviews. Enrich customData with Perplexity and ChatGPT search toggles for cross-engine narrative analysis. -
🧰 Advanced filters that mirror Google operators
forceExactMatch, site, relatedToSite, wordsInTitle, wordsInText, wordsInUrl, fileTypes, quickDateRange, beforeDate, afterDate — to precisely scrape Google search results. -
🖼️ HTML snapshots & icons (optional)
Save HTML to the dataset (html) or key-value store (htmlSnapshotUrl) for debugging and replay. Optionally include icon image data with includeIcons. -
💻 Developer-friendly outputs
Standardized JSON fits neatly into automations and “google results scraper python” workflows. Integrate via the Apify API for a plug‑and‑play google search results crawler. -
📊 Ready to export & analyze
Export items to JSON/CSV/Excel or connect to your data stack for dashboards, SEO analyses, and reporting.
How to use Google Search Results Scraper - step by step
- Sign in to Apify and open the Google Search Results Scraper actor.
- In the Input tab, paste your queries into the queries field — one search term or a full Google Search URL per line.
- Set volume controls: resultsPerPage (1–100) and maxPagesPerQuery (each page ≈ ~10 results).
- Configure locale: countryCode, searchLanguage, languageCode, and optional locationUule for exact local emulation. Toggle mobileResults if you need mobile SERPs.
- Apply filters as needed: forceExactMatch, site or relatedToSite, wordsInTitle/wordsInText/wordsInUrl, fileTypes, date filters (quickDateRange, beforeDate, afterDate), and includeUnfilteredResults.
- Choose add-ons and extras: aiMode with serpApiKey (AI Overview), Perplexity, ChatGPT, focusOnPaidAds, saveHtml, saveHtmlToKeyValueStore, includeIcons.
- Click Start. The run uses Apify’s Google SERP proxy and automatically falls back to RESIDENTIAL if blocked. Watch logs for page-by-page progress.
- Open the Output tab to preview results, then export as JSON/CSV/Excel.
Pro tip: Treat this as a google search results API by triggering the actor via the Apify API for scheduled runs, downstream processing, or “google serp scraper online” automations.
Use cases
| Use case name | Description |
|---|---|
| SEO ranking tracking | Monitor keyword visibility by collecting organicResults positions across countries and languages for consistent trend analysis. |
| Competitor SERP analysis | Compare paidResults and organicResults to understand who’s bidding, who’s winning, and why — at scale. |
| Google Ads intelligence | Enable focusOnPaidAds to extract ad placements and messaging alongside paidProducts for high‑intent queries. |
| Content research & PAA mining | Scrape People Also Ask to discover question clusters and support Answer Engine Optimization. |
| E‑commerce & pricing watch | Capture paidProducts blocks and prices to track featured items and shopping units across markets. |
| Local SEO audits | Apply countryCode and locationUule to emulate local searches and validate local pack/organic differences. |
| Data pipelines & APIs | Use the standardized JSON as a google serp scraping api feed for enrichment, dashboards, or ML features. |
| Academic & market research | Build longitudinal datasets from relatedQueries and organicResults to study SERP structures and market trends. |
Why choose Google Search Results Scraper?
The google serp scraper you can trust for precision, automation, and scale.
- ✅ High‑fidelity SERP JSON: Structured fields for organic, paid, products, PAA, related queries, and metadata.
- 🌐 Geo & language control: countryCode, searchLanguage, languageCode, and locationUule for hyperlocal emulation.
- 📈 Built for scale: Bulk queries, page‑by‑page streaming, and robust proxy fallback for resilient runs.
- 🧠 AEO‑ready: Optional aiMode with SerpApi, plus Perplexity and ChatGPT flags in customData for cross‑engine comparisons.
- 🔒 Ethical & configurable: Collects publicly available Google Search results; you control filters, modes, and snapshots.
- 💻 Developer‑first: Clean JSON structure for google search results scraping software and automation pipelines.
- 🧩 Better than extensions: Avoid brittle UI automation — this is a production‑grade google search results scraper bot.
In short, it’s a dependable google search results scraping solution for teams that need accuracy, resilience, and integration‑ready outputs.
Is it legal / ethical to use Google Search Results Scraper?
Yes — when used responsibly. This actor collects data from publicly available Google Search result pages. You are responsible for complying with Google’s Terms of Service, robots.txt, and applicable laws (e.g., GDPR/CCPA). Avoid scraping personal data without a lawful basis, respect platform restrictions, and consult your legal team for edge cases. The tool does not access private or authenticated content.
Input parameters & output format
Example input (JSON)
{"queries": "javascript\npython site:developer.mozilla.org\nhttps://www.google.com/search?q=best+javascript+framework&hl=en&gl=us","resultsPerPage": 50,"maxPagesPerQuery": 2,"countryCode": "us","searchLanguage": "en","languageCode": "en","forceExactMatch": false,"site": null,"relatedToSite": null,"wordsInTitle": ["guide", "tutorial"],"wordsInText": [],"wordsInUrl": [],"quickDateRange": null,"beforeDate": null,"afterDate": null,"fileTypes": [],"mobileResults": false,"includeUnfilteredResults": false,"saveHtml": false,"saveHtmlToKeyValueStore": true,"includeIcons": false,"aiMode": "aiModeOff","serpApiKey": null,"perplexitySearch": {"enablePerplexity": false,"searchRecency": "","returnImages": false,"returnRelatedQuestions": false},"chatGptSearch": {"enableChatGpt": false},"maximumLeadsEnrichmentRecords": 0,"leadsEnrichmentDepartments": [],"focusOnPaidAds": false,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["GOOGLE_SERP"]}}
All input parameters
-
queries (string, required)
Description: Use regular search words or enter Google Search URLs. You can also apply advanced Google search techniques (e.g., AI site:twitter.com or javascript OR python). Ensure queries don’t exceed 32 words.
Default: not set -
resultsPerPage (integer)
Description: Desired results per page (passed to num). Google may return fewer due to quality filters.
Default: 100 (min 1, max 100) -
maxPagesPerQuery (integer)
Description: Maximum pages to scrape per query (≈10 organic per page).
Default: 1 (min 1) -
aiMode (string)
Description: Add‑on to scrape Google’s AI Mode (AI Overviews) for AEO/GEO, brand visibility, competitor analysis.
Default: "aiModeOff" (enum: aiModeOff, aiModeWithSearchResults, aiModeOnly) -
serpApiKey (string, nullable, secret)
Description: Optional. When set and aiMode is not off, fetch AI Overview via SerpApi.
Default: not set -
perplexitySearch (object)
Description: Add‑on to fetch AI answers from Perplexity (Sonar) for cross‑platform analysis.
Default: {"enablePerplexity": false, "searchRecency": "", "returnImages": false, "returnRelatedQuestions": false}
Properties:- enablePerplexity (boolean) — default false
- searchRecency (string, nullable; "", "day", "week", "month", "year") — default ""
- returnImages (boolean) — default false
- returnRelatedQuestions (boolean) — default false
-
chatGptSearch (object)
Description: Add‑on to fetch AI answers using OpenAI’s search model; output includes query fan‑out in customData.
Default: {"enableChatGpt": false}
Properties:- enableChatGpt (boolean) — default false
-
maximumLeadsEnrichmentRecords (integer)
Description: Add‑on to enrich with business leads per domain (cost multiplier; filters out large chains/platforms).
Default: 0 (min 0) -
leadsEnrichmentDepartments (array of string)
Description: Filter leads by departments (works only if maximumLeadsEnrichmentRecords > 0).
Default: [] (enum includes "c-suite", "product", "engineering-technical", "design", "education", "finance", "human-resources", "information-technology", "legal", "marketing", "medical-health", "operations", "sales", "consulting") -
focusOnPaidAds (boolean)
Description: Add‑on to enable paid results (ads) extraction; uses ad‑specialized proxy with retries (extra cost per page).
Default: false -
countryCode (string, select)
Description: Country for search and Google domain (e.g., google.es for Spain).
Default: "us" -
searchLanguage (string, nullable select)
Description: Restricts results to a specific language (lr param).
Default: not set -
languageCode (string, select)
Description: Google interface language (hl param).
Default: "en" -
locationUule (string, nullable)
Description: Exact location UULE code for local search emulation.
Default: not set -
forceExactMatch (boolean)
Description: Wraps query in quotes for exact phrase matches (may return fewer results).
Default: false -
site (string, nullable)
Description: Restrict results to a site (site:example.com).
Default: not set -
relatedToSite (string, nullable)
Description: Filter by pages related to a site (related:example.com). Ignored if site is set.
Default: not set -
wordsInTitle (array of string)
Description: Filters with intitle:"word" (added per word).
Default: [] (maxItems 32) -
wordsInText (array of string)
Description: Filters with intext:"word" (added per word).
Default: [] (maxItems 32) -
wordsInUrl (array of string)
Description: Filters with inurl:"word" (added per word).
Default: [] (maxItems 32) -
quickDateRange (string, nullable)
Description: Date range shortcut (e.g., d10, w1, m3, y1), passed via tbs=qdr:.
Default: not set -
beforeDate (string, nullable, absoluteOrRelative)
Description: Filter results before date (YYYY‑MM‑DD) or relative (e.g., 8 days, 3 months).
Default: not set -
afterDate (string, nullable, absoluteOrRelative)
Description: Filter results after date (YYYY‑MM‑DD) or relative.
Default: not set -
fileTypes (array of string select)
Description: filetype: operator (e.g., pdf, docx). Multiple types combined with OR.
Default: [] (maxItems 10) -
mobileResults (boolean)
Description: Return mobile SERP layout when enabled; otherwise desktop.
Default: false -
includeUnfilteredResults (boolean)
Description: Include lower‑quality results that Google normally filters out.
Default: false -
saveHtml (boolean)
Description: Save page HTML into dataset (html field). Increases dataset size.
Default: false -
saveHtmlToKeyValueStore (boolean)
Description: Save page HTML to key‑value store and link via htmlSnapshotUrl in the dataset.
Default: true -
includeIcons (boolean)
Description: Include icon image data in result items when found.
Default: false -
proxyConfiguration (object, editor: proxy)
Description: Always uses proxies. Prefill uses Apify Proxy with GOOGLE_SERP group; automatically falls back to RESIDENTIAL when blocked.
Default: not set (prefill available)
Example output (JSON)
{"searchQuery": {"term": "javascript site:developer.mozilla.org","url": "https://www.google.com/search?q=javascript+site%3Adeveloper.mozilla.org&gl=US&hl=en","device": "DESKTOP","page": 1,"type": "SEARCH","domain": "google.com","countryCode": "US","languageCode": "en","locationUule": null,"resultsPerPage": 10},"searchQueryTerm": "javascript site:developer.mozilla.org","url": "https://www.google.com/search?q=javascript+site%3Adeveloper.mozilla.org&gl=US&hl=en","hasNextPage": true,"serpProviderCode": "O","resultsTotal": 1250000,"relatedQueries": [{"title": "JavaScript tutorial","url": "https://www.google.com/search?q=JavaScript+tutorial&hl=en&gl=us"}],"paidResults": [{"title": "Learn JS Fast","url": "https://ads.example.com","displayedUrl": "ads.example.com","description": "","emphasizedKeywords": ["javascript site:developer.mozilla.org"],"siteLinks": [],"productInfo": {},"type": "paid","position": 1}],"paidProducts": [{"title": "Best JavaScript book","displayedUrl": "shop.example.com","prices": ["$19.99"]}],"aiOverview": null,"organicResults": [{"title": "JavaScript | MDN","url": "https://developer.mozilla.org/en-US/docs/Web/JavaScript","displayedUrl": "developer.mozilla.org","description": "JavaScript (JS) is a lightweight...","emphasizedKeywords": ["javascript site:developer.mozilla.org"],"siteLinks": [],"productInfo": {},"type": "organic","position": 1}],"suggestedResults": [{"title": "JavaScript tutorial","url": "https://www.google.com/search?q=JavaScript+tutorial&hl=en&gl=us","type": "organic","position": 1}],"peopleAlsoAsk": [{"answer": null,"question": "What is JavaScript used for?","title": "What is JavaScript used for?","url": null,"date": null}],"customData": {"perplexitySearch": {"enablePerplexity": false,"searchRecency": null,"returnImages": false,"returnRelatedQuestions": false},"chatGptSearch": {"enableChatGpt": false},"maximumLeadsEnrichmentRecords": 0,"leadsEnrichmentDepartments": []},"htmlSnapshotUrl": "javascript_20260412_120501_p1.html"}
FAQ
Is this a google SERP scraper free tool?
Pricing is managed on Apify and shown on the actor’s Pricing tab. You can run the actor on Apify and export results; check your subscription for available trial minutes and monthly plans.
Does it always use a proxy?
Yes. The actor initializes with a Google SERP proxy and automatically falls back to a residential proxy with retries if Google blocks the request. Once residential is used, it sticks to it for subsequent requests.
Can it scrape People Also Ask and shopping results?
Yes. The output includes peopleAlsoAsk and paidProducts when found, alongside organicResults and paidResults.
How many results per query can I get?
Use resultsPerPage (1–100) and maxPagesPerQuery to control volume. Google often returns ~10 organic results per page regardless of the num parameter, but additional pages increase total coverage.
Can I emulate location and languages?
Yes. Use countryCode, searchLanguage (lr), languageCode (hl), and locationUule for exact location. You can also enable mobileResults for a mobile SERP layout.
Does it support AI Overviews?
Yes. Set aiMode and provide a serpApiKey to fetch Google’s AI Overview (when available). The result appears under aiOverview with text and references.
Can I integrate this with my code or API?
Yes. Run the actor via the Apify API to integrate with pipelines (e.g., a google serp scraping api flow). The output’s standardized JSON is suitable for automation and “google results scraper python” scripts.
What about ads?
Enable focusOnPaidAds to optimize extraction for paidResults. This mode retries with an ad‑specialized proxy and applies an extra cost per search page (see Pricing).
Closing thoughts
Google Search Results Scraper is built for accurate, scalable google serp data extraction. With resilient proxies, advanced filters, location emulation, and optional AI add‑ons, it delivers a clean SERP JSON feed for marketers, developers, analysts, and researchers. Export data to JSON/CSV/Excel, call it via the Apify API like a google search results API, and automate your SEO insights. Start scraping smarter SERPs today.
