M09 · Grid Ranking geo-grid SEO heatmap for restaurant chains

The decision, in one line

Decodo Scraper API · target=google_maps + custom DOM parse, anchored on Places-API-geocoded outlet lat/lng. $0.001 per pin, 5-8 s, returns 1-20 rank depth with 13 per-place fields (rating, reviews, category, address, hours). 5× the brand-visibility coverage of the Search local-pack 3-pack at the same cost.

12case studies
4brands
3cities
1,549Decodo queries
$1.55total spend
54%avg pin coverage

Case studies 14

Live Decodo Scraper API runs on real outlets. Each card has a thumbnail of the area (Google Static Maps) and links to the interactive heatmap. Hover any pin on the heatmaps to see the top-10 ranked competitors with ratings.

dominance Method C

Toit

Indiranagar · Method C (Maps top-20) · Bangalore

5×5 · 1 km · 25 pins

Toit dominates craft-beer queries across Bangalore. Hover pins to see the full Bier Library/BLR Brewing/Indian Biere House landscape Toit is competing in.

keywordcoverageSoLVAGR
best brewery bangalore88%56%2.95
craft beer bangalore96%96%1.00
drop-off Method A

Toit

Indiranagar (extended) · Bangalore

11×11 · 1.5 km · 121 pins

11×11 1.5 km — Toit's brand catchment across the city for craft-beer queries.

keywordcoverageSoLVAGR
best brewery bangalore98%3%8.83
craft beer bangalore43%42%2.17
variation Method A

Toit

Indiranagar (flagship brewpub) · Bangalore

7×7 · 1 km · 49 pins

Even branded queries return rank 2-4 here — useful demo of yellow/green mixing across pins.

keywordcoverageSoLVAGR
toit indiranagar100%0%4.00
best brewery bangalore100%18%7.82
craft beer indiranagar100%100%2.29
dominance Method C

Anardana

Sangam Courtyard · Method C (Maps top-20, geocoded) · Delhi NCR

5×5 · 0.5 km · 25 pins

5×5 / 0.5 km. Outlet coords resolved via Google Places API (place_id ChIJbZCrwQQdDTkRC7ARXvyMSsY). Previous coord guess was 1.4 km off — corrected version shows 72% SoLV for category queries.

keywordcoverageSoLVAGR
best indian restaurant100%72%3.00
best north indian restaurant88%0%5.23
drop-off Method C

Anardana

Vasant Kunj · Method C (Maps top-20) · Delhi NCR

5×5 · 1 km · 25 pins

5×5 grid via Method C. Hover any pin: side panel shows top 10 actual competitors at that lat/lng — Dilli Kanteen, Mala-Akbari, AnnaMaya, etc. Anardana row is highlighted blue when present.

keywordcoverageSoLVAGR
best indian restaurant88%8%6.55
best north indian restaurant68%4%6.41
dominance Method A

Anardana

Sangam Courtyard, RK Puram · Delhi NCR

5×5 · 0.3 km · 25 pins

Tight 5×5 at 0.3 km — the outlet owns its block on category keywords, not just brand.

keywordcoverageSoLVAGR
anardana100%100%1.00
best indian restaurant100%100%1.88
fine dining0%0%
drop-off Method A

Anardana

Ambience Mall, Vasant Kunj · Delhi NCR

11×11 · 1.5 km · 121 pins

11×11 grid spanning ~15 km — Anardana's catchment ring vs the rest of South Delhi.

keywordcoverageSoLVAGR
best indian restaurant21%21%2.04
best north indian restaurant12%12%2.29
drop-off Method A

Anardana

Ambience Mall, Vasant Kunj · Delhi NCR

7×7 · 1 km · 49 pins

Branded queries dominate; category queries show clear geographic drop-off past ~2 km.

keywordcoverageSoLVAGR
anardana100%100%1.00
best indian restaurant39%39%2.05
best north indian restaurant18%18%2.78
drop-off Method A

Anardana

Ambience Mall, Vasant Kunj · Delhi NCR

9×9 · 1 km · 81 pins

Same outlet, wider grid — the circular fade-out around the mall becomes obvious.

keywordcoverageSoLVAGR
anardana100%100%1.00
best indian restaurant40%40%1.72
dominance Method A

Karim's

Jama Masjid, Old Delhi · Delhi NCR

9×9 · 1.2 km · 81 pins

Iconic single-outlet brand in dense urban core — 9×9 1.2 km shows how it owns Old Delhi.

keywordcoverageSoLVAGR
karims100%100%1.00
best mughlai food old delhi0%0%
absent Method A

Anardana

Bandra coords (no outlet) · Mumbai

7×7 · 1 km · 49 pins

Negative reference — the brand doesn't operate in Mumbai. Honest all-grey heatmap.

keywordcoverageSoLVAGR
best italian restaurant0%0%
italian food0%0%
best pasta0%0%
branded-only Method A

Theobroma

Pali Hill, Bandra · Mumbai

5×5 · 0.5 km · 25 pins

Bakery chain — branded query is uniform #1, generic 'best bakery' doesn't surface them.

keywordcoverageSoLVAGR
theobroma bandra100%100%1.00
best bakery mumbai0%0%
brownies bandra0%0%
A vs C comparison

