Google Maps Rank Tracker (Geo-Grid) avatar

Google Maps Rank Tracker (Geo-Grid)

Pricing

from $3.00 / 1,000 grid points

Go to Apify Store
Google Maps Rank Tracker (Geo-Grid)

Google Maps Rank Tracker (Geo-Grid)

Where a business ranks on Google Maps for a keyword at every point of a grid around it: rank per point, local pack, average rank, share of local voice, the competitors that outrank it and a heatmap. Matched by place id. A pay-per-point Local Falcon alternative.

Pricing

from $3.00 / 1,000 grid points

Rating

0.0

(0)

Developer

Steady Scrape

Steady Scrape

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

2

Monthly active users

4 days ago

Last modified

Share

Google Maps Rank Tracker (Geo-Grid) — local SEO heatmaps

See where a business ranks on Google Maps for a keyword at every point of a grid around it — the way a customer standing on each corner of town would see it. For each grid point you get the business's rank, whether it is in the local pack (top 3), and who ranks above it there. For each keyword you get the average rank, the share of local voice, the competitors that beat it most often, and a heatmap image.

A pay-per-point alternative to Local Falcon, BrightLocal grids and other geo-grid rank trackers: no subscription, no login, no browser, no Google API key.

What it is for

  • Local SEO agencies: monthly geo-grid reports for every client and keyword, ready to chart.
  • Business owners: see the neighbourhoods where you vanish from Google Maps, and who takes those customers.
  • Before / after: run the same grid before and after a Google Business Profile change, new reviews or a new page.
  • Competitor research: the competitor leaderboard tells you which places own the local pack around you.

How it works

  1. You give the business (its Google Maps link, a maps.app.goo.gl share link, its place id or its CID), one or more keywords, a grid size (3×3 to 13×13) and the distance between points.
  2. The Actor looks the business up on Google Maps and centres the grid on it (or on a centre you give).
  3. From every grid point it runs the keyword search Google Maps runs for someone looking at the map there (the zoom is yours to set; 13 is the usual one), and finds the business by its place id among the results — never by its name, so a branch or a namesake is never mistaken for it.
  4. It writes one row per point and one summary per keyword, plus a heatmap.

Ranks 1–20 by default. Google Maps lists twenty places a page. Turn on Look down to rank 40 to read a second page at the points where the business is not in the first twenty.

Input example

{
"businesses": ["https://www.google.com/maps/place/Swish+Dental+Downtown/data=!4m2!3m1!1s0x8644b5b434046875:0x644e6eb422388b7a"],
"keywords": ["dentist", "cosmetic dentist"],
"gridSize": "7x7",
"gridSpacing": 1,
"distanceUnit": "km",
"zoom": 13,
"checkTop40": false
}

Output

Every row has a rowType: point (one keyword from one grid point), summary (one keyword over the whole grid) or business (an input that did not resolve).

A grid point

{
"rowType": "point",
"status": "ok",
"businessName": "Swish Dental Downtown",
"placeId": "ChIJdWgENLS1RIYReos4IrRuTmQ",
"cid": "7227836171923524474",
"keyword": "dentist",
"row": 2, "col": 3,
"lat": 30.267404, "lng": -97.682738,
"distance": 6, "distanceUnit": "km",
"rank": 32,
"inTop3": false,
"inTop20": false,
"searchedDepth": 40,
"resultsSeen": 40,
"topResults": [
{ "position": 1, "name": "Brident Dental & Orthodontics", "placeId": "ChIJ…", "cid": "…", "rating": 4.1, "reviewCount": 185, "category": "Dentist" }
],
"mapsUrl": "https://www.google.com/maps/search/dentist/@30.267404,-97.682738,13z"
}

rank is null when the business is not within the depth searched (and inTop20 is false): it is never a made-up number. On a blocked point nothing was measured, so rank, inTop3 and inTop20 are all null.

A keyword summary

fieldmeaning
scannedPoints, foundPoints, top3Pointspoints searched, points where the business appears, points where it is in the local pack
averageRankaverage rank over the points where it appears
averageRankWithMissesaverage rank counting a point where it does not appear as one past the depth searched (21 or 41) — what local rank tools call ARP
shareOfLocalVoice% of points where the business is in the local pack (top 3)
competitorsup to 10 places, ranked by how often they are in the local pack across the grid, with their average rank
heatmapUrlan SVG of the grid, each point coloured and labelled with the rank

Pricing

Pay per event, no start fee:

eventprice
grid-point — one keyword searched from one grid pointUS$0.003
extra-depth-point — the second page (ranks 21–40) at a point, only when you ask for it and only where neededUS$0.002

A 7×7 grid for one keyword is 49 points = US$0.147. Summaries, heatmaps, unresolved businesses and blocked points are free. The spending limit of your run is respected before any search is sent: the Actor plans only the points your limit pays for (counting the second page where you asked for it) and says in the summary which ones it left out.

Stops when Google asks for verification

The Actor reads the same answers Google Maps gives its own web page, at a moderate pace. If Google ever asks for verification — its "unusual traffic" page, a CAPTCHA, a JavaScript check, or any answer that is not Google Maps' normal data — the run stops sending requests and every point left is a free blocked row that says so. It never solves, bypasses or replays a challenge, and it does not hide where it asks from: the grid's coordinates travel in the map view, as they do when you move the map yourself. Plain overloads (HTTP 429 or 5xx without a challenge) are retried through Apify's datacenter proxy; points that still get no answer are free.

Limits

  • Up to 10 businesses and 10 keywords per run; grids from 3×3 to 13×13; points 0.1 to 20 km (or miles) apart.
  • Ranks are those of Google Maps' place list for the search around each point (the "Places" list a customer scrolls). Paid ads are not counted.
  • Results depend on the zoom and on Google's personalisation; this Actor sees them as a signed-out visitor.

It reads publicly visible search results, at a pace a person browsing the map could produce, without logging in and without collecting personal data. Use the data in line with Google's terms and the laws that apply to you.