What the 120 results limit is
Google Maps returns a ranked sample for each search, not a directory. The results panel loads places in batches as you scroll and stops at roughly 120, with a message saying you've reached the end of the list. Google doesn't publish the number or explain it. It's observed behavior, it has been stable for years, and every scraper that reads the Google Maps website hits the same ceiling, because there is nothing further down the panel to read.
Two details matter for anyone building a list:
- The limit is per search, not per area: Changing the search text or moving the map starts a new search with a new set of up to 120 places. That is the whole basis of every method that works.
- The 120 you see are the highest ranked, not a random sample: Google orders local results by relevance, distance and prominence. A capped list leans toward businesses with many reviews and well-maintained profiles. The ones left out are the newer, smaller and less-reviewed businesses, which for many sales teams are the better prospects.
The second point is why the limit is easy to miss. A truncated list doesn't look broken. It looks like a clean list of 120 established businesses, and nothing in the file says another 300 exist.
Four workarounds that don't work
Zooming out
A wider map gives Google more places to choose from and the same number of slots to show them in. You get a thinner sample of a bigger area.
Scrolling for longer
The results panel loads in batches as you scroll, then stops. Once the end-of-list message appears, waiting or scrolling again loads nothing.
Running the same search again
Ranking shifts a little between sessions, so a second run may swap a few places near the bottom. It won't reveal the hundreds below the cut.
Switching to the official Places API
The API's ceiling is lower, not higher: 20 places per page and 60 per query. It's the right tool for looking up a known place, not for listing every business in a category.
How to tell if your list was cut off
Count the rows each individual search returned. The rule is simple:
- Well under 120: You have everything Google would show for that query in that area. A search for florists in a town of 8,000 people that returns 11 rows is complete.
- About 120: Assume the list was cut off. There may be 125 businesses or 900. The count can't tell you which, only that you hit the ceiling.
One caveat if you filter while scraping. A filter such as "has a phone number" or "minimum 4.0 rating" removes rows from the 120 Google returned, so a capped city can show 70 rows and look complete. Do the count on an unfiltered run, or treat any large city as capped until you've checked it.
The count also tells you how much work is left. In a statewide run most towns come back far below the limit, and only the handful of large cities need a second pass.
The three ways to split a search
Each split gives you a fresh result window. They differ in how many of the new results are businesses you already have, which matters when each row costs a credit or a minute of your time.
| Split by | What it looks like | When to use it | Overlap |
|---|---|---|---|
| Area | One search per city or town instead of one per metro or state | Always first. It produces the least overlap between searches. | Low: only businesses near a border |
| Category | "Pediatric dentist", "Orthodontist", "Cosmetic dentist" instead of "Dentist" | When a single city still returns about 120 after the area split | Medium: a business can match several categories |
| Keyword | Add a modifier: "emergency plumber", "24 hour plumber", "commercial plumber" | Last, for the few city and category pairs that are still capped | High: most results repeat |
Area comes first because two neighboring cities share few businesses, so nearly every row is new. Category comes second: an orthodontist rarely also appears under "Pediatric dentist", but a general practice may be listed under three categories. Keyword modifiers come last because "emergency plumber" and "24 hour plumber" return largely the same companies in a different order.
If you're doing this by hand in a browser, the area split means searching by ZIP code or neighborhood name ("plumber 77002", "plumber Montrose Houston"), or dragging the map and pressing "Search this area". It works. It's also the slow part, which is the reason to automate it.
Step by step: a complete list
Run the broad search by city, not by region
Pick the category once and select every city and town in the area you care about. Each city is its own search with its own limit, so a state with 400 towns gets 400 separate result windows instead of one.
Count rows per city
Each exported row carries the city and the query that found it. A pivot table or a COUNTIF on the city column shows which cities came back near 120. Those are the only ones that need more work. Most towns will be far below it.
Add the suburbs around each capped city
A big city's businesses spill into neighboring municipalities that are separate entries on Google Maps. If they weren't in your first selection, add them. This costs little and creates almost no duplicates.
Split the capped cities by category
For the cities still at the limit, replace the broad category with its specific ones. Open a few listings on Google Maps and read the category line under the business name to see which specific categories that industry actually uses.
Remove duplicates on the Google Maps URL
Combine the files and deduplicate on the Google Maps URL column. Name and address are unreliable for this, since chains share names and suites share addresses. The URL is one per listing.
Stop when new searches stop adding rows
After each extra search, check how many rows survived deduplication. When a new category or keyword adds only a handful of new businesses, you've reached the point where more searches cost more than they return.
Step 06 is worth taking seriously. No method proves you have every business, because Google never tells you the total. What you can measure is the rate of new rows per search, and when it falls close to zero the list is as complete as Google Maps will make it. For the duplicate patterns that survive a URL dedupe, such as chains and shared phone lines, see the guide to cleaning a Google Maps lead list.
How MapsHarvest handles the limit
MapsHarvest reads the same results Google Maps shows, so it doesn't remove the ceiling. What it does is automate the area split, which is the tedious part.
- One search per city, automatically: Select a state and the scrape runs your category in every city and town in it, across 112,000+ places in the US, UK, Canada, Australia, Germany and India. Each city gets its own window of up to 120 results.
- The cap is 120 per city per query: A single category in a very large city will still be truncated. The per-city maximum matches what Google returns, and for those cities you run additional categories as described above.
- Every row records its query and city: That's what makes the row count in step 02 a one-line pivot table instead of guesswork, and it still works after you merge several exports.
- Duplicates inside one scrape are removed for you: A business that shows up under two neighboring cities in the same job appears once in the export. Overlap between separate scrapes, such as two categories run one after the other, is yours to dedupe on the Google Maps URL.
- Credits follow rows: One credit per lead returned. A statewide run costs what it finds, not cities times 120, because most towns return far fewer than the cap.
The free plan's 50 credits are enough to run one category in one city and see whether it caps. On Growth and above, the category split can be scripted through the REST API: one POST /scrape per category with the capped cities in cities, then GET /jobs/{id}/download?fmt=csv for each file. For a worked example of the category split in one industry, the law firm guide does it for Los Angeles by practice area.
FAQ
Is the Google Maps limit exactly 120 results?+
Not always. Google doesn't document a number. In practice the results panel stops loading somewhere around 120 places, and occasionally a little short of or past that. Treat 120 as the point where you should assume the list was cut off, not as a guaranteed count.
Does zooming out or searching a whole state give more results?+
No. The limit applies to the search, not to the size of the map. A search over an entire state returns about the same number of places as a search over one city. They are just spread thinner, so you miss far more.
Is the Google Places API limit the same as the Google Maps limit?+
No, it's lower. Google's Places API text and nearby searches return up to 20 places per page and at most 60 per query across three pages. The 120 figure is what the Google Maps website shows in its results panel.
How do I know if my list was cut off?+
Count rows per search. If a single query in a single city returned about 120 places, assume there were more. If it returned 40, you have everything Google would show for that query in that area.
Will splitting a search create duplicates?+
Yes. A business near a city border, or one that fits two categories, will be found by more than one search. Every listing has its own Google Maps URL, so removing duplicates on that column is exact.
See which of your cities hit the limit
Run one category across a state and count rows per city. 50 free credits, no credit card.