Google Maps to Google Sheets Why IMPORTXML fails, and the free path that works

The IMPORTXML formula looks perfect for pulling business data into a spreadsheet. On Google Maps it almost never works. Here is why, and the faster way to a clean lead list in Sheets.

Key takeaways
  • IMPORTXML cannot read Google Maps because the results are drawn by JavaScript after the page loads, and the formula only sees the raw HTML
  • The reliable route: capture with a free Chrome extension, export CSV, open it in Google Sheets with clean columns ready to use
  • For an ongoing pipeline, the Vonsel dashboard keeps leads on a mapped CRM so the spreadsheet is a checkpoint, not the finish line

Why IMPORTXML looks perfect (and then breaks)

IMPORTXML is a genuinely useful Google Sheets function. Point it at a URL, give it an XPath expression, and it pulls the matching text straight into a cell. For simple, server-rendered pages it feels like magic.

Google Maps is a different animal. When you search "dentists in Madrid," the list you scroll through is not in the page that first arrives from the server. It is rendered by JavaScript in your browser a moment later, after the map loads and the results panel fills in. IMPORTXML never runs that JavaScript, so it reads an almost empty shell.

The practical result: your =IMPORTXML("https://www.google.com/maps/...", "//div") returns #N/A, an "imported content is empty" error, or a wall of unrelated markup. It is not your XPath. It is the architecture of the page.

Skip the broken formula
Capture the businesses you actually see on the map, then drop them into Sheets. The extension is free, installs in minutes, and asks for no card.
Add Chrome Extension
Free download. No trial, no credit card.
0
lines of code to move a Maps list into Google Sheets
CSV
the one file format Sheets opens without any setup
Free
the extension itself, with no trial and no card

IMPORTXML, Places API, or an extension?

There are three common ways to get Google Maps data into a spreadsheet. They are not equal. Here is the honest trade-off before you sink an afternoon into the wrong one.

MethodWorks on live Maps?Setup
IMPORTXML formulaNoFormula only, but fails on JS content
Google Places API + Apps ScriptPartialBilling, API key, scripting
Free Chrome extension + CSVYesInstall, capture, export

The Places API can technically feed Sheets through Apps Script, but it means enabling billing, managing a key, and writing code, and it returns data through its own query model rather than the exact list you were viewing. For most people building a local lead list, that is a lot of overhead. The no-API export path is simpler and gets you the same columns.

IMPORTXML is not broken. It is doing exactly what it was designed for: reading static markup. Google Maps just does not serve its results that way. Fighting the formula is fighting the wrong battle.

Capture, export, open in Sheets

The extension is the means here, not the destination. It sits in Chrome, reads the live results panel you are already looking at, and turns it into rows. Three steps take you from a Maps search to a working spreadsheet.

1. Capture the search. Run your query on Google Maps, open the Vonsel pop-up, and let it collect the businesses in view: name, phone, website, full address, category, rating, and review count. Because it reads the rendered page, it captures what you see, not an empty shell.

2. Export to CSV. One click writes a comma-separated file. If you prefer a different container, the same capture also exports to XLSX or JSON, but CSV is the one Google Sheets opens with zero friction.

3. Open it in Google Sheets. In Sheets, use File then Import then Upload, drop the CSV, and choose "Replace current sheet" or "Insert new sheet." Every field lands in its own column, already typed and ready to sort, filter, or hand to a formula. For a deeper walkthrough of the spreadsheet side, see exporting Google Maps leads to Google Sheets.

From map to spreadsheet in one sitting
Install once, capture any city or category, and export a CSV your Google Sheet opens instantly. No formulas to debug.
Add Chrome Extension
Free download. No trial, no credit card.

6 things a raw Sheet will not do for you

It will not stay fresh

A CSV is a snapshot. Businesses close, move, and change numbers. A spreadsheet has no way to know, so the list ages the moment you export it.

It will not enrich webs

Sheets shows what the map exposed. It cannot visit each business site to pull the missing email, extra phone, or social profile the way the Vonsel dashboard does.

It will not read reviews

A rating column is a number. Reviews Intelligence in the dashboard reads the actual reviews to surface pain points you can lead with in outreach.

It will not write the email

Every row still needs a message. The dashboard drafts an AI email per business, grounded in that specific lead, so you start from a draft rather than a blank cell.

It will not map territory

Latitude and longitude in columns are hard to reason about. A mapped CRM plots each lead so you can carve zones and plan a route.

It will not track status

A shared Sheet drifts into stale color coding fast. A CRM tracks contacted, replied, and won without a manual convention everyone forgets.

When to keep it in Sheets, when to go further

A spreadsheet is a great checkpoint. If you want to hand a list to a colleague, feed it to a script, or eyeball a hundred businesses quickly, CSV to Sheets is exactly right, and you can always export to CSV as often as you like.

The moment you start working the list, though, the spreadsheet becomes the bottleneck. That is where the Vonsel dashboard earns its place: the same captures land on a mapped CRM, get their websites enriched, get their reviews analyzed for Sales and Email Intelligence, and get an AI email drafted per business. You can even reopen a capture later and add more, or attach reviews to businesses you already have, so the database compounds instead of resetting each time.

Think of it as a promotion. The extension and the CSV get raw Maps data out of a dead-end page. The dashboard turns that data into a value-added database you actually sell from. And whenever scraping raises a legal question, our guide to scraping Google Maps covers what to keep in mind.

IMPORTXML gets you an error. A capture gets you a pipeline
Put Google Maps leads in Sheets the easy way
Capture, export, and import. Then let the mapped CRM take over when you are ready. See what the dashboard adds.
Add Chrome Extension
Free download. No trial, no credit card.

Frequently asked questions

Can IMPORTXML scrape Google Maps into Google Sheets?
Not reliably. Google Maps renders its results with JavaScript after the page loads, and IMPORTXML only reads the static HTML that arrives in the first response. The business names, phones, and addresses you see on the map are not in that raw HTML, so IMPORTXML usually returns an empty result or an error.
What is the easiest way to get Google Maps leads into Google Sheets?
Capture the results with a free Chrome extension, export the list as CSV, then open or import that file in Google Sheets. This avoids fragile formulas, works with the live map data you actually see, and gives you clean columns for name, phone, website, address, and rating.
Do I need the Google Places API to pull data into Sheets?
No. The Places API is one paid option that requires billing, a key, and scripting. A browser based capture followed by a CSV export gets the same fields into Sheets without writing code or setting up API billing.