Key takeaways
- ChatGPT answers "best X in [city]" differently for every city, so a single national visibility number hides where you actually lose.
- Per-city analysis means running the same fixed prompt set across locations, then comparing who gets named, in what position, and which sources get cited.
- Promptwatch Data (Sep 28 to Oct 4, 2026) shows product pages, landing pages and listicles earn roughly 70% of citations on commercial prompts, which is where most local queries sit.
- Almost half of ChatGPT responses cite 10 or more domains, so you are competing with a crowd of third-party sources, not only rival businesses.
- A manual ChatGPT chat is fine for a first pass. For repeatable tracking across many cities, use a dedicated AI visibility tool.
Why a national view of ChatGPT visibility misleads you
Say you run a plumbing company, a dental group or a chain of coworking spaces. You ask ChatGPT "best coworking space" and your brand shows up. Great. Then someone in Leeds asks the same thing and you are nowhere, while a competitor you barely think about owns the answer.
That is the problem with averaging. Local competition is local. The rival who beats you in Denver may not exist in Austin, and the reason they win in Denver (a strong listicle placement, a pile of reviews, a well-built city landing page) may be completely different from the reason someone else wins in Austin.
So the job is to build a city-by-city map: who gets named, who gets named first, which sources ChatGPT pulls from, and what those sources have in common. Then you fix the gaps one city at a time.
A caveat up front. I could not find public data on how ChatGPT uses location signals internally, and none of the Promptwatch Data reports I'm citing below break results down by city. The numbers here describe general ChatGPT behavior that carries over to local queries. Treat them as the pattern to test for in your own cities, not as proof of a city-level rule.
Step 1: Build a city-level prompt set
Start with the prompts a real customer in each city would type. Three types cover most of it:
- Organic local prompts, no brand named: "best family dentist in Portland", "emergency plumber near downtown Chicago".
- Competitor comparison prompts: "[You] vs [Rival] in Manchester".
- Brand-specific prompts: "is [You] good for [use case] in Seattle?"
Keep the wording identical across cities, changing only the place name. That is the whole point. If you rewrite the prompt for each city, you can no longer tell whether a result changed because of the city or because of the phrasing.
Aim for 5 to 10 prompts per city, and include neighborhoods for large metros. "Near me" style prompts behave differently from named-city prompts because the answer depends on where the request appears to come from, so test both.
Use the research on query shape
Promptwatch's data on query fan-outs is worth knowing here. On August 8, 2026, ChatGPT started using the site: operator at scale: the share of fan-out queries using it jumped from 0.37% to 16.8% in a day, and average fan-out queries per response rose from about 1.08 to about 1.83 (Promptwatch Data on the site: operator). Two takeaways for local work. Your own domain is now a retrieval surface, so city pages that cannot be crawled or indexed are a real handicap. And any prompt-to-query mapping you built before that date is stale.
Step 2: Run the first pass in ChatGPT itself
A plain chat session is a decent starting point. Give it a role and a fixed structure. The SEO for Journalism newsletter shows this approach with a prompt that tells ChatGPT it is a news SEO editor at the Toronto Star and asks for the top digital-only publications covering Toronto city news. It then suggests content areas to dig into, for example that BlogTO owns local "how/where/when" queries.

The more context you give, the better the first answer gets. A reusable template for local work:
You are a local SEO analyst for [business type] in [city].
List the 8 businesses most likely to be recommended for
"[service] in [city]". For each, give: positioning,
neighborhoods served, review profile, and which websites
or directories mention them. Cite a source URL for every claim
and flag anything you are unsure about.
Reuse it verbatim for every city and every competitor so the outputs are comparable. Competely's guide makes the same point: fixed structure, a source for every claim, and manual verification of anything involving pricing or recent changes, since those are what ChatGPT gets wrong most.

