Google Search Results Scraper
Pricing
$19.99/month + usage
Google Search Results Scraper
π Google Search Results Scraper captures real-time SERP data β titles, URLs, snippets, positions, People Also Ask & related searches. π Support for location, language & date. π Perfect for SEO, content research, and market intel. π Fast, reliable, and scalable.
Pricing
$19.99/month + usage
Rating
0.0
(0)
Developer
Scraply
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
20 days ago
Last modified
Categories
Share
Google Search Results Scraper
The Google Search Results Scraper is a fast, scalable Google SERP scraper that captures real-time search result pages β including organic results, paid ads, shopping products, People Also Ask, related and suggested queries, and optional AI Overviews β in clean JSON. Built for marketers, developers, data analysts, and researchers, this Google search results scraping tool supports location, language, UULE, advanced filters, date ranges, and mobile/desktop modes to power SEO monitoring, content research, market intelligence, and bulk Google search scraping at scale π
What data / output can you get?
Below are the exact fields pushed to the Apify dataset for each query/page. This is a Google search results JSON scraper that mirrors standard SERP structures.
| Data field | Description | Example value |
|---|---|---|
| searchQuery.term | Full query string sent to Google (includes applied filters) | "site:example.com "best laptops" intitle:"review"" |
| searchQuery.url | Final SERP URL for the page | "https://www.google.com/search?q=best+laptops&hl=en&gl=us" |
| searchQuery.device | Device used for the query | "DESKTOP" |
| searchQuery.page | Page number of the SERP | 1 |
| searchQuery.type | Query type | "SEARCH" |
| searchQuery.domain | Search engine domain | "google.com" |
| searchQuery.countryCode | Country code used (GL) | "US" |
| searchQuery.languageCode | Interface language (HL) | "en" |
| searchQuery.locationUule | UULE code if provided | "w+CAIQICISU2FuIEZyYW5jaXNjbw" |
| searchQuery.resultsPerPage | Count of unique organic results collected so far | 10 |
| url | Final SERP URL for the page | "https://www.google.com/search?q=..." |
| hasNextPage | Whether a βNextβ page exists and is within configured max pages | true |
| serpProviderCode | Provider code identifier | "O" |
| resultsTotal | Parsed βAbout X resultsβ count (if available) | 125000000 |
| relatedQueries | Related query suggestions (array of { title, url }) | [{"title":"best laptops 2026","url":"https://www.google.com/search?q=best+laptops+2026&hl=en&gl=us"}] |
| organicResults | Organic results with metadata | [{"title":"Top Laptops","url":"https://example.com%22,%22displayedUrl%22:%22example.com%22,%22description%22:%22...%22,%22emphasizedKeywords%22:%5B%22best laptops"],"siteLinks":[{"title":"Shop","url":"https://example.com/shop","description":""}],"productInfo":{},"type":"organic","position":1}] |
| paidResults | Google Ads results | [{"title":"Shop Laptops","url":"https://ads.example.com%22,%22displayedUrl%22:%22ads.example.com%22,%22description%22:%22%22,%22emphasizedKeywords%22:%5B%22best laptops"],"siteLinks":[],"productInfo":{},"type":"paid","position":1}] |
| paidProducts | Shopping/product tiles with prices | [{"title":"Laptop Pro 15","displayedUrl":"store.example.com","prices":["$1,299"]}] |
| peopleAlsoAsk | PAA cards with questions (and optional links) | [{"answer":null,"question":"What is the best laptop?","title":"What is the best laptop?","url":"https://example.com%22,%22date%22:null}] |
| suggestedResults | Suggested results synthesized from related queries | [{"title":"best laptops 2026","url":"https://www.google.com/search?q=best+laptops+2026&hl=en&gl=us","type":"organic","position":1}] |
| aiOverview | Optional AI Overview (when AI Mode + SerpApi key enabled) | {"text":"AI summary...","references":[{"title":"Example","url":"https://example.com"}]} |
| customData | Add-on configurations summary | {"perplexitySearch":{"enablePerplexity":false,"searchRecency":null,"returnImages":false,"returnRelatedQuestions":false},"chatGptSearch":{"enableChatGpt":false},"maximumLeadsEnrichmentRecords":0,"leadsEnrichmentDepartments":[]} |
| htmlSnapshotUrl | Key to HTML snapshot in key-value store when enabled | "query_20260413_101500_p1.html" |
| html | Full HTML content in the dataset when enabled | "..." |
Notes:
- Results stream page-by-page, enabling automated Google search scraping pipelines and bulk Google search scraping workflows.
- Export your dataset as JSON/CSV/Excel directly from Apify.
Key features
-
β‘οΈ Real-time SERP streaming
- Pushes one dataset item per page with hasNextPage for immediate consumption and pagination control. Ideal for automated Google search scraping pipelines and dashboards.
-
π‘οΈ Resilient proxying with smart fallback
- Always uses Apify proxies with a default Google SERP proxy and automatic fallback to residential proxy on block (with retries). Once residential is used, it sticks for subsequent requests for higher success rates.
-
π― Precision filters
- Advanced Google search results parser with force-exact-match, site/related: filters, intitle/intext/inurl, quick date ranges, absolute/relative before/after dates, and filetype filters.
-
π Location & language controls
- Country (GL), interface language (HL), search language (LR), and exact location via UULE for geo-targeted Google SERP scraper use cases.
-
π± Mobile or desktop modes
- Toggle mobileResults to collect mobile-first SERPs when optimizing for mobile SEO.
-
π§ AI & Answer Engine options ($)
- Google AI Mode (AI Overviews via SerpApi key), plus optional Perplexity AI search and ChatGPT search add-ons for cross-engine comparisons and Answer/Generative Engine Optimization.
-
π° Ads & products capture ($)
- focusOnPaidAds enables specialized detection and retries for paid results (Google Ads). Also extracts shopping product tiles with prices.
-
ποΈ HTML archival & debugging
- Save page HTML into the dataset (html) or store snapshots in key-value storage (htmlSnapshotUrl) for reproducibility and QA.
-
π§© Integration-ready
- Use the Apify platform to run online, export datasets to JSON/CSV, and connect to Zapier, Make, n8n, or your own Google search results scraper Python/Node.js workflows.
-
π§± Production-grade reliability
- Automated retries, detection of βunusual trafficβ blocks, and structured JSON designed as a Google SERP API alternative for scalable operations.
How to use Google Search Results Scraper - step by step
- Create or log in to your Apify account.
- Open the Google Search Results Scraper actor on the Apify platform.
- In the Input tab, paste search terms β one per line. You can also paste full Google Search URLs; the actor will extract the q parameter automatically.
- Set result volume:
- resultsPerPage (1β100)
- maxPagesPerQuery (each page β 10 organic results)
- Configure targeting:
- countryCode, languageCode, searchLanguage, and optional locationUule for precise local SERPs.
- Apply filters (optional):
- forceExactMatch, site/relatedToSite, wordsInTitle/wordsInText/wordsInUrl, quickDateRange, beforeDate, afterDate, fileTypes.
- Choose mode & extras:
- mobileResults, includeUnfilteredResults, includeIcons.
- Enable AI Mode (with serpApiKey) or add-ons (perplexitySearch, chatGptSearch, focusOnPaidAds) as needed.
- Toggle saveHtml or saveHtmlToKeyValueStore for debugging/archival.
- Click Start. The run will process queries and push page-by-page results to the dataset. Watch the Log for proxy fallback notes and page counts.
- Export results in JSON/CSV/Excel from the Output tab.
Pro tip: Orchestrate scheduled runs and pipe the dataset to your data warehouse to build a SERP scraping tool for Google that powers trend tracking and SEO dashboards.
Use cases
| Use case | Description |
|---|---|
| SEO monitoring & rank tracking | Collect organicResults with positions to monitor keyword coverage and SERP movements over time. |
| PPC landscape analysis | Extract paidResults and paidProducts for competitive ad intelligence in target geographies and devices. |
| Content & topic research | Use relatedQueries, peopleAlsoAsk, and suggestedResults to map search intent and content gaps. |
| Local SEO auditing | Apply countryCode, searchLanguage, and locationUule to analyze localized SERPs and map-pack visibility. |
| AEO/GEO benchmarking | Enable AI Mode and compare aiOverview with Perplexity/ChatGPT add-ons to audit answer engines. |
| Market & pricing intel | Capture paidProducts with prices to inform product positioning and pricing strategies. |
| Data enrichment pipeline (API) | Automate bulk Google search results scraping into JSON datasets for analytics and NLP pipelines. |
Why choose Google Search Results Scraper?
This SERP scraping tool for Google is built for precision, automation, and scale β a robust Google SERP API alternative without vendor lock-in.
- β Accurate, structured SERP JSON with rich metadata and positions
- π Full geo & language controls, including UULE for exact location targeting
- π Scales to bulk Google search scraping with page-by-page streaming
- π©βπ» Developer-friendly on Apify with easy exports for Python/Node.js pipelines
- π Ethical by design: targets publicly available Google SERPs only
- π Add-ons for AI Overviews, Perplexity, ChatGPT, and paid ads detection
- π‘οΈ Resilient proxying with automatic fallback to residential for maximum success
In short: a reliable Google search results scraper online that outperforms brittle browser hacks and unstable scripts.
Is it legal / ethical to use Google Search Results Scraper?
Yes β when used responsibly. This actor fetches publicly available Google Search result pages and does not access authenticated or private content.
Guidelines:
- Only collect data from public SERPs.
- Comply with Googleβs Terms of Service and applicable laws (e.g., GDPR/CCPA).
- Avoid scraping personal data unless you have a legitimate basis.
- Validate your use case with your legal team for jurisdiction-specific requirements.
Input parameters & output format
Example input (JSON)
{"queries": "javascript\nsite:twitter.com AI\nhttps://www.google.com/search?q=best%20laptops&hl=en&gl=us","resultsPerPage": 100,"maxPagesPerQuery": 2,"aiMode": "aiModeWithSearchResults","serpApiKey": "YOUR_SERPAPI_KEY","perplexitySearch": {"enablePerplexity": false,"searchRecency": "","returnImages": false,"returnRelatedQuestions": false},"chatGptSearch": {"enableChatGpt": false},"maximumLeadsEnrichmentRecords": 0,"leadsEnrichmentDepartments": [],"focusOnPaidAds": false,"countryCode": "us","searchLanguage": "","languageCode": "en","locationUule": null,"forceExactMatch": false,"site": null,"relatedToSite": null,"wordsInTitle": [],"wordsInText": [],"wordsInUrl": [],"quickDateRange": null,"beforeDate": null,"afterDate": null,"fileTypes": [],"mobileResults": false,"includeUnfilteredResults": false,"saveHtml": false,"saveHtmlToKeyValueStore": true,"includeIcons": false,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["GOOGLE_SERP"]}}
All input fields
- queries (string, required) β Use regular search words or enter Google Search URLs. Advanced operators (e.g., AI site:twitter.com, javascript OR python) supported. Ensure queries do not exceed 32 words.
- resultsPerPage (integer) β Desired results per page (passed as num). Default: 100. Min: 1, Max: 100.
- maxPagesPerQuery (integer) β Maximum pages to scrape per query (β10 results per page). Default: 1. Min: 1.
- aiMode (string) β Add-on: Google AI Mode ($). Default: "aiModeOff". Enum: ["aiModeOff","aiModeWithSearchResults","aiModeOnly"].
- serpApiKey (string, nullable, secret) β Optional. When set and AI Mode is not off, fetches AI Overview via SerpApi.
- perplexitySearch (object) β Add-on: Perplexity AI search ($). Default: {"enablePerplexity":false,"searchRecency":"","returnImages":false,"returnRelatedQuestions":false}. Properties:
- enablePerplexity (boolean) β Default: false.
- searchRecency (string, nullable) β Enum: ["", "day", "week", "month", "year"].
- returnImages (boolean) β Default: false.
- returnRelatedQuestions (boolean) β Default: false.
- chatGptSearch (object) β Add-on: ChatGPT Search ($). Default: {"enableChatGpt":false}. Properties:
- enableChatGpt (boolean) β Default: false.
- maximumLeadsEnrichmentRecords (integer) β Add-on: Extract Business Leads Information ($). Default: 0. Min: 0.
- leadsEnrichmentDepartments (array of string) β Optional filter when leads enrichment is enabled. Default: [].
- focusOnPaidAds (boolean) β Add-on: Enable paid results (ads) extraction ($). Default: false.
- countryCode (string) β Country/domain selector. Default: "us".
- searchLanguage (string, nullable) β Restricts results to a language (LR param). Default: null.
- languageCode (string) β Interface language (HL param). Default: "en".
- locationUule (string, nullable) β Exact location (UULE). Default: null.
- forceExactMatch (boolean) β Wraps query in quotes for exact match. Default: false.
- site (string, nullable) β site: filter. Default: null.
- relatedToSite (string, nullable) β related: filter. Ignored if site is set. Default: null.
- wordsInTitle (array of string) β intitle: filters. Default: [].
- wordsInText (array of string) β intext: filters. Default: [].
- wordsInUrl (array of string) β inurl: filters. Default: [].
- quickDateRange (string, nullable) β qdr: tbs filter (e.g., d10, w1, m3, y1). Default: null.
- beforeDate (string, nullable) β Absolute YYYY-MM-DD or relative (e.g., "8 days"). Default: null.
- afterDate (string, nullable) β Absolute YYYY-MM-DD or relative. Default: null.
- fileTypes (array of string) β filetype: filters. Default: [].
- mobileResults (boolean) β Mobile SERP mode. Default: false.
- includeUnfilteredResults (boolean) β Includes lower quality results Google normally filters. Default: false.
- saveHtml (boolean) β Store HTML in dataset under html. Default: false.
- saveHtmlToKeyValueStore (boolean) β Store HTML snapshots to key-value store and link via htmlSnapshotUrl. Default: true.
- includeIcons (boolean) β Include Base64-encoded icon image data if found. Default: false.
- proxyConfiguration (object) β Proxy configuration. Prefill/default behavior: {"useApifyProxy": true, "apifyProxyGroups": ["GOOGLE_SERP"]}. The actor falls back to residential proxies with retries upon blocks and sticks to residential thereafter.
Output example (JSON)
Each dataset item corresponds to one page for a given query.
{"searchQuery": {"term": "\"best laptops\" intitle:\"review\"","url": "https://www.google.com/search?q=best%20laptops&hl=en&gl=us","device": "DESKTOP","page": 1,"type": "SEARCH","domain": "google.com","countryCode": "US","languageCode": "en","locationUule": null,"resultsPerPage": 10},"searchQueryTerm": "\"best laptops\" intitle:\"review\"","url": "https://www.google.com/search?q=best%20laptops&hl=en&gl=us","hasNextPage": true,"serpProviderCode": "O","resultsTotal": 125000000,"relatedQueries": [{"title": "best laptops 2026","url": "https://www.google.com/search?q=best+laptops+2026&hl=en&gl=us"}],"paidResults": [{"title": "Shop Laptops - Big Savings","url": "https://ads.example.com","displayedUrl": "ads.example.com","description": "","emphasizedKeywords": ["best laptops"],"siteLinks": [],"productInfo": {},"type": "paid","position": 1}],"paidProducts": [{"title": "Laptop Pro 15","displayedUrl": "store.example.com","prices": ["$1,299"]}],"aiOverview": null,"organicResults": [{"title": "Top 10 Laptops of 2026","url": "https://example.com/best-laptops","displayedUrl": "example.com/best-laptops","description": "Our expert guide to the best laptops...","emphasizedKeywords": ["\"best laptops\" intitle:\"review\""],"siteLinks": [{ "title": "Buyerβs Guide", "url": "https://example.com/guide", "description": "" }],"productInfo": {},"type": "organic","position": 1}],"suggestedResults": [{"title": "best laptops 2026","url": "https://www.google.com/search?q=best+laptops+2026&hl=en&gl=us","type": "organic","position": 1}],"peopleAlsoAsk": [{"answer": null,"question": "What is the best laptop?","title": "What is the best laptop?","url": "https://example.com/answers/best-laptop","date": null}],"customData": {"perplexitySearch": {"enablePerplexity": false,"searchRecency": null,"returnImages": false,"returnRelatedQuestions": false},"chatGptSearch": { "enableChatGpt": false },"maximumLeadsEnrichmentRecords": 0,"leadsEnrichmentDepartments": []},"htmlSnapshotUrl": "best_laptops_20260413_101500_p1.html"}
Fields that may be null or empty:
- aiOverview (requires aiMode β aiModeOff and serpApiKey)
- peopleAlsoAsk.url (when no link detected)
- html/htmlSnapshotUrl (only when saveHtml or saveHtmlToKeyValueStore are enabled)
FAQ
How many results per query can I extract?
Each page typically contains around 10 organic results. Control volume with resultsPerPage (1β100) and maxPagesPerQuery (e.g., set to 10 for ~100 organic results). Usage and costs are based on the number of pages navigated.
Does this tool use proxies automatically?
Yes. The actor always uses Apify proxies. It starts with a Google SERP proxy and automatically falls back to residential proxies with retries if Google blocks; once residential is used, it sticks to it for the rest of the run.
Can I capture Google Ads and shopping products?
Yes. paidResults and paidProducts are extracted. For improved ads detection, enable focusOnPaidAds ($), which uses an ad-specialized proxy and retries for each query.
Can I get Google AI Overviews?
Yes, via the AI Mode add-on. Set aiMode to aiModeWithSearchResults or aiModeOnly and provide serpApiKey. The aiOverview field will include text and references when available.
How do I target specific countries and languages?
Use countryCode, languageCode (HL), searchLanguage (LR), and optionally locationUule for precise local targeting. This supports GEO-specific analysis and multilingual scraping.
Can I scrape mobile results?
Yes. Set mobileResults to true to emulate mobile SERPs, useful for mobile-first SEO checks.
Can I filter by dates or file types?
Yes. Use quickDateRange (e.g., d10, w1, m3, y1), or beforeDate/afterDate as absolute (YYYY-MM-DD) or relative (e.g., "8 days", "3 months"). fileTypes accepts multiple values (e.g., pdf, csv, html).
Where do I find the HTML for debugging?
Enable saveHtml to store HTML in the dataset under html, or saveHtmlToKeyValueStore to store snapshots and link them via htmlSnapshotUrl for easy viewing.
Closing thoughts
Google Search Results Scraper is built to extract structured Google SERP data at scale. With robust proxying, precise filters, and optional AI/ads add-ons, itβs a reliable Google SERP scraper for SEO monitoring, content and market research, and automated pipelines. Marketers, developers, analysts, and researchers can export clean JSON/CSV and integrate with Python/Node.js workflows. Start extracting smarter today β and turn Google search results into actionable insights.
