Google Search Results Scraper avatar

Google Search Results Scraper

Pricing

$19.99/month + usage

Go to Apify Store
Google Search Results Scraper

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

Scraply

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

20 days ago

Last modified

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 fieldDescriptionExample value
searchQuery.termFull query string sent to Google (includes applied filters)"site:example.com "best laptops" intitle:"review""
searchQuery.urlFinal SERP URL for the page"https://www.google.com/search?q=best+laptops&hl=en&gl=us"
searchQuery.deviceDevice used for the query"DESKTOP"
searchQuery.pagePage number of the SERP1
searchQuery.typeQuery type"SEARCH"
searchQuery.domainSearch engine domain"google.com"
searchQuery.countryCodeCountry code used (GL)"US"
searchQuery.languageCodeInterface language (HL)"en"
searchQuery.locationUuleUULE code if provided"w+CAIQICISU2FuIEZyYW5jaXNjbw"
searchQuery.resultsPerPageCount of unique organic results collected so far10
urlFinal SERP URL for the page"https://www.google.com/search?q=..."
hasNextPageWhether a β€œNext” page exists and is within configured max pagestrue
serpProviderCodeProvider code identifier"O"
resultsTotalParsed β€œAbout X results” count (if available)125000000
relatedQueriesRelated query suggestions (array of { title, url })[{"title":"best laptops 2026","url":"https://www.google.com/search?q=best+laptops+2026&hl=en&gl=us"}]
organicResultsOrganic 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}]
paidResultsGoogle 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}]
paidProductsShopping/product tiles with prices[{"title":"Laptop Pro 15","displayedUrl":"store.example.com","prices":["$1,299"]}]
peopleAlsoAskPAA 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}]
suggestedResultsSuggested 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}]
aiOverviewOptional AI Overview (when AI Mode + SerpApi key enabled){"text":"AI summary...","references":[{"title":"Example","url":"https://example.com"}]}
customDataAdd-on configurations summary{"perplexitySearch":{"enablePerplexity":false,"searchRecency":null,"returnImages":false,"returnRelatedQuestions":false},"chatGptSearch":{"enableChatGpt":false},"maximumLeadsEnrichmentRecords":0,"leadsEnrichmentDepartments":[]}
htmlSnapshotUrlKey to HTML snapshot in key-value store when enabled"query_20260413_101500_p1.html"
htmlFull 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

  1. Create or log in to your Apify account.
  2. Open the Google Search Results Scraper actor on the Apify platform.
  3. 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.
  4. Set result volume:
    • resultsPerPage (1–100)
    • maxPagesPerQuery (each page β‰ˆ 10 organic results)
  5. Configure targeting:
    • countryCode, languageCode, searchLanguage, and optional locationUule for precise local SERPs.
  6. Apply filters (optional):
    • forceExactMatch, site/relatedToSite, wordsInTitle/wordsInText/wordsInUrl, quickDateRange, beforeDate, afterDate, fileTypes.
  7. 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.
  8. 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.
  9. 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 caseDescription
SEO monitoring & rank trackingCollect organicResults with positions to monitor keyword coverage and SERP movements over time.
PPC landscape analysisExtract paidResults and paidProducts for competitive ad intelligence in target geographies and devices.
Content & topic researchUse relatedQueries, peopleAlsoAsk, and suggestedResults to map search intent and content gaps.
Local SEO auditingApply countryCode, searchLanguage, and locationUule to analyze localized SERPs and map-pack visibility.
AEO/GEO benchmarkingEnable AI Mode and compare aiOverview with Perplexity/ChatGPT add-ons to audit answer engines.
Market & pricing intelCapture 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.

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.