Scan Google Maps rankings across any city. Identify visibility gaps, compare competitors, and deliver branded reports your clients actually understand.
No credit card required · Set up in minutes · Built for agencies
3×3 to 13×13
Grid sizes
3
Surfaces per scan
20
Keywords per scan

Avg. Rank
2.1
↓ 1.4 vs prev scan
Top 3 Coverage
67%
Scan Complete
49 pts · San Francisco, CA · 7×7 grid
● “plumber near me” · San Francisco, CA
Why agencies trust the numbers
No customer logos to show off: just how Zuhya works. Every claim below is enforced in the product, not the pitch.
Every rank is a live Google result at that exact coordinate, never an estimate, never a model. A field with no source renders as a dash:Rank—
Google Maps, the Local Pack and organic websites are scanned and stored separately: the same keyword can rank differently on each, and Zuhya shows you where.
Posts, photos, review replies, services and profile edits ship through the official Google Business Profile API, from the same workspace that measures the map.
Client reports and portals carry your logo, accent and footer. Zuhya appears nowhere, down to the link-preview metadata, and the pages are noindexed so they never compete with your SEO.
Plans and top-up packs feed a single team wallet. The server is the sole authority on cost: you see the exact credit price before a run, and a failed scan refunds itself.
Start free: see your own map in minutes, no card required.
The heatmap, live
Pick a keyword, drop it on a map, and Zuhya scans a grid of points across the service area, reading each point’s live Google position and painting it on one continuous colour scale. Lush green where the business sits at rank one, amber where it’s slipping, burgundy where it’s barely on the map, slate where it doesn’t appear at all. One picture that tells a client exactly which neighbourhoods they own.
Sample data shown for illustration. Start free: see your own map in minutes, no card required.
The scan engine
Shape the measured area to the real territory, drag points onto the addresses that count, and run up to 20 keywords across all three Google surfaces in a single pass.
A square from 3×3 up to 13×13, a circle of concentric rings, or a polygon you draw yourself. Density auto-fits, roughly 7 points across the shorter dimension, capped at 250.
Nudge dots onto exact addresses, landmarks, or a competitor storefront. Custom-moved points persist exactly and scan at their precise coordinates: no drift, ever.
Up to 20 keywords across Google Maps, the Local Pack and organic websites: three surfaces, scanned and stored separately. Flip between them on the results screen without re-running.
A continuous colour ramp gives every position 1–20 its own shade: depth caps at 20, so 20+ drops to an off-scale bordo and a point with no data stays slate “—”. Never an estimate.
Cost = points × keywords × surfaces, and 1 credit = 1 scanned grid point. The server is the sole authority on the price, one wallet is shared across the team, and a failed scan refunds itself.
Surfaces
Google Maps · Local Pack · Organic (Website)
Estimated cost
169 pts × 20 kw × 3 surfaces = 10,140 credits
The server is the sole authority on cost: the exact figure is on screen before you press Run Scan failed scans auto-refund
1 credit = 1 scanned grid point. A 13×13 square = 169 points per keyword, per surface. Points you drag stay exactly where you put them, scan after scan.
3×3 up to 13×13
Ring k carries 8k points · total 1 + 4·h·(h+1)
~7 points across the shorter side · capped at 250 · 2% inset
Tracking & schedules
Schedules keep every target re-measuring on its own. History logs each run, analytics plots the climb on an inverted axis where a better rank rises, Compare puts any two scans side by side, and saved views make the whole workflow repeatable: the difference between a one-off audit and a retainer that renews.
3 tracked targets · better rank rises
Sample data shown for illustration.
A log of every run: avg rank, Top-3 %, status and a per-row trend sparkline from its lineage. Search and filter across everything you have ever measured.
Weekly or monthly, on autopilot. An atomic claim prevents double-runs and a reaper recovers stuck runs: the schedule keeps re-measuring even when something stalls.
Per-target rank-over-time on an inverted axis where a better rank rises, windowed to 30d / 90d / All.
Two scans as aligned columns with the heatmaps as headers, and a warning when the keyword or surface does not match, so you never compare apples to oranges.
Filters, columns and sort saved as named, reusable views: personal or shared with the team, so the whole workflow repeats itself.
| Location | Keyword | Avg Rank | Top-3% | Trend |
|---|---|---|---|---|
| Austin, TX | emergency plumber | 4 | 62% | |
| Round Rock | water heater repair | 6 | 48% | |
| Pflugerville | drain cleaning | 12 | 21% | |
| Cedar Park | leak detection | 8 | 37% |
Sample data
Same keyword · same surface · aligned
Sample data
Restores its filters, columns and sort: the same table, exactly the way you left it, personal or shared with the team.
Every scan you run is already part of the trend. Start free: scanning runs on credits, no plan required.
The Results Workspace
The competitor datagrid is the hero of every scan: a dense, analyst-grade table you can ship to a client. The KPI strip frames it, the rank-map gives it a place on the ground, and clicking any competitor repaints that map to their exact per-point footprint.
| Location | Avg Rank | Rank Pos | Top 3% | Market Share | Found In | Reviews | Review Rating | Website | Map URL |
|---|---|---|---|---|---|---|---|---|---|
YC Your Client · Riverside Plumbing | 3.4 | 1st | 71.6% | 100.0% | 96.3% | 412 | 4.8 ★ | — | — |
CD Citywide Drain & Sewer | 5.9 | 2nd | 48.1% | 67.0% | 88.9% | 289 | 4.6 ★ | — | — |
AH Anchor Home Services | 8.7 | 3rd | 27.2% | 38.0% | 74.1% | 156 | 4.4 ★ | — | — |
NP Northgate Plumbing Co. | 12.3 | 4th | 11.1% | 16.0% | 58.0% | 73 | 4.2 ★ | — | — |
BE Beacon Emergency Plumbers | 16.8 | 5th | 3.7% | 5.0% | 39.5% | 41 | 3.9 ★ | — | — |
Two points where the business doesn’t appear (slate) are counted at rank 21 (the “not found here” sentinel past the depth cap of 20), not ignored.
Per-quadrant averages show which side of the service area is slipping.
Sample data shown for illustration. While a real scan runs, results stream in progressively and the running layout is already the final workspace: no loading-layout jumps. Start free: see your own map in minutes, no card required.
Sortable, resizable, paginated. Avg Rank, Top 3%, Market Share, Found-In, ratings, categories, address and Maps URL. Four presets (Rankings · Competitive · Reputation · Full Data), drag to reorder, show or hide any column.
A grid point where a business never appears counts as rank 21 (the depth cap is 20, and 21 is the “not found here” sentinel), so absence pulls the average honestly instead of flattering it.
NW / NE / SE / SW averages surface exactly which side of the service area a listing is losing, so the fix has a direction, not just a number.
Selecting a row repaints the rank-map to that competitor’s exact per-point footprint and stays in hover sync with the grid. The map supports the analysis; the table leads it.
Switch the map to a softer pastel key for a calmer deck: the underlying rank data is untouched and the table pills keep their canonical colours.
Google Maps, the Local Pack and organic websites are scanned and stored separately. Flip between them on the results screen without re-running. Saved Views (personal and shared), scan history and 30d/90d/all trend windows keep the analysis repeatable.
Reputation · Citations · Site Health
Reviews, citations and profile health ship as one suite, not three add-ons. Grow the reviews that move rank, keep your name, address and phone consistent everywhere customers look, and let one honest score tell you what to fix next.
A star-gated funnel routes happy customers to Google and quietly catches the unhappy ones before they post.
Printable QR: carries the same routed, white-labeled link.
A Zuhya Score 0–100 blends completeness, reputation and performance from real data only, then names the next action.
Built from real data only. Figures shown are illustrative.
Continuous NAP checks read your listing across eight major providers and roll them into one weighted consistency score, so you know exactly where your name, address and phone disagree.
Eight providers, checked continuously
Citation checks never debit your credit wallet: they run on the Citations plan, not the scan meter. Figures shown are illustrative.
NAP consistency
88 / 100
Weights renormalise when a field is absent.
The suite reaches past the profile too: Site Health crawls the website behind it against 41 local-SEO rules and returns one 0–100 score. Every funnel, citation run and score is scoped to the GBP profile you’re viewing: same console, one client at a time. See the GBP workspace →
GBP Management · Live
The heatmap shows where a business stands; GBP Management is where you act on it: live, through the official Google Business Profile API. No tab-hopping between the map that found the gap and the profile that closes it.
Posts, including recurring
Publish to the profile directly: one-off, scheduled, or recurring posts that keep the profile active without weekly babysitting.
Photo queue with drip publishing
Edit geotags and keywords per photo, then let the queue drip-publish on schedule.
Review inbox with replies
Every review in one inbox; reply without leaving the workspace.
Services, attributes & business info
Edit the details Google actually ranks on (services, attributes, and core business info) from the same screen.
Zuhya Score, 0–100
One hygiene-weighted health number per profile: 45% completeness, 30% reputation, 25% performance.
Suggestions & setup checklist
A setup-progress checklist that turns the score into the next concrete fix.
See GBP plans → (priced per business managed).
Aurora Dental Studio
Portland, OR · setup checklist 9 of 12
Posts
PublishedNew patient special: free whitening consult with your first cleaning this month.
Photo queue
Scheduled · Tueoperatory-suite-2.jpg
Geotag 45.5231, −122.6765 · keywords: dentist, teeth whitening
Review inbox
“Painless from booking to billing. Dr. Hale explained every step.”
Your reply
Thank you, Maria. See you at your six-month checkup!
Sample content for illustration: the workspace ships these actions through the official Google Business Profile API.
Built for agencies
Every deliverable ships under your name: portals, share links, scan and compare reports, even the link unfurl. Zuhya stays invisible end to end, so the work reads as yours.
Login-free Overview, Rankings, Reputation, and Citations. Toggle the sections you want, set a per-portal headline and intro, and the numbers refresh themselves.
Your client pans and zooms the same grid you scanned, in the canonical rank colours, with every editing control stripped out.
Share on unlisted, noindex, revocable links. Zuhya is absent from the page, and from the OG and Twitter unfurl when the link is pasted.
Set the brand name, logo, accent, website, and footer with a live, client’s-eye preview. Owner-gated, so the deliverable always matches your brand.
Manager, Member, and Viewer seats with invites, reversible archive vs delete, leave-team, and owner transfer.
Serve reports from reports.youragency.com via guided DNS setup and verification with host-based routing. Set noindex.
Austin, TX· “plumber near me” · 9×9 grid · sample data
Top competitors
| Competitor | Avg Rank | Top 3% | Market Share |
|---|---|---|---|
| Hill Country Plumbing | 2 | 71% | 34% |
| Lone Star Drain Co. | 5 | 48% | 22% |
| Capital City Rooter | 11 | 21% | 12% |
| Barton Springs Pipe | — | — | — |
This is the whole report. Notice what’s missing.
reports.northbeam-seo.com
Local Visibility Report · Austin, TX
Northbeam SEO· ranking heatmap & competitor breakdown
Portals and reports are set noindex, and share links are revocable at any time. Custom portal domains are rolling out in early access. Branded reports and portals on Zuhya share links work today. Start free: see your own map in minutes.
API & Integrations
Every grid point is reachable from the outside: a REST API with an OpenAPI spec, a signed webhook the instant a scan finishes, Slack, Discord and Zapier out of the box, and an MCP server so Claude and other AI clients can drive the workspace for you.
{ "keyword": "plumber near me", "surface": "google_maps", "status": "completed", "avg_rank": 2.4, "results": [ { "lat": 37.7712, "lng": -122.4194, "rank": 1 }, { "lat": 37.7712, "lng": -122.4083, "rank": 3 }, { "lat": 37.7601, "lng": -122.4194, "rank": 9 }, { "lat": 37.7490, "lng": -122.3972, "rank": 18 } … // 45 more points ]}Pull scans, leads and results over /api/v1 with a Bearer zk_ key, hashed at rest, never stored in plain text. The whole surface is described in an OpenAPI spec.
scan.completed, scan.failed and lead.created fire the moment they happen, each delivery signed with X-Zuhya-Signature (HMAC-SHA256) so your endpoint can verify the sender. lead.created ties CRM lead capture straight into your own stack.
Connect Claude, or any MCP-capable client, to the workspace itself: create GBP posts, run scans and schedule reports by asking for them.
Finished scans and new leads land in the channels your team already watches, and the Zapier connector wires Zuhya into everything else.
Cached reads
Free
Any keyword already in the cache costs nothing to read again.
Fresh lookups
250/day
A free daily quota covers fresh keyword lookups.
Batch mode
~10× cheaper
Research lists in bulk instead of one keyword at a time.
Premium metrics
Volume + CPC
Search volume and CPC come included with GBP Management plans.
Everything on this card ships today. Start free: see your own map in minutes, no card required.
The difference
Single-keyword, Maps-only grid trackers stop at one coloured square. Zuhya measures all three ranking surfaces over a grid you can reshape, keeps re-measuring on a schedule, and hands your client a report under your brand, all on one transparent credit wallet.
The same keyword on two of the three surfaces. Organic websites are scanned and stored separately too.
The same keyword on two of the three surfaces. Organic websites are scanned and stored separately too.
| Capability | Single-keyword Maps tracker | Zuhya |
|---|---|---|
| Ranking surfaces | one keyword · Maps only | Three surfaces in one pass: up to 20 keywords across Google Maps, the Local Pack and organic websites, each scanned and stored separately. Flip between them on the results screen without re-running. |
| Grid geometry | rigid square | Square (3×3 up to 13×13), circle, or hand-drawn polygon. Drag individual points anywhere; the engine scans those stored coordinates verbatim. No snap-back, no drift. |
| Automation | static, run-it-yourself | It re-measures itself, and refunds itself: weekly and monthly scheduled scans with atomic claiming, a reaper that recovers stuck runs, and auto-refunds on failed scans. |
| White-label | the tracker's brand | The report is yours, not ours: branded reports and client portals with Zuhya absent down to the link-preview metadata, noindexed so they never compete with your SEO, and share links you can revoke. Prepared by Your Agency |
| Pricing model | monthly seats | Scanning runs on prepaid credits, not per-seat pricing: 1 credit = 1 scanned grid point, the server computes the exact cost and shows it before you run. Module subscriptions are sized by businesses managed, not seats. |
Tracker: one keyword · Maps only
Three surfaces in one pass: up to 20 keywords across Google Maps, the Local Pack and organic websites, each scanned and stored separately. Flip between them on the results screen without re-running.
Tracker: rigid square
Square (3×3 up to 13×13), circle, or hand-drawn polygon. Drag individual points anywhere; the engine scans those stored coordinates verbatim. No snap-back, no drift.
Tracker: static, run-it-yourself
It re-measures itself, and refunds itself: weekly and monthly scheduled scans with atomic claiming, a reaper that recovers stuck runs, and auto-refunds on failed scans.
Tracker: the tracker's brand
The report is yours, not ours: branded reports and client portals with Zuhya absent down to the link-preview metadata, noindexed so they never compete with your SEO, and share links you can revoke.
Tracker: monthly seats
Scanning runs on prepaid credits, not per-seat pricing: 1 credit = 1 scanned grid point, the server computes the exact cost and shows it before you run. Module subscriptions are sized by businesses managed, not seats.
Start free: see your own map in minutes, no card required.
Pricing
Scanning runs on prepaid credits: no plan required to scan. The GBP Management and Citations modules are monthly subscriptions, sized by the number of businesses you manage.
5,000
credits
$3.80 / 1,000 credits
8,000
credits
$3.63 / 1,000 credits
15,000
credits
$3.27 / 1,000 credits
40,000
credits
$2.48 / 1,000 credits
1 credit = 1 scanned grid point. Cost is simply points × keywords × surfaces: no per-seat math, no hidden multipliers.
The server is the sole authority on cost. You see the exact credit price before a run; the client estimate is informational and can never overcharge you.
Failed scans refund themselves. If a run fails, its credits come straight back to the wallet, automatically.
One wallet, shared across the team. Packs top up a single team wallet everyone draws from, not per-user balances.
Manage Google Business Profiles at scale: posts, reviews, premium keyword metrics (search volume + CPC), the developer API, outbound webhooks and the Zapier connector.
Continuous NAP consistency checks across the major business directories. Subscription-covered: citation checks never debit credits.
Subscription-covered: citation checks never debit credits.
How it works
Scan the map, read the results, report under your brand. Every figure below is enforced in the product, not the pitch.
Drop a pin, choose up to 20 keywords and a grid: square, circle, or a hand-drawn polygon. The server states the exact credit cost before the run; a failed scan refunds itself.
Ranks paint across the city on three surfaces (Google Maps, the Local Pack and organic websites, scanned and stored separately), then land in a dense, sortable datagrid: average rank, top-3, market share, and who beats you where.
Share a white-label report or client portal under your logo, accent and footer. Zuhya appears nowhere, down to the link-preview metadata, and share links stay revocable.
Your logo, accent and footer. Zuhya appears nowhere, down to the link-preview metadata.
Illustrative sample data: the artifacts show the workflow, not a real account.
No customer counts, no fake logos: just the limits and guarantees you can verify the moment you sign in.
Google Maps, the Local Pack and organic websites, scanned and stored separately. Flip between them on the results screen without re-running.
One run carries up to 20 keywords over the same grid, each painted as its own heatmap.
Every position gets its own interpolated shade. 20+ drops to an off-scale bordo; no-data stays a slate “—”, never a guess.
Hand-drawn territories fill with adaptive density: about 7 points across the shorter dimension, capped at 250, with dots kept off the edges.
Google, Bing, Yelp, Foursquare, HERE, TomTom, Mapbox and OSM, checked continuously for NAP consistency. Citation checks never debit credits.
One 0–100 GBP health score: completeness 45, reputation 30, performance 25.
A failed scan refunds itself automatically, into the one credit wallet your whole team shares. The server is the sole authority on cost.
Heatmap scans · GBP Management · Reputation · Citations · Site Health · Reports · Client Portals · CRM · Developer API.
No credit card required.
FAQ
The short version of how Zuhya bills, measures and reports. Every number here comes from the same definitions the product runs on.
Something else on your mind? Contact us: a person answers.
No. Scanning runs on prepaid credits, and 1 credit = 1 scanned grid point. Top-up packs start at $19 for 5,000 credits, shared across your whole team from one wallet.
A failed scan refunds itself automatically. The server is the sole authority on cost (the estimate you see before a run is informational), so your wallet is never debited for points that didn’t scan.
Every rank is a live Google result read at that exact grid coordinate, across three surfaces (Google Maps, the Local Pack and organic websites), scanned and stored separately. Nothing is estimated: where there’s no data, you see a dash.
No. White-label reports and portals carry your logo, accent and footer; the pages are noindexed and even the link-preview metadata is scrubbed of Zuhya. Share links stay revocable at any time.
Manage Google Business Profiles at scale: posts, reviews, premium keyword metrics (search volume + CPC), the developer API, outbound webhooks and the Zapier connector. Tiers are priced by businesses managed, from $59/mo for Solo (1 business).
No. Citation checks never debit credits. Continuous NAP consistency monitoring is covered by the Citations subscription, from $19 to $299/mo depending on how many businesses you monitor.
Yes: a REST API at /api/v1 with Bearer keys, outbound webhooks signed with X-Zuhya-Signature, an OpenAPI spec and a Zapier connector. There’s also an MCP server, so Claude and other AI clients can run scans, create posts and schedule reports.
Get started
Drop a keyword on a map and watch your service area paint itself, point by point, with live Google positions, across Maps, the Local Pack and organic websites.
No credit card required.