Local Rank and Map Pack Tracker avatar

Local Rank and Map Pack Tracker

Pricing

from $46.75 / 1,000 rank checks

Go to Apify Store
Local Rank and Map Pack Tracker

Local Rank and Map Pack Tracker

Track where a business ranks on Google for each keyword and location: organic position, map pack position, and local finder position (top 20), searched from the location itself. Rating, reviews, top competitors, and change since the last run. No API key.

Pricing

from $46.75 / 1,000 rank checks

Rating

0.0

(0)

Developer

Mamba Labs

Mamba Labs

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Track where a business ranks on Google in each city it serves. Enter keywords, locations, and your domain or business name. For every keyword in every location you get one row with your organic position, your map pack position, and your position in the full local finder list (top 20), with the search placed at that location rather than at the server's own city. Each row also names who holds the top spots, and with a schedule name it shows how far you moved since the last run. Rows are flat, so they export to CSV or drop into a Clay table.

Features

  • Searched from the location. Each place name is turned into coordinates (OpenStreetMap), and the Google search is placed at that point, so a check for Austin returns the Austin map pack even though the request leaves from another city.
  • Three positions per row. Organic position (up to 50 deep), map pack position on page one (1 to 3), and local finder position (top 20) when you are not in the pack.
  • Your listing details. For a matched map listing: name, rating, review count, category, phone, website, and address as Google shows them.
  • Who outranks you. The top 10 organic domains and the top map listings for each keyword and location.
  • Change tracking. Give a schedule name and every row carries the previous positions and the change, so a weekly schedule becomes a rank history.
  • Matching you can check. Organic results match on your domain (subdomains included). Map listings match on the website on the listing, then on your business name, and the row says which.
  • Clay ready. Every field also accepts text, as Clay sends it, and every row has the same columns.

How it reads Google

Google result pages are read through the Apify Google SERP proxy, with one request per page. No Google account, no API key, and no other developer's actor. Keyword search volume is not included: it needs a paid data source.

Input

FieldTypeDefaultWhat it does
keywordsarraySearch terms, one per line, for example plumber
locationsarrayPlace names (Austin, Texas, United States) or coordinates (30.2672,-97.7431), one per line. Commas inside a place name are kept
target_domainstringYour website, for example weplumbatx.com
business_namestringThe name on your Google Business Profile. Give it, the domain, or both
countrystringUSGoogle market and proxy exit, two letters
languagestringenGoogle interface language
organic_depthinteger1010, 20, 30, or 50 positions. Each 10 is one Google page, and paging stops once your domain is found
include_local_finderbooleantrueOpen the full map list when you are not in the 3 result pack
state_keystringSchedule name. Keeps positions between runs for the change fields
max_charge_usdstringStop before a rank check would pass this amount

Up to 500 keyword and location pairs per run.

Output

One row per keyword and location. Key fields:

FieldExample
keyword, location, location_resolved, latitude, longitudeplumber, Austin, Texas, United States, Austin, Travis County, Texas, United States, 30.26, -97.75
organic_position, organic_url, organic_title4, www.weplumbatx.com/austin, Plumber in Austin, TX
organic_depth_checked, organic_results_found10, 10
local_pack_present, local_pack_position, local_finder_positiontrue, 1, 1
local_match_method, local_business_name, local_websitedomain, We Plumb LLC, https://weplumbatx.com/
local_rating, local_review_count, local_category, local_phone, local_address4.9, 189, Plumber, (737) 297-5863
top_organic_domains, top_local_businesses["yelp.com", "homeadvisor.com"], ["We Plumb LLC", "Chase LLC"]
previous_organic_position, previous_local_position, organic_change, local_change6, 2, 2, 1 (positive means you moved up)
google_pages, serp_requests, row_status, error_reason, billable_events_json2, 2, ok, null, {"rank-check":1,"extra-page":1}

