Google Search Results Scraper
Pricing
from $0.60 / 1,000 search results
Google Search Results Scraper
Extract organic Google rankings, snippets, URLs, People Also Ask questions, and related searches for SEO and market research.
Pricing
from $0.60 / 1,000 search results
Rating
0.0
(0)
Developer
Hanna Nosova
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
8 days ago
Last modified
Share
Extract organic Google Search results, rankings, snippets, result URLs, People Also Ask questions, and related searches for SEO research.
Input recipes
- Small test: Start with the default input and a low result limit.
- Focused run: Use one specific public URL, query, profile, or location before expanding the input.
- Scheduled monitoring: Save the input as a task and schedule repeat runs when you need fresh data.
What does Google Search Results Scraper do?
Google Search Results Scraper turns public Google result pages into structured datasets.
Use it to monitor search rankings, collect SERP snippets, compare localized results, and discover question or related-search ideas.
The actor accepts one or more search queries and returns one dataset row for each organic result.
Each row includes the query, rank, title, URL, displayed URL, snippet, page number, locale, timestamp, and SERP context.
It is designed for repeatable SEO and market research workflows on Apify.
Who is this Google SERP scraper for?
SEO agencies use it to track client ranking positions across important keywords.
Growth teams use it to benchmark competitors and discover content opportunities.
Market researchers use it to collect the visible sources Google surfaces for a topic.
Founders use it to understand which products, directories, and articles appear for buyer-intent terms.
Content teams use People Also Ask and related searches to plan article outlines.
Local businesses can compare country-specific or language-specific search visibility.
Why use this actor?
✅ Structured output instead of manual copying from search pages.
✅ Rank numbers saved with each organic result.
✅ Locale inputs for country and language targeting.
✅ Page controls for first-page checks or deeper rank monitoring.
✅ SERP context arrays for People Also Ask and related searches.
✅ Dataset output that works with Apify API, webhooks, integrations, and exports.
Input settings
| Setting | JSON key | Type / default | Description |
|---|---|---|---|
| Queries | queries | array, default ["apify actors","best crm software"] | Google searches to run. Add keywords, brands, questions, or local-intent phrases exactly as you would type them into Google. |
| Country / GL | country | string, default "US" | Two-letter Google country code used for localized rankings, for example US, GB, DE, FR, AU. |
| Language / HL | language | string, default "en" | Google interface language code, for example en, de, fr, es, it. |
| Results per query | numResults | integer, default 10 | Maximum organic results to save per query. Use 10 for a quick first run; increase for rank monitoring across pages. |
| Start page | startPage | integer, default 1 | First Google results page to scrape. Page 1 starts at rank 1; page 2 starts around rank 11. |
| Maximum pages per query | maxPages | integer, default 1 | How many Google pages to open for each query. The actor stops earlier when it reaches Results per query. |
| Include People Also Ask | includePeopleAlsoAsk | boolean, default true | Save visible question suggestions from Google SERPs when present. |
| Include related searches | includeRelatedSearches | boolean, default true | Save visible related search suggestions from Google SERPs when present. |
| Proxy configuration | proxyConfiguration | object, default {"useApifyProxy":true,"apifyProxyGroups":["GOOGLE_SERP"]} | Optional Apify Proxy settings. The default uses Apify's GOOGLE_SERP proxy group for stable Google result-page downloads. |
Output fields
| JSON key | Type | Description |
|---|---|---|
query | string | Search query that produced the row. |
rank | integer | Organic Google rank for the result. When startPage is 2, ranks start around 11. |
title | string | Result title shown by Google. |
url | string | Destination URL after Google redirect cleanup. |
displayUrl | string or null | Displayed URL/citation text when present. |
snippet | string or null | Visible result snippet when present. |
resultType | string | Currently organic. |
page | integer | Google results page number that produced the row. |
peopleAlsoAsk | string[] | Visible People Also Ask questions from the same SERP page. |
relatedSearches | string[] | Visible related-search suggestions from the same SERP page. |
timestamp | string | ISO timestamp when the page was processed. |
country | string | Google gl country code used for the run. |
language | string | Google hl language code used for the run. |
searchUrl | string | Google Search URL requested for the page. |
Pricing
This Actor uses pay-per-event pricing configured in .actor/actor.json.
| Event | Price | Charged when |
|---|---|---|
Start (start) | $0.005 per event | One-time fee per run |
Search result (result) | $0.001 per event at Bronze, about $1.00 per 1,000 events | Per organic Google result saved to the dataset |
Store discount tiers for saved search results:
| Tier | Price per result |
|---|---|
| Free | $0.00115 |
| Bronze | $0.00100 |
| Silver | $0.00078 |
| Gold | $0.00060 |
| Platinum | $0.00040 |
| Diamond | $0.00028 |
Quick start
-
Open the actor on Apify.
-
Enter your search queries.
-
Choose country and language.
-
Set the number of results per query.
-
Keep the first test small.
-
Run the actor.
-
Download the dataset as JSON, CSV, Excel, XML, or HTML.
Input: queries
Add search terms exactly as you want Google to process them.
Examples:
-
apify actors -
best crm software -
pizza near me -
site:example.com pricing -
content marketing agency london
Each query is processed independently.
Input: country and language
Use country for Google country localization.
Use language for the Google interface language.
Common examples:
-
USanden -
GBanden -
DEandde -
FRandfr -
ESandes
Localized rankings can differ significantly, so keep these fields consistent for monitoring.
Input: result limits
numResults controls the maximum organic results saved per query.
startPage controls the first Google page to open.
maxPages controls how many pages can be opened per query.
For example, numResults = 20, startPage = 1, and maxPages = 2 checks roughly the first two SERP pages.
The actor stops early when it reaches the requested number of results.
Input: SERP blocks
Enable includePeopleAlsoAsk to attach visible questions from the result page.
Enable includeRelatedSearches to attach visible related-search suggestions.
These values are page-level context and are repeated on result rows from the same page.
They are useful for content briefs and keyword expansion.
Input: proxy configuration
Google Search can be sensitive to automated access.
For the most stable runs, use Apify Proxy and match the proxy country to your country input.
Start with small jobs before running large batches.
If Google returns a challenge, reduce volume, use a suitable proxy group, and keep locale settings consistent.
Example input
{"queries": ["apify actors","best crm software"],"country": "US","language": "en","numResults": 10,"startPage": 1,"maxPages": 1,"includePeopleAlsoAsk": true,"includeRelatedSearches": true,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["GOOGLE_SERP"]}}
Output example
{"query": "apify actors","rank": 1,"title": "Apify Store","url": "https://apify.com/store","displayUrl": "https://apify.com › store","snippet": "Browse ready-made web scraping and automation actors.","resultType": "organic","page": 1,"peopleAlsoAsk": ["What is an Apify actor?"],"relatedSearches": ["apify actor examples"],"timestamp": "2026-06-18T06:00:00.000Z","country": "US","language": "en","searchUrl": "https://www.google.com/search?q=apify+actors"}
Tips for best results
Keep the first run small.
Use one country and language pair per monitoring workflow.
Avoid mixing very broad and very specific queries in the same cost test.
Use stable query wording if you compare ranks over time.
Export datasets to CSV for spreadsheets or JSON for automation.
Common SEO workflows
Track weekly keyword positions for a client.
Compare first-page competitors for buyer-intent terms.
Collect snippets for messaging research.
Find People Also Ask questions for article briefs.
Discover related searches for keyword expansion.
Check how results differ by country or language.
Integrations
Send finished datasets to Google Sheets through Apify integrations.
Trigger Slack notifications when a run completes.
Store historical rankings in a database.
Connect webhooks to a reporting pipeline.
Use Make, Zapier, or custom API scripts to schedule repeat checks.
API usage
Run Google Search Results Scraper from your own code with the Apify API.
Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const input = {"queries": ["apify actors","best crm software"],"country": "US","language": "en","numResults": 10,"startPage": 1};const run = await client.actor('fetch_cat/google-search-results-scraper').call(input);const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python
from apify_client import ApifyClientimport osclient = ApifyClient(os.environ["APIFY_TOKEN"])run = client.actor("fetch_cat/google-search-results-scraper").call(run_input={"queries": ["apify actors","best crm software"],"country": "US","language": "en","numResults": 10,"startPage": 1})items = client.dataset(run["defaultDatasetId"]).list_items().itemsprint(items)
cURL
curl -X POST "https://api.apify.com/v2/acts/fetch_cat~google-search-results-scraper/runs?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"queries":["apify actors","best crm software"],"country":"US","language":"en","numResults":10,"startPage":1}'
Use with AI agents via MCP
Google Search Results Scraper can be used by AI assistants through the hosted Apify MCP server.
Claude Code setup
$claude mcp add --transport http apify "https://mcp.apify.com?tools=fetch_cat/google-search-results-scraper"
Claude Desktop, Cursor, or VS Code JSON config
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=fetch_cat/google-search-results-scraper"}}}
Example prompts
- "Run Google Search Results Scraper with this input JSON and summarize the dataset."
- "Export the latest Google Search Results Scraper results to a table I can review."
- "Schedule this Actor for monitoring and tell me what changed between runs."
Scheduling
Create an Apify schedule to run the same keyword set daily, weekly, or monthly.
Keep query lists small enough for your monitoring cadence.
Store each run's dataset ID if you want historical rank comparisons.
Data quality notes
Google result pages vary by country, language, device, time, and personalization controls.
The actor disables personalized search with the public search parameters it controls.
SERP layouts can change, so optional blocks may be missing on some pages.
Ranks refer to extracted organic results, not ads or every visual module.
Troubleshooting: no results
If a run saves no results, Google may have returned a consent page, empty page, or automation challenge.
Try a smaller input first.
Use Apify Proxy with a country that matches your locale.
Avoid unusually high page counts during early testing.
Troubleshooting: localized results look unexpected
Confirm the country and language inputs.
Use two-letter country codes such as US, GB, or DE.
Use language codes such as en, de, or fr.
Remember that Google can still vary results based on availability and current SERP experiments.
Legal and ethical use
This actor extracts public search result information.
Use it responsibly and respect applicable laws, platform terms, and privacy requirements.
Do not use scraped data for spam, credential collection, or abusive automation.
If you process personal data, ensure you have a lawful basis and appropriate safeguards.
Related actors
- Bing SERP & Search Results Scraper
- DuckDuckGo Search Results Scraper
- Google Ads Transparency Scraper
- Google Autocomplete Scraper
- Google News Scraper
FAQ
Does this scrape paid ads?
Not in v1. The first version focuses on organic Google results and visible SERP context.
Can I scrape multiple countries?
Run separate jobs for separate countries to keep outputs easy to compare.
Can I get more than 10 results?
Yes. Increase numResults and maxPages.
Why do ranks change between runs?
Google rankings are dynamic and can vary by time, locale, device, and SERP experiments.
Can I schedule recurring rank checks?
Yes. Use Apify schedules and store the output dataset from each run.
What export formats are supported?
Apify datasets can be exported as JSON, CSV, Excel, XML, RSS, or HTML.
Is a proxy required?
A proxy is recommended for reliable Google SERP scraping, especially for repeated or localized runs.
How should I start?
Use one query, US, en, and 10 results. Review the output before scaling.
Support
Report bugs, wrong output, blocked runs, or missing fields from the Actor page. Include the Apify run ID or run URL, your input JSON, what you expected, what the Actor returned, and one reproducible public URL so the issue can be tested quickly.