M09 — SEO Grid Ranking · Case studies

Per-outlet geo-grid Google rank tracker (BrightLocal Local Search Grid pattern). Each pin = one geo-anchored Google query via Decodo. Compare brands, cities, grid sizes, and pin spacings below. Each heatmap is interactive — switch keyword, filter rank buckets, swap base map (OSM ↔ Google), hover for cross-keyword view.

9case studies
1399Decodo queries
~$1.40spent
Pattern legend: drop-off dominance variation branded-only absent
Rank buckets (on map): 1-3 4-10 11-20 not top 20
recommendation · V1 default updated 2026-05-27

Use Method C (Scraper API · google_maps target + custom parse) as V1 default

After probing 7 config variants and 4 delivery methods, the right primary for Breeze's grid tracker is the Decodo Scraper API's google_maps target with custom DOM parsing. Same lat/lng anchoring, same per-query cost ($0.001), but returns 1-20 rank depth instead of Search local-pack's 1-3.

methoddepthcost/qspeedinfraverdict
A · Scraper API · google_search1-3$0.0012-4snonemisses brands ranking 4-20
C · Scraper API · google_maps + parse1-20$0.0015-8snone← V1 primary
B · Camoufox + Decodo IN proxy1-20~$015-30sworker pool + proxy mgmtbackup for verification; not primary at scale
DataForSEO google_maps1-20~$0.0032-5snoneoption if Decodo google_maps breaks

Why this beats our earlier "Method A for V1" call: we hadn't tested target: google_maps with custom HTML parsing. Decodo runs server-side headless on that endpoint and embeds place names in a clean <span class="OSrXXb"> pattern that regex-extracts in 5 lines. Anardana ranks 6/20 at Vasant Kunj center on category queries — Method A returned nothing (only top-3); Method C surfaces the truth.

Delhi NCR

drop-off 7×7 · 1 km · 49 pins

Anardana — Ambience Mall, Vasant Kunj

Delhi NCR

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

keywordAGRATGRSoLVfound
anardana1.001.00100%49/49
best indian restaurant2.0513.6539%19/49
best north indian restaurant2.7817.6518%9/49
drop-off 9×9 · 1 km · 81 pins

Anardana — Ambience Mall, Vasant Kunj

Delhi NCR

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

keywordAGRATGRSoLVfound
anardana1.001.00100%81/81
best indian restaurant1.7213.3840%32/81
drop-off 11×11 · 1.5 km · 121 pins

Anardana — Ambience Mall, Vasant Kunj

Delhi NCR

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

keywordAGRATGRSoLVfound
best indian restaurant2.0417.0821%25/121
best north indian restaurant2.2918.8312%14/121
dominance 5×5 · 0.3 km · 25 pins

Anardana — Sangam Courtyard, RK Puram

Delhi NCR

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

keywordAGRATGRSoLVfound
anardana1.001.00100%25/25
best indian restaurant1.881.88100%25/25
fine dining21.000%0/25
dominance 9×9 · 1.2 km · 81 pins

Karim's — Jama Masjid, Old Delhi

Delhi NCR

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

keywordAGRATGRSoLVfound
karims1.001.00100%81/81
best mughlai food old delhi21.000%0/81

Mumbai

absent 7×7 · 1 km · 49 pins

Anardana — Bandra coords (no outlet)

Mumbai

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

keywordAGRATGRSoLVfound
best italian restaurant21.000%0/49
italian food21.000%0/49
best pasta21.000%0/49
branded-only 5×5 · 0.5 km · 25 pins

Theobroma — Pali Hill, Bandra

Mumbai

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

keywordAGRATGRSoLVfound
theobroma bandra1.001.00100%25/25
best bakery mumbai21.000%0/25
brownies bandra21.000%0/25

Bangalore

variation 7×7 · 1 km · 49 pins

Toit — Indiranagar (flagship brewpub)

Bangalore

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

keywordAGRATGRSoLVfound
toit indiranagar4.004.000%49/49
best brewery bangalore7.827.8218%49/49
craft beer indiranagar2.292.29100%49/49
drop-off 11×11 · 1.5 km · 121 pins

Toit — Indiranagar (extended)

Bangalore

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

keywordAGRATGRSoLVfound
best brewery bangalore8.839.133%118/121
craft beer bangalore2.1712.9142%52/121

Method A vs Method C · same pins, two API targets

Both methods hit the Decodo Scraper API at $0.001/query. Method A uses target: google_search with parse: true (returns the 3-result local pack). Method C uses target: google_maps + custom DOM parse (returns 10-20 ranked places — same lat/lng anchoring). For brands ranking 4-20, Method A misses them entirely while Method C catches them.

