SEO Local for ChatGPT: How to optimize and get found by customers near you

This article breaks down how local results are actually generated inside ChatGPT, why Foursquare quietly became the most important local data source, and what you need to do right now if you want your business to appear when users ask AI for recommendations nearby.

When users ask ChatGPT things like:

“Best florists near me”
“Good locksmiths in Flatbush”
“Wedding restaurants in Brooklyn”

ChatGPT does not rely on memory or a web index.

It flips a switch.

Behind the scenes, ChatGPT triggers a live search to Foursquare’s Places API.

That API includes:

  • 100M+ points of interest
  • 200+ countries
  • Structured fields (categories, hours, coordinates, photos, ratings)

Between 60% and 70% of the local businesses ChatGPT shows first come directly from Foursquare. This insight comes from a deep reverse-engineering study of ChatGPT’s internal JSON responses, published by SEO researcher Natzir Turrado and Yago Vázquez.

How ChatGPT decides when to show local results?

Before any business appears, ChatGPT runs a query classifier internally.

That classifier (internally called SONIC) assigns a probability score to every prompt:

  • If search_prob ≥ 0.54 → ChatGPT calls live search
  • If < 0.54 → ChatGPT answers from memory

Local queries almost always cross that threshold.

Why?

Because location + service intent = high uncertainty, and AI doesn’t trust its training data for that.

So it searches.

And when it does, Foursquare usually responds faster than scraped Google SERPs.

ChatGPT does not re-rank local results by quality, that means no rating sorting, no proximity weighting, no “open now” logic, instead:

  1. Foursquare results arrive milliseconds faster
  2. SERP-scraped results arrive a bit later
  3. ChatGPT concatenates results in arrival order
  4. The UI renders the first 10 results

This is why:

  • Foursquare listings dominate the top
  • Google Maps links appear as fallback
  • The same business can appear twice under different names
  • Small towns behave wildly differently than big cities

Why small cities are a goldmine?

Foursquare’s coverage is not evenly distributed, venue density closely tracks population density. That means:

  • New York City → thousands of venues → fierce competition
  • Brooklyn → sparse listings → huge opportunity
  • Flatbush → incomplete data → ranking chaos

In low-density areas, having any complete Foursquare listing can put you in the top results by default.

This is one of the biggest untapped arbitrage opportunities in local AI search today.

How to do SEO Local for ChatGPT?

This is local SEO adapted to where users now search.

1. Claim and optimize your Foursquare listing

If your business is not on Foursquare, you don’t exist to ChatGPT.

Minimum fields to complete:

  • Business name (no variants)
  • Primary category
  • Address (exact formatting)
  • Latitude / longitude
  • Opening hours (critical)
  • Price range
  • Photos

Why hours matter? ChatGPT exposes an is_open flag directly in the UI. Empty hours = invisible advantage lost.

2. Use consistent NAP

ChatGPT does not deduplicate.

If your business appears with:

  • Different names
  • Different URLs
  • Different categories

…you may accidentally cannibalize yourself, or intentionally dominate the list.

This is dangerous territory, but advanced operators already exploit it.

At minimum: be consistent everywhere.

3. Optimize for the safe URL whitelist

ChatGPT applies two layers of link filtering:

  1. Blocked URLs (blacklist)
  2. Safe URLs (whitelist)

Only whitelisted domains get:

  • Clickable links
  • Image thumbnails
  • Rich previews

If your site never appears in trusted directories (TripAdvisor, Yelp, TheFork, etc.), you are unlikely to be clickable even if mentioned.

Local PR still matters, but now it feeds AI interfaces, not just Google.

4. Image Optimization Is Now AI UI Optimization

ChatGPT serves images directly from:

  • Foursquare CDN
  • Bing thumbnails

Images are:

  • Cropped to 4:3
  • Center-cropped (no smart framing)

Best practices:

  • Square or near-square images
  • Leave padding around logos
  • Avoid text near edges
  • Upload multiple angles

5. Identify “search-triggered” local queries in advance

Because the SONIC threshold is known (~0.54), you can:

  • Train a simple classifier
  • Label prompts as “search-triggered” vs “memory-answered”
  • Focus local SEO only where ChatGPT actually searches

This avoids wasting time on prompts that will never hit live retrieval.

How Decoding helps you win local visibility in AI Search

At Decoding, we don’t guess.

We:

  • Audit your brand and local entity presence across AI systems
  • Identify which data providers power your visibility
  • Fix structural blind spots (not just content)
  • Monitor how ChatGPT, Gemini, and other models surface your business over time

If your customers ask AI for recommendations, you need to be there.

👉 Work with Decoding


Comments

  1. Flux API Avatar
    Flux API

    I love that the blog dives into how the SONIC classifier works to determine when to pull live data. It’s interesting to see how AI doesn’t just rely on training data but seeks out more accurate and timely results for local searches. It would be great to see if this pattern extends to other types of queries, too.

Leave a Reply

Your email address will not be published. Required fields are marked *