Short version: when someone asks ChatGPT "best [service] near me", the model returns 3-5 named businesses with a one-line rationale each. If you're not in that list, you don't exist for that query. The mechanics that get you cited are different from Google SEO: llms.txt files, paragraph-level entity clarity, schema.org markup, and authoritative third-party mentions the LLM trusts. Here's exactly how to engineer for it.
How ChatGPT actually answers a "near me" query
When ChatGPT (and Perplexity, and Claude, and Google AI Overviews) gets a local query, it does one of two things:
- Live web search. ChatGPT with browsing (the default for most users in 2025) runs a real-time search via Bing, pulls 5-10 sources, and synthesizes an answer. It's looking for businesses already named on authoritative pages.
- Training-data recall. For queries where browsing isn't triggered, the model pulls from what it's already seen during training. that's where pre-existing web presence, directory mentions, and high-authority articles do the work.
Either path, the question is the same: has the model been given enough evidence about your business, in a structured way, that it can confidently name you in a one-sentence recommendation?
The five GEO signals that drive citation
1. Entity clarity in the first 50 words of every important page
LLMs disproportionately weight the opening of any page when extracting facts about a business. The first 50 words of your homepage, your services page, and every landing page should plainly state: who you are, what you do, the neighborhood or city you serve, your primary differentiator. Plain text, no marketing fluff.
Bad opener: "Welcome to our website. We deliver exceptional client experiences."
Good opener: "Zay Revenue Group is the Fort Lauderdale company that builds Zayos, a commission-free online ordering system for independent restaurants, at $399 to $599 per location per month."
The second one is a single self-contained quotable sentence the LLM can lift verbatim into an answer. The first one tells the model nothing.
2. llms.txt files
An llms.txt file is a markdown-formatted text file at the root of your site (yourdomain.com/llms.txt) that gives LLMs a structured overview of your site, your key pages, and the facts you most want represented. It's a relatively new convention but it's catching on with the major models.
A minimal llms.txt for a local service business should include: business name, location, primary services with one-line descriptions, links to your most authoritative pages (case studies, pricing, founder bio), and a short FAQ section.
3. Schema.org structured data
Schema is machine-readable JSON-LD on every important page. The schemas that move the needle for local citations are:
- LocalBusiness (with subtype matching your category. Restaurant, Plumber, MedicalBusiness, etc.)
- Service for each named service you offer
- FAQPage for any FAQ block
- Review with aggregateRating
- Organization + Person for the founder
- BreadcrumbList for navigation
You can't fake schema. wrong schema annoys the LLM more than missing schema. But correct, complete, accurate schema is the cleanest way to hand a model the facts about your business in a format it can trust.
4. Authoritative third-party citations
LLMs cross-reference what you say about yourself against what other sources say about you. A business that's described identically on Yelp, Google Business Profile, LinkedIn, an industry directory, and a local news article is "high-confidence" to the model. A business that only has its own website making claims about itself is "low-confidence" and gets discounted.
Build the entity. Same name spelling, same address format, same category, same services described the same way. across every directory and citation source you can find. Then push for at least 2-3 quality third-party mentions a year. local news, industry roundup posts, podcast interviews, niche directories with editorial review.
5. Question-format content
People prompt LLMs differently than they type into Google. Google queries are short keyword phrases. LLM prompts are full sentences, often questions: "what's a good Mediterranean restaurant in Fort Lauderdale that does private events?"
Your content should mirror that. FAQ sections written as actual questions. Every important service page should have at least 5-8 question/answer pairs at the bottom. Then wrap them in FAQPage schema. The combination of question text + structured markup is what lets an LLM lift your answer cleanly.
Worked example: getting cited for "best Mediterranean restaurant Fort Lauderdale"
Take a Mediterranean restaurant on Las Olas as the example. No trick gets it named in that answer. This is the stack of work that makes it possible:
- Restaurant schema with Mediterranean cuisine, accurate hours, menu link, price range, payment types.
- FAQPage schema on a "frequently asked about [restaurant name]" section answering the 10 to 12 questions guests really ask.
- Entity-clarity opener on the homepage: "[Restaurant name] is a Fort Lauderdale Mediterranean restaurant serving Lebanese-influenced food on Las Olas Boulevard, with full-service catering and a private events room."
- An llms.txt file at the root summarizing the menu, the location, the differentiators, and the most important pages.
- Third-party mentions: local food blogs, a city magazine list, the neighborhood business association directory, a podcast interview with the owner.
- A steady flow of Google reviews, all responded to, where guests naturally use words like "Mediterranean", "Lebanese", "Las Olas", and "Fort Lauderdale".
Every layer reinforces the same entity facts in slightly different ways. The LLM stops guessing and starts citing.
What doesn't work
A few things we keep watching agencies sell that don't move the needle:
- "AI keyword stuffing" inside hidden divs. LLMs are better than Google at spotting this. You're hurting yourself.
- Buying packages of low-quality directory listings. Those sources aren't sources LLMs trust. They dilute your entity, they don't strengthen it.
- Marketing claims with no fact to back them. "Best-rated agency in the state" gets dropped on the floor by the model unless there's a third-party page that says the same thing.
- Schema spam (every schema type on every page, even when irrelevant). Models are penalty-tolerant of one or two wrong schemas, but a site spamming 15 schema types looks like it's trying too hard, and the model treats the data with skepticism.
How to test if you're getting cited
Once a month, take your top 10 target queries and run each one through ChatGPT (with browsing on), Perplexity, Claude, and Google AI Overviews (search the query on Google and screenshot the AI Overview box). Record:
- Are you cited? Yes/no per model.
- What position? (Cited first, second, third, in a list of 5, or as a passing mention?)
- What claim did the model make about you?
- What source did the model cite? (Click through. it'll tell you which third-party page is doing the work.)
Track AI visibility the same way you track Google rankings.
The 30-day version of this playbook
If you only have 30 days, the order of operations is: schema first (it's mechanical, do it once), entity-clarity rewrites of your top three pages second, llms.txt third, FAQ blocks fourth, third-party mention outreach fifth. Reviews and ongoing freshness compound on top.
Run a restaurant and want to see where you stand today? Run the free Zayos report. It tells you which signals are strong and which are missing.