An empty position means you were not found in the positions checked. The run summary (key-value store record RUN_SUMMARY) lists checks done, rows by status, Google requests, and charged events.

Pricing

Pay per event. You pay only these events; the Apify platform and proxy costs of your run, Google SERP proxy included, are paid by Mamba Labs.

EventFree planBronzeSilverGold
Rank check (rank-check), one keyword in one location$0.055$0.05225$0.0495$0.04675
Extra Google page (extra-page): organic page 2 and up, or the local finder$0.018$0.0171$0.0162$0.0153
Actor start (apify-actor-start), once per run$0.002$0.002$0.002$0.002

A rank check includes Google page one, which carries the first 10 organic results and the map pack, and is charged whether or not you rank, because the check was made. An extra page is charged only when it is read: organic pages 2 and up stop once your domain is found, and the local finder is opened only when you are not in the map pack and Check the local finder is on. Each row's google_pages and billable_events_json show what it was charged. Blocked and error rows are free. On the Apify free plan the actor stops at 1.50 USD of evaluation a month (about 27 rank checks); any paid Apify plan removes that cap.

Example: 10 keywords in 5 cities is 50 rank checks, $2.75 at the free plan price, plus one extra page for each pair where you are not in the map pack. To pay only for page one, set Organic positions to check to 10 and turn off Check the local finder.

Usage examples

Apify Console or API

{ "keywords": ["plumber", "emergency plumber"], "locations": ["Austin, Texas, United States", "Round Rock, Texas, United States"], "target_domain": "weplumbatx.com", "business_name": "We Plumb LLC" }
{ "keywords": ["dentist"], "locations": ["51.5072,-0.1276"], "country": "GB", "target_domain": "example-dental.co.uk", "organic_depth": 30 }

Clay

Add an Apify column, send keywords, locations, and target_domain from your table, and read organic_position, local_pack_position, and local_finder_position.

Scheduled rank history

Save the input as an Apify task with a state_key, then schedule it weekly. Each row then carries the previous positions and the change.

MCP

The MCP server @mambalabsdev/mcp-local-rank-map-pack-tracker exposes this actor as a tool for Claude and other MCP clients.

Error handling

SituationWhat you get
Google refuses every attempt for a checkOne free row with row_status blocked and the reason
A place name cannot be found on the mapThe page is read with Google's own near location, the local finder is skipped, and error_reason says so
A later organic page failsThe row ships with the positions read so far and says how deep it got
The local finder page failsThe row ships with the map pack result and says so
Max charge reachedThe run stops before the next charged row and says why in the status message

Limitations

  • Positions are one desktop search at one point at one moment. Google personalizes and moves results, so read a trend over several runs, not a single row.
  • Organic URLs are the display URL Google prints (domain plus path segments), because the result links are redirects.
  • A map listing with no website and a different name from business_name cannot be matched.
  • The local finder is read to the top 20.
  • Place names are looked up on OpenStreetMap Nominatim. For a precise point, give coordinates.
  • Google's terms govern automated access to its result pages. You are responsible for how you use the rows.

More from Mamba Labs

