

It queries the Google search engine by keyword and returns a structured SERP summary, including the final search parameters, organic results, related queries, and people-also-ask data.
A unified Google SERP data extraction tool that queries Google by keyword and outputs structured organic results. With CoreClaw, you can extract titles, URLs, snippets, related queries, and People Also Ask data without writing any code — ideal for SEO research, competitive analysis, keyword monitoring, and market intelligence.
| 📝 Organic Result | 🔍 SERP Features | ⚙️ Request Metadata |
|---|---|---|
| 🌐 URL & Domain | 💬 People Also Ask | 📅 Timestamp |
| 🏷️ Highlighted Terms | 🔗 Related Queries | 📍 Geo-Location |
| 📊 Page Position |
CoreClaw Google Search Scraper handles request scheduling, pagination, and result delivery for you. Follow these steps:
| Parameter | Type | Default | Description |
|---|---|---|---|
| keyword | string | pizza | Required. Search keyword. A full Google search URL is also accepted — the builder will extract supported parameters from it when possible. |
| max_pages | string | 1 | Maximum number of Google SERP pages to fetch. Each page is streamed out as soon as it arrives. Pagination starts at offset 0 and advances by 10 per page (e.g.max_pages=3 → start=0, 10, 20). Minimum 1; no hard upper bound, but Google rarely returns useful results beyond ~10 pages. |
| domain | string | https://www.google.com/ | Google domain used during scraping. Supports 200+ country-specific domains (google.co.uk, google.de, google.co.jp, etc.). |
| gl | string | us | Region setting for search results using a two-letter country code (e.g. us, uk, de, jp). |
| hl | string | en | Interface language for Google search results. Uses standard language codes (e.g. en, zh-cn, es, fr). |
| cr | array | — | Restricts results to one or more countries or regions. Values are joined with |, e.g. countryFR|countryDE. |
| lr | array | — | Restricts results to one or more languages. Values use lang_XX format, joined with |, e.g. lang_fr|lang_de. |
| location | string | — | Geographic location text used to simulate local search context. |
| tbs | string | — | Advanced Google search filters, such as time range or search-vertical filters. |
| safe | string | off | Adult-content filtering mode. Supported values:active and off. |
| nfpr | string | 0 | Controls spelling auto-correction. Set to 1 to disable Google auto-correction. |
| filter | string | 0 | Enables or disables Google's duplicate-like result filtering. |
Example 1: Basic keyword search
OpenAIExample 2: Multi-page scraping
best coffee shops NYCExample 3: Local search with region
restaurantshttps://www.google.co.uk/gbenLondon, United KingdomExample 4: Advanced time filter
AI newsqdr:w (past week)Results are organized in a flat table format — one row per organic result. Search-level fields (keyword, geo settings, related queries) are repeated on every row. The position field is a continuous global rank across all pages (page 1 → positions 1..N, page 2 starts at N+1, etc.).
| Group | Key Fields | Description |
|---|---|---|
| 📝Organic Result | position, title, source_name, display_url, url, clean_url, root_domain, snippet, highlighted_terms, image_alt, favicon_url | Individual search result content and metadata |
| 🌐URL Info | url, clean_url, root_domain, redirect_url | Resolved URL, canonical URL, root domain, and Google redirect URL |
| 🔍SERP Features | related_queries, people_also_ask | Related queries and People Also Ask blocks (repeated on each row) |
| 🔎Search Context | keyword, current_page, google_domain, country, language, geo_location, safe_search, search_url | Request parameters and search configuration |
| 📊Statistics | results_count_collected, results_total_text, scraped_at | Collected count, total results estimate, and timestamp |
| Field | Type | Description |
|---|---|---|
keyword | string | Search keyword used for the request. |
current_page | number | Current SERP page number. |
start_position | number | Result offset used for the request. |
google_domain | string | Google domain used for the search request. |
country | string | Country parameter from the search request. |
language | string | Language parameter from the search request. |
geo_location | string | Resolved geo-location value from location or uule. |
safe_search | string | Safe search mode (off or active). |
exclude_autocorrected_results | boolean | Whether auto-corrected results are excluded. |
results_filtering | string | Google result filtering mode. |
scraped_at | string | Scrape timestamp in ISO 8601 format. |
search_url | string | Requested Google search URL. |
results_count_collected | number | Number of organic results collected on the current page. |
results_total_text | string | Raw total-results text from Google. |
related_queries | array | Related query records (see nested fields below). |
position | number | Continuous global organic-result rank across all streamed pages. |
title | string | Organic result title. |
source_name | string | Organic result source name. |
display_url | string | Google display URL shown in the result. |
url | string | Resolved organic result URL. |
clean_url | string | Canonical URL without query string or fragment. |
root_domain | string | Root domain extracted from the organic result URL. |
redirect_url | string | Google redirect URL for the organic result. |
snippet | string | Organic result snippet text. |
highlighted_terms | string | Comma-separated highlighted terms from the snippet. |
image_alt | string | Image alt text for the organic result. |
has_image | boolean | Whether the organic result includes image metadata. |
favicon_url | string | Favicon URL from the organic result. |
people_also_ask | array | People Also Ask records (see nested fields below). |
related_queries| Field | Type | Description |
|---|---|---|
block_position | number | Related-query block position in the SERP. |
topic_title | string | Related query title text. |
related_search_url | string | Google search URL for the related query. |
item_position | number | Item position inside the related query block. |
people_also_ask| Field | Type | Description |
|---|---|---|
position | number | Position in the People Also Ask list. |
question | string | Question text. |
answer | string | Answer or snippet text when available. |
source_url | string | Source URL for the answer when available. |
It queries Google SERP by keyword and returns structured organic results with 22+ fields per row. Each row includes the result title, URL, snippet, root domain, highlighted terms, and its continuous global position. Search-level context (keyword, country, language, related queries, People Also Ask) is repeated on every row.
0 and advances by 10 per page (Google's default SERP page size).max_pages=3 → requests are issued with start=0, 10, 20.The final output row count equals the total organic results returned across all fetched pages. For example, if 3 pages return 10 / 8 / 7 organic results, the scraper pushes 25 rows.
CoreClaw supports 8 export formats:
| Format | Best For | Description |
|---|---|---|
| JSON | Programming / API integration | Preserves full nested structure |
| CSV | Spreadsheet analysis | Import directly into Excel, Google Sheets |
| JSONL | Streaming / line-by-line processing | One JSON object per line, ideal for big data pipelines |
| XLS | Legacy Excel compatibility | Excel 97-2003 format |
| XLSX | Modern Excel | Native Excel format with formatting and formulas |
| HTML Table | Web display / reports | Rendered HTML table for embedding in pages or emails |
| XML | Enterprise / legacy integration | Standard markup for SOAP APIs and enterprise data exchange |
| RSS | Feed readers / monitoring | Structured subscription format for tracking updates |
Recommended: JSON for data pipelines, CSV/XLSX for manual analysis, JSONL for streaming large datasets.
| Parameter | Default Value |
|---|---|
| domain | https://www.google.com/ |
| gl | us |
| hl | en |
| safe | off |
| nfpr | 0 |
| filter | 0 |
| max_pages | 1 |
Each page-level request is retried up to 3 times on the same URL. If a page still fails after retries, that page is recorded as a failure and the loop continues with the next page. Only when all pages fail is the run treated as a failure overall. Partial results from successful pages are preserved.
Yes. The keyword parameter accepts a full Google search URL. The builder will extract supported parameters (keyword, country, language, etc.) from the URL automatically.
Explore more popular scrapers from our marketplace
by Kael Odin
Dedup Datasets Worker is a powerful tool for merging and deduplicating datasets from multiple JSON/JSONL files. Fully optimized for the CafeScraper platform with enhanced features and robust error handling.
by Kael Odin
A powerful Google Sheets data import export tool designed for data synchronization, backup, and integration between Google Sheets and external systems. Supports three operation modes, two authentication methods, batch processing, data deduplication, and automatic backup.
by Kael Odin
A high-speed static page scraper based on Cheerio, designed specifically for static HTML pages. Uses Cheerio for HTML parsing, delivering speeds 10-50 times faster than full browser rendering.
by Kael Odin
A powerful cross-browser web scraping tool using Playwright for complete browser rendering. Supports Chromium, Firefox, and WebKit browser engines. Perfect for dynamic pages, single-page applications (SPAs), infinite scroll pages, and cross-browser testing scenarios.