How to export Google Maps results to Excel, CSV or Google Sheets
Google Maps has no export button. The manual options (saved lists, Google Takeout), the tools, the columns to keep, and Sheets formulas to clean and dedupe.
- Published
- Read time
- 7 min
- Category
- Guide
Google Maps has no button that exports search results to Excel, CSV or Google Sheets. You have three routes: save places to a list and download it with Google Takeout (you only get the name, your note and a Maps link), copy results into a sheet by hand, or use a tool that reads the results and exports a full CSV or Excel file. Whichever route you take, clean the file the same way: dedupe on the place ID, split the address, drop closed and out-of-area businesses, and keep a short set of useful columns.
Can I export Google Maps results without a tool?#
Yes, but only in a limited form. The two manual options are saved lists exported through Google Takeout, and copying by hand.
Option 1: Saved lists and Google Takeout#
You can save places to a list in Google Maps and download your lists through Google Takeout. Google's help page gives the steps (Google Maps Help):
- In Google Maps, open each business and tap Save, then pick or create a list (for example, "Tulsa plumbers").
- Go to takeout.google.com.
- Click Deselect all, then check Saved.
- Click Next step, choose the delivery method and file type, and click Create export.
- Unzip the download. Each list is a separate CSV file in a folder called Saved.
What you actually get: users report that each CSV has four columns, Title, Note, URL and Comment (ruk.ca). There's no address, phone, website, category or coordinates. The same source reports that starred places come out separately, as a GeoJSON file in the Maps (your places) export. Google doesn't document the exact columns, and the report is from 2019, so check your own export.
That's fine for a short personal list. For leads, you'd still have to open every Maps link to copy the phone and website, and saving places one by one doesn't scale past a few dozen.
Option 2: Copy by hand#
For under 50 businesses, copying is honestly the fastest:
- Make a sheet with the columns in the table below.
- Search Google Maps, open each result, and copy name, phone, website and address.
- Paste the listing's URL too. It contains the place's coordinates and identifies the listing, which helps with duplicates later.
What tools export Google Maps results to CSV or Excel?#
Most Google Maps tools export CSV and Excel. They differ in how much of the area they cover and whether they add emails.
Scroll horizontally if needed →
| Tool type | Export formats | Covers past ~120 per search? | Emails |
|---|---|---|---|
| Generic table extension (e.g. Instant Data Scraper) | CSV, XLSX | No, only what you scroll | No |
| Maps-specific extension (e.g. G Maps Extractor) | CSV, XLSX | Per search, by hand | Limited |
| Cloud scraper or API (e.g. Apify, Outscraper) | CSV, XLSX, JSON | If configured to split the area | Add-on |
| Places API to Sheets (Apps Script or code) | Sheets, CSV | Only if you tile; 60 per query | No |
| Lead tool (e.g. Leadraft) | CSV, XLSX, Google Sheets feed, CRM push | Yes, if it tiles | Usually included |
Two warnings. A single search, exported by any tool, still stops at about 120 results, which is why lists from one search look complete and aren't (why the 120 cap happens). And Google's terms restrict exporting Maps content; read our legal guide before you build lists at scale.
Which columns should I keep?#
Keep the columns you'll filter, personalize or dedupe on, and drop the rest. This is a good default for a lead list:
Scroll horizontally if needed →
| Column | Why keep it |
|---|---|
place_id (or Maps URL) | The only reliable key for deduping and for updating rows later |
name | |
category | Filter out the wrong trade; segment the message |
address, city, state, zip | Split, so you can filter by place |
lat, lng | Check a business is inside your area |
phone | Normalized to digits for matching |
website | Where emails come from |
domain | Derived from the website; dedupes chains and matches emails |
rating, reviews | Segment by reputation or size |
status | Drop permanently closed businesses |
email, email_status, email_source | If you add emails: the address, its grade (Verified, Accept-all, Invalid) and the page it came from |
If you're importing into a sequencer like Instantly or Smartlead, map name to company, email to email, and city and category to custom variables for your first line. Our guide to building a local lead list covers how to use those fields well.
How do I clean a Google Maps export?#
Clean it in this order. Each step removes rows that would waste credits or damage your sending reputation.
- Remove duplicates by place ID (or Maps URL), not by name.
- Remove permanently closed businesses.
- Drop businesses outside your area, by ZIP code or coordinates.
- Drop the wrong trade by checking the category column, not the keyword that found the row.
- Normalize phones and websites so the same business matches across files.
- Flag emails on free providers (Gmail, Yahoo) and emails whose domain doesn't match the website. Some are fine; many are the web designer's address.
- Verify every email before you send, and treat catch-all results as a maybe. See catch-all emails explained.
What Google Sheets formulas help clean the data?#
These formulas assume your data starts in row 2 with place_id in column A, name in B, website in C, phone in D, email in E and zip in F. Adjust the letters to match your sheet.
Flag duplicates so you can review them before deleting (in a helper column, filled down):
=IF(COUNTIF($A$2:A2, A2) > 1, "duplicate", "")
Keep one row per place ID in a new tab. SORTN with tie mode 2 returns the first row for each distinct value in the sort column:
=SORTN(Sheet1!A2:H, 9^9, 2, 1, TRUE)
Count unique businesses:
=COUNTUNIQUE(A2:A)
Extract the domain from the website (lowercase, without www.):
=IFERROR(REGEXEXTRACT(LOWER(C2), "^(?:https?://)?(?:www\.)?([^/?#:]+)"), "")
Normalize a phone number to digits only:
=REGEXREPLACE(D2, "[^0-9]", "")
Flag free-mail addresses:
=REGEXMATCH(LOWER(E2), "@(gmail|yahoo|hotmail|outlook|aol|icloud)\.com$")
Check the email is on the business's own domain (assuming the domain formula is in column G):
=IF(E2 = "", "", IF(REGEXEXTRACT(LOWER(E2), "@(.+)$") = G2, "own domain", "check"))
Keep only rows in your ZIP codes, with your list of ZIPs in a tab called Zips, column A:
=FILTER(A2:H, COUNTIF(Zips!A:A, F2:F) > 0)
And in Excel?#
Excel has equivalents. Use Data > Remove Duplicates and tick only the place ID column, or =UNIQUE() in Microsoft 365. For the domain, =TEXTBEFORE(TEXTAFTER(C2, "//", 1, , , C2) & "/", "/") returns the host part of a URL, and you can strip www. with SUBSTITUTE. Excel's COUNTIF duplicate flag works exactly as above.
How do I keep the sheet up to date?#
Exports go stale. Businesses close, change phone numbers and open every month. Three habits help:
- Keep the place ID in every row, so a fresh export can be matched against the old one.
- Re-run the same searches monthly or quarterly, and only add businesses whose place ID is new.
- Keep a suppression tab of businesses that asked not to be contacted, and check every new export against it with
COUNTIF.
Leadraft's monitors do the second step automatically and deliver only the new businesses. Its exports can also push to Instantly, Smartlead, lemlist and HubSpot if you'd rather skip the spreadsheet.
FAQ#
Can you export Google Maps search results to Excel?#
Not directly. Google Maps has no button to export a list of search results. You can save places to a list and download it with Google Takeout, copy results by hand, or use a tool that reads the results and exports a CSV or Excel file.
What does Google Takeout export for saved places?#
Takeout's Saved option exports each of your lists as a CSV file. Users report the columns are Title, Note, URL and Comment: no address, phone, website or coordinates. Starred places are a separate export.
How do I remove duplicate businesses in Google Sheets?#
Dedupe on the Google place ID or Maps URL, not the business name. In Google Sheets, SORTN with tie mode 2 keeps one row per value in the column you choose, and COUNTIF can flag repeats so you can review them first.
Which columns should I keep when exporting Google Maps data?#
Keep the place ID, name, primary category, address split into city, state and ZIP, latitude and longitude, phone, website, rating, review count and business status. Add email, email status and email source if you find emails on the business websites.
Can I export more than 120 results from a Google Maps search?#
Not from one search. Google Maps stops at about 120 results per search, so you have to search smaller areas and keyword variants, export each, and merge and dedupe the files.
Sources#
- Google Maps Help, Create a list of places (Export your saved lists with Google Takeout).
- Peter Rukavina, Google Maps warning: "Want to go" and "Starred places" are not the same (Takeout Saved CSV columns: Title, Note, URL, Comment), June 25, 2019.
- Google Docs Editors Help, SORTN function and REGEXEXTRACT function.
- Apify, Google Places API limits (about 120 listings per Maps search), September 23, 2025.
- Google, Google Maps Platform Terms of Service §3.2.3 and Google Maps End User Additional Terms.
Keep reading
Guide
Lead generation with Claude: MCP setup, prompts and guardrails
Use Claude for lead generation: what web search can and can't do, exact MCP setup for Claude Code, Desktop and Cursor, prompts that work, and spending guardrails.
Read articleGuide
Clay and Google Maps: what Clay's Maps source does, where it stops, and how to import a full local list
What Clay's Google Maps source returns, its 1,000-result default and no-website gaps, why teams source outside Clay, and how to import a CSV or webhook feed.
Read articleGuide
Instant Data Scraper on Google Maps: how to use it, what it captures and its limits
How to use the free Instant Data Scraper extension on Google Maps, step by step: what it captures, why it stops near 120 results with no emails, and when to upgrade.
Read article