How Many Leads Does Google Maps Hide From You?
You think you've scraped all the Google Maps results for your area? You probably haven't. The Google Maps 120-result limit doesn't just hide a few extra listings -- it hides nearly the entire market. And that gap has a direct cost on your prospecting.
This article puts concrete numbers on what this limit costs you. If you want the technical explanation of why this limit exists and how to work around it, read our complete guide to the 120-result limit. Here, we're talking business impact.
The numbers that hurt: what Google Maps is actually hiding from you
Google Maps is the world's largest local business database, with over 200 million listings. But when you run a search, you only see a tiny fraction. Here's what that looks like in practice:
| Search | Results shown | Actual businesses | Coverage rate |
|---|---|---|---|
| Restaurant Paris | 120 | ~15,000 | 0.8% |
| Plumber Lyon | 120 | ~1,200 | 10% |
| Dentist Marseille | 120 | ~800 | 15% |
| Hair salon Toulouse | 120 | ~950 | 12.6% |
| Bakery Bordeaux | 120 | ~600 | 20% |
| Lawyer Paris | 120 | ~4,500 | 2.7% |
| Electrician Ile-de-France | 120 | ~3,800 | 3.2% |
Even in the best case (bakery in Bordeaux), you only recover 20% of results. In the worst case (restaurant in Paris), 99.2% of businesses are invisible to you.
And this isn't a problem limited to major cities. Toulouse, Bordeaux, Nantes -- as soon as a category exceeds 120 businesses in a zone, you're affected. For any local B2B prospecting effort that aims to be exhaustive, this is a massive blind spot.
The multiplier effect across categories
The problem compounds when you target multiple categories. Imagine a web agency looking for clients across the entire Ile-de-France region:
| Category | Standard scraping | Reality | Businesses missed |
|---|---|---|---|
| Restaurants | 120 | ~45,000 | 44,880 |
| Hair salons | 120 | ~8,500 | 8,380 |
| Construction trades | 120 | ~12,000 | 11,880 |
| Retail shops | 120 | ~25,000 | 24,880 |
| Medical practices | 120 | ~6,000 | 5,880 |
| Total | 600 | ~96,500 | 95,900 |
600 results instead of 96,500. Your prospecting file covers just 0.6% of the actual market. And you're basing your commercial decisions -- budget, channel, message -- on this minuscule sample.
The selection bias: your competitors have the exact same 120 leads
The problem doesn't stop at missing volume. The 120 results Google Maps shows you aren't a random sample. Google applies a precise ranking:
- Top-rated listings appear first (4.5 stars before 3.8)
- Businesses with the most reviews are favored (500 reviews before 12)
- Optimized Google Business profiles are prioritized (complete description, photos, hours)
- Geographic proximity influences the ranking based on the map center
- Listing age and activity also play a role
Result: everyone scraping Google Maps with the same queries gets the same 120 businesses. You, your competing agency, and the dozens of others targeting the same vertical.
What this means for your prospecting
Those 120 businesses are the most visible, the most solicited, and often the least receptive. They already receive dozens of sales pitches every week. Your emails land in an already saturated inbox, alongside 5 other similar proposals.
Meanwhile, the other 1,080 businesses (in the Lyon plumber example) have never been contacted by any competitor. They're less visible on Google, have fewer reviews, but they have the same needs for services and suppliers. And nobody is reaching out to them.
The concrete math
Let's run a real example. You sell management software to restaurants in Paris:
- With standard scraping: 120 leads. Typical response rate (cold emails to over-targeted leads): 1-2%. That's 1-2 responses.
- With complete extraction: 15,000 leads. Response rate on unsolicited leads: 3-5%. That's 450-750 responses.
The difference? It's not 120x more leads, it's potentially 300x more responses -- because unsaturated leads respond at a higher rate.
The best leads are the ones your competitors can't find.
Why the "classic" workarounds don't work
Faced with this limit, most prospectors try workarounds. None of them fundamentally solve the problem.
Multiplying geographic queries
"Restaurant Lyon 1st", "restaurant Lyon 2nd", "restaurant Lyon 3rd"... You get more results, but:
- Each sub-query is still capped at 120 results
- Results overlap massively (30-50% duplicates between adjacent districts)
- Deduplication is a technical headache (name variants, approximate addresses)
- You never know if you've reached completeness -- you'd need to test every street
- Processing time explodes: 20 sub-queries x 5 minutes = a full work day
To properly cover Paris with its 20 arrondissements, you'd need hundreds of carefully split sub-queries. And even then, large categories like "restaurant" exceed 120 results within a single arrondissement.
Zooming in on the map
Google Maps adjusts results based on zoom level. But the ceiling stays at 120. Zooming way in gives you 120 results for a smaller area -- but sparse zones will return duplicates or out-of-area results. And you have to repeat this for each micro-zone, manually.
Using the Google Places API
The official API is even worse: it's limited to 60 results per query (via 3-page pagination x 20). And it costs $32 per 1,000 requests. To cover a single large city completely, costs easily reach several hundred dollars. All of France? Tens of thousands of dollars.
Changing keywords
"Restaurant", "dining", "brasserie", "bistro", "catering"... Multiplying variations helps catch differently classified listings, but introduces even more duplicates and still doesn't guarantee completeness. Some businesses don't use any of your keywords in their listing.
Scraping more often
Running the same scrape every week doesn't change the limit. You'll still get 120 results, just more recent ones. The same 120, or nearly.
The only real solution: exhaustive geographic subdivision (quadtree)
To achieve complete Google Maps extraction, you need to abandon the "one query = one keyword + one city" approach and switch to a systematic geographic method.
The quadtree principle:
- Initial division: the territory is split into geographic tiles (e.g., 5 km x 5 km squares)
- Scan: each tile is scraped independently with the target category
- Saturation test: if a tile returns 120 results (the maximum), it likely contains more
- Adaptive subdivision: the saturated tile is automatically split into 4 smaller tiles (hence the name "quadtree")
- Recursion: the process repeats until each tile contains fewer than 120 results -- guaranteeing completeness
- Deduplication: all results are merged and deduplicated using the unique Google identifier (place_id)
This method guarantees exhaustive coverage. If Paris contains 15,000 restaurants, the quadtree will subdivide the city into hundreds of micro-zones, each with fewer than 120 results, then merge everything.
The problem? It's extremely expensive to implement yourself:
- Hundreds of thousands of requests to cover a single country
- Residential proxy infrastructure: $200-500/month minimum
- Dedicated servers: $50-150/month
- 2-3 weeks of development to build the system (subdivision, dedup, recovery, monitoring)
- Ongoing maintenance: Google changes its CSS selectors, DOM structure, rate limits
- No enrichment included: you need a second system for emails and phone numbers
For a developer doing DIY scraping, the total cost easily exceeds $400 per scraping campaign. And you have to redo it every month if you want fresh data. Over a year, that's over $5,000 -- for a single country.
Concrete results with IBLead: before and after
IBLead continuously runs this quadtree process across all covered countries. The database is pre-indexed, deduplicated, and automatically enriched. Here's the difference compared to a standard approach:
| Search | Standard scraping (120 max) | IBLead (exhaustive) | Additional leads |
|---|---|---|---|
| Restaurant Paris | 120 | ~15,000 | +14,880 |
| Plumber Lyon | 120 | ~1,200 | +1,080 |
| Lawyer Paris | 120 | ~4,500 | +4,380 |
| Electrician Ile-de-France | 120 | ~3,800 | +3,680 |
| Dentist Marseille | 120 | ~800 | +680 |
And each listing is enriched with data that basic scraping doesn't provide:
- Full contact details: address, phone, website, GPS coordinates
- Professional emails: up to 5 emails automatically extracted from the business website
- Social media: Facebook, Instagram, LinkedIn, X, YouTube pages
- Legal data (France): SIRET, SIREN, owner name, APE code, legal form, founding date
- Google Maps metrics: rating, review count, status (open/closed), hours
- Detected web technologies: CMS, analytics tools, payment solutions used by the business
With SIRET matching and email enrichment, you have everything needed for a personalized prospecting campaign -- "Dear Mr. Dupont, owner of [company]..." -- without coding, proxies, or maintenance.
The real competitive advantage
When you're working with 15,000 restaurants in Paris instead of 120, you gain access to businesses that nobody else is contacting. Not the top-rated listings that everyone targets, but the 99% of the market that remains invisible in a standard Google Maps search.
That's where the most receptive leads are: businesses that have never received a prospecting email for your service, because nobody knew they existed on Google Maps. Your response rate on these leads will be naturally higher than on the 120 leads everyone is fighting over.
The real cost comparison
A tool like Scrap.io costs at least 49 EUR/month, or 588 EUR/year, and doesn't solve the 120 limit. PhantomBuster charges by the minute and also caps at 120 results. DIY scraping costs $400+ per scrape.
IBLead gives you access to the complete database with plans starting at 44 EUR/month. No 120 limit, no proxies to manage, no code to maintain. All countries, enrichment included, refreshed monthly.
Conclusion: stop prospecting blindly
The Google Maps scraping limit of 120 results isn't a minor constraint. It's an invisible wall that reduces your addressable market by 80-99%, creates a selection bias against you, and guarantees you're working the same saturated leads as your competitors.
Manual workarounds (multiplying queries, zooming in, varying keywords) don't fundamentally change anything. Only systematic geographic subdivision -- the quadtree approach -- enables complete Google Maps scraping, and it's a heavy infrastructure project that few businesses can afford.
IBLead does this work for you, continuously, across all covered countries. With plans starting at $35/month, you get access to the complete database -- all results, enriched, deduplicated, refreshed monthly. That's less than a single DIY scrape, and it's ready now.
Try IBLead and see how many businesses you've been missing.
Ready to get started?
Access every Google Maps business, enriched with emails and legal data.
Try IBLead freeRelated articles
10 Proven Tips to Get Customers to Leave More Google Reviews on Maps
Learn 10 actionable strategies to increase Google Maps reviews. Timing, incentives, QR codes, and response tactics that actually work.
7 Cold Email Mistakes to Avoid: Examples & Templates
Avoid these 7 cold email mistakes to avoid examples that kill response rates. Real examples, AIDA templates, and proven fixes for better outreach.
ABM Google Maps Data: The Complete Strategic Guide
Learn how abc account based marketing google maps data drives 208% more revenue. Build precise target lists with 50M+ pre-indexed businesses.