method comparison 25 pins · 2 methods overlaid

Anardana · A vs C

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

Method A finds Anardana on 16% of pins (top 3 only); Method C finds it on 44% (top 20). Nearly 3× discovery, same cost & speed.

methodSoLVfounddepth
A · Search local-pack16%4/25top 3
C · Maps results44%22/25top 20
method comparison 25 pins · 2 methods overlaid

Toit · A vs C

Bangalore · Indiranagar · same 25 pins, both methods

When brand ranks ≤3 in local pack, both methods agree. Toit is genuinely top-3 for craft-beer queries, so A and C return the same SoLV (36%).

methodSoLVfounddepth
A · Search local-pack36%25/25top 3
C · Maps results36%25/25top 20
live method comparison · Camoufox + IN proxy vs Scraper API 3×3 · 1 km · 9 pins · "best indian restaurant" @ Vasant Kunj

Both delivery modes, side by side

We re-ran 9 pins through both pipelines: Method A hits Decodo's Scraper API (server-side render + geo-spoof + JSON parse). Method B launches Camoufox (stealth Firefox) over one of our 50 Decodo Indian ISP proxies, opens Google Maps for the lat/lng, and reads the rendered place list from the DOM.

A · Scraper APIB · Camoufox + IN proxy
surface measuredGoogle Search "local pack" (3-result)Google Maps results column (10+ places)
total elapsed (9 pins)5.0s24.2s
avg per pin3.4s7.6s
cost (this run)$0.0090$0 (proxy bandwidth)
brand matched7/9 pins5/9 pins
geo-anchoringserver-spoofed to exact lat/lngreal proxy IP geolocation + Maps viewport URL

Pin-by-pin (where is Anardana?):

pinA: Scraper API rankB: Camoufox+IN rank
r0c0#3
r0c1#2
r0c2#1
r1c0
r1c1#2#5
r1c2#1#6
r2c0#2
r2c1#1#3
r2c2#1#4

Takeaway: Both pipelines find Anardana, but disagree on order — the Scraper API consistently ranks 1-3 (local-pack curation); Maps ranks 2-6 (raw distance-weighted list). They measure different SEO surfaces. At ~5× the latency per pin, Method B is unsuitable for ad-hoc grid scans but useful when you specifically want the Maps app view (where most consumer discovery actually happens) or want to verify Scraper API output without paying per query.

why the disagreement? · config variants center pin · 7 variants · 1 keyword · 1 brand

Same lat/lng. Different results. Why?

We held the pin (28.5414, 77.1518), keyword ("best indian restaurant"), and brand (Anardana) constant and varied 3 knobs: surface (Search local-pack vs Maps results column), geo scope (Scraper API's rad: Xm vs Maps' viewport zoom=Nz), and locale/domain.

#surfaceconfigAnardanatop 3
A1Search · local pack (top-3)locale=en-us, domain=com, rad=1000mDilli Kanteen Kitchen · AnnaMaya FoodHall - Andaz Delhi · Mala-Akbari Ambience Mall Vasant Kunj
A2Search · local pack (top-3)locale=en-in, domain=co.in, rad=500mDilli Kanteen Kitchen · AnnaMaya FoodHall - Andaz Delhi · Mala-Akbari Ambience Mall Vasant Kunj
A3Search · local pack (top-3)locale=en-in, domain=co.in, rad=1000mDilli Kanteen Kitchen · AnnaMaya FoodHall - Andaz Delhi · Mala-Akbari Ambience Mall Vasant Kunj
A4Search · local pack (top-3)locale=en-in, domain=co.in, rad=2000mDilli Kanteen Kitchen · AnnaMaya FoodHall - Andaz Delhi · Mala-Akbari Ambience Mall Vasant Kunj
B1Maps · results columnzoom=12z (wide ~30 km viewport)Bukhara · Karan South Indian Restaurant · White Oak Restaurant
B2Maps · results columnzoom=14z (default ~3 km)#6AnnaMaya FoodHall - Andaz Delhi · Amaya - The House Of Curries · Dilli Kanteen Kitchen
B3Maps · results columnzoom=16z (tight ~500 m)Dilli Kanteen Kitchen · Mala-Akbari Ambience Mall Vasant Kunj · Spicy Triangle

What we learned:

Re-run: python probe_config_variants.py · raw: samples/config-variants.json

cross-check · Ahrefs

What Anardana actually ranks for (organic, India, May 2026)

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

keywordvol / 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

Ahrefs Site Explorer · target=anardana.in, mode=subdomains, country=in, date=2026-05-01, order=sum_traffic.