ActorActor ID
Account Hiring WatchgRAZA5WBi1r6L0gy7
Agent Accessibility AuditoranxbRv0lKrpQ1pnua
Agent to Brokerage ResolverePRRGLxOGyaVHO4dI
AI Tooling DetectorEwkHhmqiuJgRoVEbE
B2B Reddit Conversation MonitorSoDryzzsjmY3SsiyG
Bluesky Brand Presence MappereLpxzP4IuXznlFVND
Career Change Signal EnginevX2Yga1a6wGaXaP14
Company Change Event FeedoX44rS0fkEJ3rXLWe
Company Contact Details Extractor4mMncKaJykiq94grz
Company Discovery List Builderjch0HdaZnpbMqlcGS
Company Firmographic EnricherYlUtLWjfPpqykmB8g
Company Funding RecordOFS4Mt1gyYNtGfUbE
Company Identity Resolverlr8fTRAmZCBZmuwwh
Company Social Presence Mapper4k6CCemkgBDz18m2h
Contact Classifier0lGSeYJmniXhGANnO
Cookie Consent AuditTrKyOS0KBoGC35nbr
Domain Deliverability Checker0tVgxI7A6o9jMlxmc
Domain to LinkedIn URL Resolver3HtnSaqPHOg1Qg5gx
Ecommerce Platform Profiler5G2NeYjBbQTjaTn9L
Event Presence IndexWLhMy8fMDgsxdYxv5
Expert Witness DirectoryLIpwlgfE3LaQBaXd4
Funding and Press Signal ScannerFS13X6dhQVgX3XOM6
GitHub Organization Signal ScannerahF8RRpv5mzPao5CN
Google Ads Transparency Monitor1eOwxhBVxzvOXAm4s
Government Contract Award MonitorzhEtllASykOcx9hJ8
GTM Hiring Signal ScraperD7O1SA2EqwHGsGr1P
GTM Signals AggregatorxKdRfnfFNkdMpFuNs
ICP Fit ScorerW161DT8W4kW55dMFh
Influencer Change Monitord2VVgahNL6UmcLkhg
Influencer FindertpkedmloIIWtXx6sg
Influencer Lead List BuilderKnmByszcv135yM30G
Influencer Profile ScraperEqEnklDVMIcB1V499
Influencer Talent Agency LookupzCuX4Mgyg6JvXgGzd
Instagram Facebook Brand Presence MapperHXh65I0JBjPsunbY8
Integration and Marketplace Presence MapperV0guNuvM85Q61f2gj
Job Board Keyword Signal Scanner4DvqpvhMR74NLcDDY
Job Change TrackerL8UbEmMJC1XYPSZOb
Job Posting MonitorQCfICD9kOPiOdj5iI
Legal Entity ResolverKHFyPCDIx7CyqULYm
Link in Bio Scraper and Newsletter DetectorOorucdheTIgu7RFzK
LinkedIn Company Page MapperzOPm6A9JEhUGcIdFW
LinkedIn Post TrackeroiGLNPuaf5BRaz9K5
Meta Ad Library MonitorJ1GWlSXfSGU3u8Wng
Mobile Phone Waterfall6OOgPktf7RIa5XCOP
New Hire FindercKuc38p4nYHNF3IW8
Outbound Stack Detectorv43UJC8r7qW7cBSTG
Page Finder and ExtractorTpurgcOZbVnknlaiC
People Finder & Email VerifierLEgloG7tWgQl4o6TD
Person Social Footprint MapperjfQXa2zW9FHCJot9K
Pinterest Brand Presence Mapperd1HvjZfKhgvWsoEwn
Prospect Engineq9rT6v64nUJdPexOQ
Publishing Frequency TrackerTbLwaUUATdYb6wp4N
Reddit Brand Presence MapperpKQZmDaT70SEb54bZ
Reporting Window FinderuINxR7a1IW8qUTRUX
Sequencer Lead Push0Jv27VeWM5tSZQs9x
Team Page People Extractorj8a9zX0k4mNbvDbWK
Tech Stack Signal Detectorqyd7nNyqFPelQViBx
TikTok Brand Presence Mapperfco8FvoJcSafbeyd1
Trustpilot Reputation Enricher3lIqfCt61j4hqE1xz
WCAG Accessibility AuditP3jBj3FRghKEhX52z
Website Traffic Rank EstimatorGnOFUzlNVIoXgeJjH
Work Email WaterfallOT6xqTFThC0Rjf7Zj
Workplace Program DetectorLi6pPDhqbdzFz3h7G
X Brand Presence MapperoLOgadhHUkNAyDA3w
YouTube Channel Stats Extractor6hSpD3kd2s2IQ4VSs

Built by Mamba Labs.