Anardana · A vs C

Vasant Kunj · same 25 pins, both methods · Delhi NCR

25 pins · 2 methods overlaid

5.5× brand visibility (C vs A)

methodcoveragedepth
A · Search local-pack16% (4/25)top 3
C · Maps top-2088% (22/25)top 20
A vs C comparison

Toit · A vs C

Indiranagar · same 25 pins, both methods · Bangalore

25 pins · 2 methods overlaid

0.9× brand visibility (C vs A)

methodcoveragedepth
A · Search local-pack100% (25/25)top 3
C · Maps top-2088% (22/25)top 20

Methods compared

Four delivery paths for geo-anchored Google ranking data — all tested empirically. Same lat/lng went into every method (verified across a 7-variant config probe).

methodA · Search local-packB · Camoufox + IN proxyC · google_maps + parse
endpointScraper API google_search · parse=trueCamoufox over Decodo ISP proxy → Maps DOMScraper API google_maps · custom regex parse
cost / query$0.001~$0 (proxy bandwidth only)$0.001
speed / query2-4 s15-30 s5-8 s
rank depth1-3 (local-pack only)1-201-20
per-place fieldsname + positionname (DOM scrape)13 fields incl. rating, reviews, category, address, hours
infrastructurenoneheadless worker pool + proxy mgmtnone
geo-anchoringserver-spoofed to lat/lng/radiusreal proxy IP + Maps viewport URLserver-spoofed to lat/lng/radius
elapsed (9 pins)5sn/a24s
matched in (9 pins)7/9n/a5/9
verdictmisses 80% of brands ranking 4-20backup / verification only← V1 primary

5× coverage finding (Anardana Vasant Kunj, 25 pins): Method A found the brand at 4/25 pins (16%); Method C found it at 21/25 (84%) — anywhere in top-20. Same cost, same lat/lng, same Decodo plan. Method A is structurally blind to ranks 4-20 because the Search local-pack only shows 3.

Why same lat/lng disagreed earlier: we were comparing Search rad: 1000m against Maps viewport zoom=14z — different geo-scope conventions, not different rankings. A 7-variant controlled probe showed that locale, domain, and radius barely affect Scraper API output; lat/lng is the only knob that moves the local pack.

Data sources surveyed

Subagent verified pricing live on 2026-05-27 across 12 providers. Full brief in docs/google-data-sources-brief.md.

provider$/1M queriesdepthlat/lng?verdict
DIY · Camoufox + Webshare/Decodo proxy$300-800100via headless URLbrittle, ops-heavy
Serper.dev (est.)$300100yesfastest 1-2s; "scan now" demos
DataForSEO Standard (Search)$600100yesV1.5 — Search-side cost cut
Decodo Scraper API (Search + Maps)$1,000100yesV1 primary (what we ship)
ValueSERP top tier$1,000100yesTier 2 fallback
Oxylabs SERP$1,000-1,350100yesenterprise alt
Bright Data SERP (est.)$1,500100yespremium fallback
Apify Google Maps$2,100120+yestoo slow daily
SerpApi$9,000100yes10× our cost — hard pass
ScraperAPI~$12,500DIYDIYhard pass
ScrapingBee$14,700DIYDIYhard pass
Google Places APIvariesn/an/anot a ranking API · used for outlet geocoding only
Ahrefs APIper-unittheir indexcity onlykeyword research only

Sprint roadmap

Each sprint compounds raw-data depth on the same $0.001 Decodo query — no new spend, just better extraction + compute.

Sprint 1 · shipped

Rich place extraction

Two-surface parser (DOM regex + "Suggest an edit" data blob) emits 13 fields/place: name, KG_ID, ChIJ_ID, rating, review_count, category, full address, hours, phone, website, operating status, price tier, photo, review snippet.

research doc →

Sprint 2 · pending

New metrics from rich data

Review-Weighted Visibility (RWV = Σ rank_weight × log(review_count)), competitor density per pin, category-mix donut, open-now coverage, rating-gap analysis. All from Sprint-1 data — zero new queries.

est. 1 day · differentiates from BrightLocal/Local Falcon

Sprint 3 · researched

Time series + diff playback

Postgres 16 + Timescale-compatible schema (hypertable at 10M rows). Leaflet TimeDimension for weekly playback, custom Canvas delta-arrows. Risk flagged: alert fatigue — needs per-customer threshold tuning before rollout.

research doc →

Ahrefs cross-check

Pulled live via Ahrefs MCP to validate which keywords Anardana actually owns organically (India, May 2026).

Every one of Anardana's top organic keywords is branded. That's why the category-keyword layers in our heatmaps (e.g. "best indian restaurant") reveal real geographic variation — Anardana doesn't own those queries at scale.

keywordvolume / mo (IN)best postraffic / moflags
anardana restaurant3,80011,211branded
anardana chandigarh5,8002846branded · local
anardana ranchi2,3004213branded · local
anardana gurgaon2,0004191branded · local
anardana restaurant delhi8002138branded · local
anardana sangam courtyard1,2004108branded · local
anardana karkardooma450441branded · local
anardana menu100138branded