Where the manual approach breaks
Three problems show up fast. Single runs are noisy, so one answer tells you little. ChatGPT in a browser tab rarely reflects a different city unless you work hard at it. And doing 10 prompts across 30 cities by hand is 300 runs, which nobody repeats weekly. Use manual testing to learn what to track, then automate.
Step 3: Record the right things per city
For each prompt in each city, log:
- Which businesses are named, and in what order.
- Whether you appear, and at what position.
- Which domains are cited as sources.
- Which content type each cited page is (product page, landing page, listicle, review, directory).
- Any sentiment cues ("known for slow service", "best value").
A simple sheet works. Rows are city and prompt, columns are the top 5 named brands plus the top cited domains. After a couple of dozen rows, patterns jump out: the same two directories behind every win, or one competitor who only dominates in cities where they have a dedicated landing page.
Step 4: Work out why a competitor beats you
This is the part most guides skip. Naming the winner is easy. Explaining the win is where the value is, and the citation data gives you a decent framework.
Content type tells you what is being rewarded
Promptwatch Data for Sep 28 to Oct 4, 2026 breaks down ChatGPT citations by content type (Which content types does ChatGPT cite the most?):
| Content type | Share of all citations | Share on commercial prompts |
|---|---|---|
| Product pages | 22.4% | 26.0% |
| Landing pages | 16.8% | 20.6% |
| Listicles | 13.6% | 15.0% |
| Comparisons | 5.9% | 7.9% |
| How-tos | 8.7% | n/a |
| Reviews | 1.7% | 5.6% on branded prompts |
On commercial prompts, which are the "best X" queries most local searches resemble, product pages, landing pages, listicles and comparisons add up to almost 70% of citations. For a local business, translate that: your service pages and city landing pages, plus the "best in [city]" roundups, are doing most of the work.
So when a rival beats you in a city, check three things:
- Do they have a dedicated, complete page for that city and service, with specifics (prices, hours, areas served)?
- Are they listed in the local "best of" roundups ChatGPT is citing?
- Do they have reviews on the platforms your category relies on?
Reviews matter more than their overall 1.7% share suggests. On branded prompts they reach 5.6%, more than 3x their overall share, which means when someone asks ChatGPT about you specifically, review pages weigh in heavily.
It is a crowd, not a duel
Almost half of ChatGPT responses (47.6%) cite 10 or more unique domains, and 66.1% cite at least 8. For organic prompts with no brand named, 52.5% cite 10 or more (Promptwatch Data on unique domains per response). Brand-specific prompts are tighter, with 5 domains the most common count.
What that means locally: you are not only competing with the business down the street. You are competing for a place in a pool of third-party sources, such as directories, local news, review sites and forums. Often the real competitor is the roundup that lists them and not you. Find which domains show up repeatedly in your city prompts, and check whether you are in them.
Authority is not the whole story
Promptwatch's August 2026 data found that sites with domain rank 46 to 75 earned almost half of ChatGPT citations, while DR 91 to 100 fell to about 3% (ChatGPT citation share by domain rank). Good news for local brands: a mid-sized local site with strong, specific pages can get cited without national-level authority.
Step 5: Turn findings into a city-by-city fix list
Match each loss to a reason and a fix.
| What you see | Likely cause | Fix |
|---|---|---|
| Rival named, you are absent, in one city | No city landing page, or thin one | Build a complete city-and-service page |
| Same listicle cited in every response | You are not in the roundup | Pitch the publisher, add your listing, earn a mention |
| Rival cited from review sites | Fewer or older reviews for you | Collect reviews on the platforms in your cited sources |
| You are named but late | Weak prominence signals | Sharpen positioning, add comparison content |
| Mentions but no citations of your site | Crawlability or content issue | Check AI crawler access and indexing |
| Strong in one city, weak in neighbors | Content only covers HQ city | Roll out city pages with real local detail |
One note: duplicate city pages with only the place name swapped will not fix anything. Include real local detail such as staff, service areas, local case examples and local pricing.
Step 6: Choose a tool for repeatable tracking
Once you know what to track, a dedicated tool saves you from running 300 prompts by hand. I did not research current pricing for local-focused AI visibility tools, so check each vendor's page before committing.
Promptwatch is the one I would look at first for this job because it supports local GEO/SEO targeting: you can pin a monitor to exact coordinates so ChatGPT, Google AI Overviews and Google AI Mode answer as if asked from that spot, with state and city tracking on Business plans and above. It also shows citation sources, content gap analysis and crawler logs, so the same tool that tells you who beats you in Denver can show which pages need work. Business starts at $579/mo; confirm current plans at promptwatch.com/pricing.

Other options in the AI visibility category worth a look:

SEO suites with AI tracking bolted on are also an option if you already live in one:

For the listings and reviews side of local presence, which feeds the third-party sources ChatGPT cites, these are relevant:
| Tool type | Good for | Watch out for |
|---|---|---|
| Manual ChatGPT prompts | First pass, learning what to track | Noisy, no location control, not repeatable |
| Prompt trackers (Peec AI, Otterly.AI) | Cheap monitoring of mentions | Often no per-city targeting, crawler logs or content workflow |
| Full AI visibility platforms (Promptwatch, Profound) | Tracking plus explaining and fixing | Higher cost, more to set up |
| SEO suites (Semrush, Ahrefs) | Existing workflow users | Fixed prompt sets, shallower AI data |
| Listing and reputation tools (Yext, Birdeye, SOCi) | Feeding the sources AI cites | Do not measure AI visibility by themselves |
For wider browsing, the directories at bestgeosoftware.com and ai-rank-tools.com list more options by category.
Step 7: Monitor continuously, not once
Platform behavior changes overnight. The August 8 site: shift is one example. Another: reddit.com's share of ChatGPT citations fell from roughly 4% to 0.5% on August 14, 2026 (Promptwatch Data on Reddit citations). If your local strategy leaned on forum threads, that single change moved the ground under you.
Also note that ChatGPT drew only 0.46% of its citations from social platforms from Sep 28 to Oct 4, 2026, while Google AI Overviews drew 12.2% (social media citations by AI model). The same city can look very different across models, so track more than one.
Cited content also decays. In Promptwatch's half-life study of pages ChatGPT cited on July 6, 2026, landing pages and docs stayed cited longest, while news lost half its pages within 36 days (ChatGPT content half-life). City landing pages are the durable asset. A weekly or monthly check beats a one-time audit.
A simple cadence that works
- Week 1: build the prompt set and run a manual baseline in your top 5 cities.
- Week 2: log named brands, positions and cited domains. Pick the 3 cities with the biggest gaps.
- Weeks 3 to 6: fix pages, pitch roundups, collect reviews in those cities.
- Ongoing: automate the tracking, review changes monthly, and expand to the next cities.
One honest limit: a chat-based check is only as good as the prompt and the run count. Verify pricing, hours and recent changes about competitors yourself before acting on anything ChatGPT tells you.
If you want a final sanity check, take your worst city and read the cited pages for the top three answers. The reason you lose is almost always sitting right there on those pages.




