This tutorial shows how to scrape Google Maps leads by keyword into a local CSV using the Google Maps Leads Scraper by Keywords template for UScraper. You will prepare keyword result place URLs, import the workflow, set the export path, run a small validation batch, and review the output before using it for local-business research.
Prerequisites
Before you scrape Google Maps leads
You need UScraper installed as a local desktop app, the free template from the UScraper template library, a short list of Google Maps place URLs collected from keyword and location searches, and a folder for CSV exports. Start with three to five URLs; the first run is for validation, not scale.
The template does not perform the local search by itself. Search a query such as dentists in Miami, open the relevant place pages, copy approved place URLs, then let UScraper extract the deeper profile fields.
Scraping visible business data is still a compliance decision. Review the current Google Maps Platform terms, avoid bypassing access controls, keep batches modest, and get legal advice before using exported leads for sales outreach, resale, or automated enrichment.
Workflow
How the Google Maps lead scraper works
The workflow is compact: Set Window Size, Navigate, Wait for Page Load, Sleep, Wait for Element, Structured Export, then Loop Continue. Navigate holds the place URLs, waits let the dynamic profile panel render, Structured Export writes the CSV row, and Loop Continue advances to the next URL.
Export shape
What the CSV contains
The export is intentionally wide because Google Maps lead research is rarely just a name and phone number. Sales teams need contacts, local SEO teams need ratings and categories, and researchers need identifiers for deduplication.
| Field group | Example columns | How to use it |
|---|---|---|
| Search context | keyword, page_url | Trace each row back to the keyword batch and source page |
| Business profile | title, category, description, current_status | Filter by business type and profile completeness |
| Reputation | reviews, review_points, popular-times columns | Compare activity and local demand signals |
| Contact data | website, phone, address, city, state, country | Build a reviewed lead sheet before CRM import |
| Location and IDs | latitude, longitude, plus_code, google_id, place_id | Dedupe rows and map coverage by territory |
| Media and hours | main_image, image_1, open_time, weekday hour columns | Add context for audits, listings checks, or manual review |
Because there is no CSV sample bundled with the template package, treat the workflow JSON as the authoritative output definition. The key export settings look like this:
{
"block_type": "process",
"title": "Structured Export",
"config": {
"rowSelector": "body",
"fileName": "google-maps-scraper-store-details-by-keyword.csv",
"includeHeaders": true,
"fileMode": "append",
"columns": [
{ "name": "keyword", "attribute": "text", "isJs": true },
{ "name": "title", "attribute": "text", "isJs": true },
{ "name": "reviews", "attribute": "text", "isJs": true },
{ "name": "review_points", "attribute": "text", "isJs": true },
{ "name": "website", "attribute": "text", "isJs": true },
{ "name": "phone", "attribute": "text", "isJs": true }
]
}
}
Runbook
How to scrape Google Maps by keyword
Import the workflow
Open the Google Maps Leads Scraper by Keywords template, download the JSON, and import it.
Build a small URL list
Search Google Maps by keyword and location, then paste a few approved place-detail URLs into Navigate.
Confirm waits
Keep the page-load wait, sleep, and visible title check to reduce sparse rows.
Set the export folder
Confirm the CSV name, local save location, headers, and append mode.
Run and validate
Run one to three URLs and compare key fields against the browser.
Scale gradually
Add more URLs after the test rows are clean. Save separate CSVs by city or campaign.
Quality checks
Validate the lead export
Before importing the CSV into a CRM, sort by page_url, google_id, place_id, website domain, and phone number. A clean dataset has one row per input URL and source links you can reopen.
| Symptom | Likely cause | Fix |
|---|---|---|
Empty title | The place detail page did not fully load | Handle consent, extend waits, and rerun a single URL |
Blank phone or website | The profile does not expose that field | Leave it blank or enrich manually from the business site |
| Wrong city or state | Address format differs by locale | Adjust parsing for that market before scaling |
| Duplicate rows | Append mode reused an old file or input URLs repeated | Dedupe by page_url, google_id, phone, and website |
| Sparse image fields | Maps did not render those modules | Treat them as optional enrichment |
Alternatives
UScraper vs API and hosted scraper options
Use the official Places API for products and dashboards that need stable contracts. Use hosted scraper tools for scheduling and cloud throughput. Use UScraper for analyst-led research where you inspect loaded pages, control the local CSV path, and avoid writing a scraper from scratch.
FAQ
Common questions about Google Maps lead scraping
Google Maps can show public business information, but automated collection may still be restricted by Google terms, privacy law, database rights, copyright, and local data-use rules. Use modest batches, avoid bypassing access controls, and get legal review before commercial use.
Next step
Download the template and run one keyword batch
Use the Google Maps Leads Scraper by Keywords template as the download path, then test one keyword and location before widening the URL list. For related workflows, browse all UScraper templates or read more tutorials in the UScraper blog.

