This tutorial shows how to scrape Google Maps reviews by reviewer into CSV with the Google Maps Reviews Scraper by Reviewer template for UScraper. You will import the workflow, add contributor /reviews URLs, set the export path, validate rows, and handle common cases where Google Maps hides, throttles, or changes review cards.
Before you start
Prerequisites and policy checks
You need UScraper installed as a local desktop app, one or more Google Maps contributor profile URLs that end in /reviews, and a local folder for CSV exports. Start with one reviewer profile. Google Maps can vary by language, session, sign-in state, contributor privacy settings, throttling, and the side-panel layout shown to your browser.
This workflow is for supervised exports from pages you can open and inspect manually. It is not a CAPTCHA bypass, login bypass, private-account extractor, or permission shortcut. Google Help explains that reviews, photos, and ratings can appear as public Maps contributions, but users can also manage who finds some profile content. Review Google's Maps profile visibility help and Maps Platform terms before collecting review text, profile links, owner replies, or reviewer history at scale.
Technical visibility is not consent to reuse. Keep batches modest, document your purpose, avoid access-control bypassing, and get legal review before publishing, reselling, contacting reviewers, or training models on exported review content.
Workflow anatomy
What the Google Maps contributor reviews scraper does
The companion JSON is the source of truth. Its graph follows a simple path: Navigate -> Wait for Page Load -> Sleep -> click Reviews -> Sleep -> Inject JavaScript -> Element Exists -> Structured Export -> Loop Continue. The Navigate block stores multiple reviewer URLs. The JavaScript block opens the Reviews tab when needed, scrolls the visible Maps panel, expands visible text, captures reviewer summary fields, and creates hidden rows for Structured Export.
The workflow is best-effort because Google Maps renders dynamic, virtualized cards. It can only export reviews visible to the browser profile during the run. If Google redirects to sign-in, shows a challenge, hides old reviews, or changes class names, you will need to pause, inspect the page, and update the workflow before trusting a batch.
google-maps-reviews-scraper-by-user-page.csvColumn
username
Reviewer display name captured from the contributor profile.
Column
user_type
Visible type such as Local Guide, Reviewer, or Contributor when present.
Column
level
Local Guide level detected from the profile text.
Column
points
Contributor points when Google exposes them.
Column
review_count
Review count from the profile summary.
Column
rating_count
Rating count from the profile summary.
Column
review_shop
Place or business name attached to the review card.
Column
shop_address
Visible address text when the card exposes it.
Column
review_rating
Star rating text from the review card.
Column
review_time
Visible review date or relative time.
Column
review_content
Expanded review text when available.
Column
owner_response
Visible business owner response.
Column
response_time
Visible response date or relative time.
Column
likes
Like count when present.
Column
place_url
Google Maps place URL from the review card.
Column
reviewer_profile_url
Canonical contributor reviews URL used as the source.
Runbook
How to scrape Google Maps reviews by user
Import the reviewer template
Open Google Maps Reviews Scraper by Reviewer, download the JSON, and import it into UScraper.
Add contributor URLs
Replace the sample Navigate inputs with public Google Maps contributor URLs that end in /reviews. Use one reviewer profile per input URL.
Confirm browser access
Run one profile visibly. Resolve consent, language, sign-in, or verification prompts manually before trusting the export.
Set the CSV destination
In Structured Export, confirm the file name, headers, append mode, and a project-specific local folder. Rename old test files before a clean run.
Run one reviewer and inspect
Let the workflow scroll until rows stop increasing, then compare several CSV rows against the browser profile page.
Batch only after QA
Add the rest of your contributor URLs after the first export looks correct. Keep a run log with URL list, date, locale, output file, and selector edits.
The stock workflow appends rows, which is practical for multi-profile runs but easy to misuse during testing. If you rerun the same URL list, expect duplicates unless you clean the previous CSV or dedupe by reviewer_profile_url, review_shop, review_rating, review_time, and review_content.
Validation
Validate the reviewer review export
Open the CSV beside the browser after the first reviewer page. Check the first few rows, one middle row, and the final rows. Confirm that reviewer profile fields repeat correctly, place names match the visible cards, and owner replies are not being merged into review text.
| Symptom | Likely cause | Fix |
|---|---|---|
| Zero rows | Reviews tab did not open, profile is restricted, a prompt blocked Maps, or selectors changed | Open the profile manually, resolve prompts, and rerun one URL. |
| Only a few reviews | The side panel stopped loading, Google throttled the session, or old reviews are hidden | Reduce batch size, increase waits, and compare against the visible page. |
Blank review_content | The card is rating-only or the "More" control did not expand | Treat rating-only rows as valid, then test whether expand buttons still work. |
Wrong review_shop | Google changed review-card structure or locale text order | Inspect one card and update the shop selector before batching. |
Missing place_url | The review card did not expose a place link in the current layout | Keep the row, but do not use it for joins until links are verified. |
| Duplicate rows | Append mode reran the same profile or virtualized cards appeared twice | Dedupe after export and rename test CSV files between runs. |
API context
Google Maps contributor reviews API vs local CSV export
Official Google Places routes are place-oriented. The Maps JavaScript Place Reviews docs and Places API Place Details docs help developers request review fields for a place inside approved app flows. They are not a no-code CSV export of every public review written by a contributor.
Third-party options such as SerpApi, Apify, Octoparse, Outscraper-style tools, and scraping APIs can be better when you need vendor-managed infrastructure, JSON endpoints, scheduling, or backend integration. UScraper fits a narrower job: an analyst-led, visible browser workflow that exports public reviewer-profile rows into a local CSV without building a Python scraper.
| Option | Best fit | Trade-off |
|---|---|---|
| UScraper reviewer template | Supervised CSV exports from known contributor profile URLs | Best-effort browser selectors need validation. |
| Contributor reviews API provider | Programmatic JSON delivery and pagination | Requires keys, vendor terms, pricing review, and integration work. |
| Hosted no-code scraper | Cloud runs and managed task execution | Review URLs and output pass through a vendor environment. |
| Custom Python or Node.js scraper | Full parser and retry ownership | Engineering maintains scrolling, selectors, throttling, QA, and compliance. |
For place-level exports, use the related Google Maps reviews tutorial. For reviewer-centric exports, keep this article paired with the reviewer template.
FAQ
Google Maps reviewer scraping FAQ
Public visibility does not automatically create permission. Review Google Maps terms, privacy obligations, copyright, local law, and your reuse plan before collecting or republishing reviewer profile data. Avoid bypassing access controls, keep volume modest, and get legal review for redistribution, resale, or model training.
Next step
Download the reviewer workflow and run one profile
Use Google Maps Reviews Scraper by Reviewer as the download path, then validate one contributor profile before adding a batch. For adjacent workflows, browse the full UScraper template library or compare more scraping tutorials on the UScraper blog.

