If you need to export Google reviews to CSV, you have probably already discovered the awkward truth: Google gives businesses a dashboard for reading reviews one at a time, but no button that says "download them all". The official API caps you at five reviews per place. Copy-pasting a few hundred reviews by hand is a day of work that produces a messy file. And the reviews you most want to read — your competitor's 1-star reviews, the recurring complaint about your Bangkok branch, the exact phrasing customers use for your best dish — are locked behind an infinite-scroll panel that resets every time you close it.
This guide covers the three ways to get Google reviews into a spreadsheet, what each one costs in time and money, which columns you actually need for analysis, and how to turn the resulting file into decisions rather than a folder of CSVs nobody opens.
Why exporting Google reviews is worth the effort
Reviews are the single largest body of unsolicited customer feedback most local businesses will ever receive, and they are unusually honest because the reviewer is writing for other customers, not for you. BrightLocal's annual Local Consumer Review Survey has consistently found that the overwhelming majority of consumers read online reviews for local businesses before choosing one, and that star rating and recency are among the top factors in that choice. Academic work points the same direction: Michael Luca's Harvard Business School study on Yelp ratings found that a one-star rating increase produced a measurable revenue increase for independent restaurants. Reviews are not vanity metrics; they are demand.
Reading them in the Maps panel, though, is close to useless for analysis. You cannot sort, you cannot count, you cannot filter to the twelve reviews that mention "parking", and you certainly cannot compare 400 of your reviews against 900 of a competitor's. A spreadsheet fixes all of that in one step. Once every review is a row with a rating column and a date column, questions that were unanswerable become pivot tables:
- What percentage of our reviews are 1-star, and is that share rising or falling quarter over quarter?
- Which words appear most often in 1–2 star reviews but rarely in 4–5 star ones? That difference is your complaint list, ranked.
- How many reviews did we get per month over the last two years — our review velocity — and did it drop after the renovation?
- Which reviews did we never reply to? Response rate is measurable the moment the owner-reply column exists.
- What do our competitor's 5-star reviewers praise that ours never mention?
Method 1: The Google Places API (fast to start, capped at 5 reviews)
The developer route is the first thing most people try. Google's Place Details endpoint accepts a place ID and returns structured data about the place — name, address, rating, opening hours, and a reviews array.
The catch is in that array. Place Details returns at most five reviews for a place, and there is no cursor or page token to reach the sixth. It is not a rate limit you can pay to lift; it is the documented shape of the response. Google positions the field as a sample intended for displaying a taste of reviews inside an app, not as a data-export mechanism.
That makes the API genuinely useful for a narrow set of jobs — showing a few recent reviews on your own website, checking a place's current average rating in a script, enriching a location database — and useless for reputation analysis, because five reviews out of 900 tell you nothing about trends, complaints or velocity. You also need a Google Cloud project with billing enabled, and requesting the reviews field puts the call into a higher-cost billing SKU; see Google's usage and billing documentation for the current rates.
There is a second API worth knowing about. The Business Profile API can return every review for a location — with pagination — but only for locations your Google account has verified ownership of. If you manage 40 restaurant locations and want your own review history in a warehouse, that is the correct tool and it is free to call. It cannot see a competitor, and getting through the API access request plus OAuth setup is a project measured in days, not minutes.
Method 2: Copy and paste (free, and a trap)
The manual route is: open the reviews panel, scroll, select, paste into a spreadsheet, repeat. It works for twenty reviews. Past that it fails in specific, predictable ways.
The star rating does not paste as a number — it comes through as an image or as nothing at all, so you end up retyping ratings by hand, which is where errors enter. Relative dates paste as "3 months ago", which is unsortable and becomes wrong the moment the file ages. Multi-paragraph reviews break your row structure the first time a line break lands mid-cell. Non-English reviews paste in the original language with no translation. Owner replies paste as if they were separate reviews. And the infinite-scroll panel silently unloads earlier reviews as you scroll, so a long session quietly loses rows you already collected.
Budget realistically: at a genuinely fast 20 seconds per review including cleanup, 500 reviews is nearly three hours of mind-numbing work that produces a file you do not fully trust. For a one-off snapshot of a competitor with 30 reviews, paste away. For anything you plan to repeat monthly, it is the most expensive method on this list.
Method 3: A Google Maps place-link exporter (every review, one paste)
The third route reads the same public review feed that your browser loads when you open the reviews panel, pages through all of it, and writes the result to a file. No Cloud project, no OAuth, no API key, no five-review ceiling.
The workflow with the Google Reviews exporter is:
- Copy the place link. On Google Maps, open the business, click Share, then Copy link. You get a short
maps.app.goo.glURL. The longgoogle.com/maps/place/…URL from the address bar works too, as long as it still contains the place identifier — which it does whenever you copy it from an actual place page. - Paste and export. Drop the link into the box and click Export. The tool resolves the place, shows the business name, address, category, average rating and total review count, then starts collecting.
- Check the free sample. Before paying anything, download the sample file. It carries every column the full export does, so you can confirm the shape works with your spreadsheet or BI tool.
- Download as CSV, Excel or JSON. CSV and Excel open cleanly in Excel, Google Sheets, Numbers and Looker Studio. JSON preserves the nested structure for scripts.
The first 100 reviews of any place are free with no signup. Beyond that it is $1 per 100 reviews as a one-time payment, or a $14 3-Day Pass covering unlimited places up to 10,000 reviews each. There is no subscription, and multi-location work usually fits inside a single pass.
What is actually in the exported file
A review export is only as useful as its columns. Star rating and text are the obvious two; the ones people forget to ask for are the ones that answer the interesting questions later.
- Star rating — as a number, in its own column, so
AVERAGE()and filters work immediately. - Review text and English translation — the original language exactly as written, plus Google's machine translation in a separate column when one exists.
- Language code — lets you segment tourist reviews from local ones, which for hospitality is often the single most revealing cut in the file.
- Publish date and last-updated date — real timestamps, not "a year ago", so you can chart review velocity by month.
- Owner reply and reply date — the response-rate audit column. Empty means nobody answered.
- Photo count and photo URLs — reviews with photos carry more weight with readers; they are also where you find the pictures of the actual problem.
- Reviewer name, profile URL, lifetime review count, photo count, Local Guide status and level — credibility signals. A 1-star from a Level 8 Local Guide with 600 reviews reads very differently from a 1-star from a one-review account.
- Review URL and review ID — a stable link back to the original review, so you can act on a specific row and de-duplicate across monthly exports.
Turning the file into decisions
Once the CSV opens, four analyses pay for themselves quickly.
1. The complaint frequency list
Filter to ratings of 1 and 2. Read fifty of them and write down every distinct complaint. Then use COUNTIF with a text match to count how often each complaint phrase appears across the whole file. You now have your complaint list ranked by frequency rather than by how loudly the last angry customer wrote. In our experience the ranking is almost always a surprise: the thing management worries about is rarely the thing customers write about most.
2. Review velocity and rating drift
Make a pivot table of count-of-reviews by month, and a second one of average rating by month. A dip in velocity often precedes a rating problem; a slow rating drift with steady volume usually means a process changed — new supplier, new shift manager, new menu. Because the export carries real dates, you can line these charts up against the date you changed something.
3. Response-rate audit
Add a column: does the owner-reply cell contain text? Average it and you have your true response rate. Filter to unanswered 1-star reviews from the last 90 days and you have your work queue, sorted by how much damage each one is doing.
4. Competitor comparison
Export two or three competitors the same way and stack the files with a "business" column. Compare average rating, 1-star share, review velocity, and — the useful one — the words that appear in their 5-star reviews but not in yours. That gap is your positioning brief, written by their own customers.
If you want the reading done for you, a paid pass adds AI analysis over the exported rows: themes, sentiment and summary across every language in the file at once. The same approach applies to social comments, and the method transfers directly — see how to analyze Facebook comments and comment sentiment analysis for brands.
Multi-location and agency workflows
Managing more than one location changes the shape of the job. Two habits make it manageable:
Export on a fixed cadence and keep the files. One export per location per month, named reviews-<location>-<YYYY-MM>.csv. Because every row has a stable review ID, you can concatenate months and de-duplicate to build a growing history without double-counting. That history is what makes "is this getting better?" answerable.
Stack locations into one file with a location column. One pivot then compares every branch on rating, volume and complaint mix. Outliers become obvious — and outliers are where the money is, because a single underperforming branch usually has one fixable cause that shows up verbatim in a dozen reviews.
Agencies reporting to clients get a third benefit: an exported CSV is evidence. "Complaints about wait time fell from 31% of negative reviews to 12% after the new scheduling system" is a slide that survives scrutiny, because the underlying rows are attached.
Rules to follow when you export
Exporting public reviews for analysis is ordinary research, but three lines matter.
First, do not republish reviews as marketing testimonials without permission. The review belongs to its author, and Google's contributed-content policies govern what appears on the platform. Quoting a review in a report is fine; putting a reviewer's name and photo on your homepage is a different act.
Second, treat reviewer names, avatars and profile links as personal data. Under GDPR and similar regimes, you need a lawful basis to store it, you should not keep it longer than you need it, and you should not enrich it against other datasets to identify individuals. For most reputation analysis you can drop the reviewer columns entirely once the export is done and lose nothing.
Third, never let review analysis slide into review manipulation. Google's prohibited and restricted content policy for reviews forbids incentivised, fake and gated reviews. Reading your reviews to fix the thing customers complain about is the entire legitimate use of this data; buying reviews to bury the complaint is how listings get penalised.
Common problems and fixes
"That link doesn't identify a place." You pasted a Maps URL with only coordinates — the /maps/place/<Name>/@lat,lng form that appears after a search. Open the actual business page and use Share → Copy link instead; that link always carries the place identifier.
The total count is higher than the rows I got. Google's headline review count includes ratings left with no text, and the number drifts as reviews are added and removed. A small gap between the count and the exported rows on a very large place is normal; a large gap usually means the export was capped by the free tier or a pass limit.
Dates look wrong in Excel. The export writes ISO timestamps. Select the column and format it as a date, or in Google Sheets use Format → Number → Date time. Do not let Excel guess on import; choose the column type explicitly.
Non-Latin text shows as symbols. The CSV is UTF-8. Excel on Windows sometimes needs Data → From Text/CSV with the encoding set to UTF-8 rather than double-clicking the file. Google Sheets and the Excel export format handle it without ceremony.
Summary
Google gives you three doors. The Places API is fast to call and returns five reviews, which is a demo, not a dataset. The Business Profile API returns everything but only for locations you own, after an access-request project. Copy-paste is free and costs you a day. For every other case — competitor research, multi-location reporting, a rating that dropped and nobody knows why — paste the Maps share link into the Google Reviews exporter, take the free first 100 rows, and start sorting by the rating column. Related reading: why the Places API only returns 5 reviews · export Facebook comments to Excel · export YouTube comments to Google Sheets.
