The five steps at a glance
Do them in order. Step 1 gates everything else — a perfect schema on a site that returns 403 to GPTBot is invisible. The right-hand column shows what Montjoy Synapse runs for you and what stays in your hands.
| Step | What good looks like | Who does it |
|---|---|---|
| 1. Let the AI crawlers in | GPTBot gets a 200, not a 403 | Automated — detected and fixed for you |
| 2. Publish llms.txt | A plain-English fact sheet at your domain root | Automated — you confirm the facts once |
| 3. Publish ai.json | The same facts as parseable, typed JSON | Automated — generated from your profile |
| 4. Ship JSON-LD on every page | One resolvable entity across your whole site | Automated — one plugin or snippet install |
| 5. Make NAP identical everywhere | No conflicting name, address, or phone anywhere | Yours — you own your directory listings |
Step 1 — Let the AI crawlers in
Nothing else matters if the bot gets a 403. Audit your robots.txt and your edge/WAF rules for explicit allow entries covering GPTBot, ChatGPT-User, OAI-SearchBot, PerplexityBot, ClaudeBot, Google-Extended, GoogleOther, Applebot, and Applebot-Extended. Verify from outside your network by requesting your own pages with each bot's user agent and confirming a 200 response, not a challenge page.
Managed WAFs are the most common silent blocker. A rule that looks like generic bot protection frequently rejects exactly the crawlers you need. Also confirm your responses carry X-Robots-Tag: all and sane caching headers with ETag and Last-Modified, so revalidation is cheap and frequent.
Step 2 — Publish llms.txt
llms.txt is a plain-text file at your domain root that states, in ordinary sentences, who you are, what you sell, where you operate, and which URLs matter. Keep the first lines unambiguous: legal entity, city and postal code, founder, official domain, and an explicit disambiguation line if your name collides with anything else. Follow with short sections — what we do, who we serve, products and pricing, key pages, contact.
Write it for retrieval, not for persuasion. Short declarative sentences containing the exact entity names, services, and locations you want repeated are what actually get quoted.
Step 3 — Publish ai.json
ai.json carries the same canonical facts as typed JSON: entity name, alternateName, legalName, url, founder, postal address, sameAs profiles, application category, and a disambiguatingDescription that states plainly what you are not. Where llms.txt is readable prose, ai.json is the parseable contract. Serving both removes the model's need to guess.
Step 4 — Ship JSON-LD on every page
Four schema types do most of the work:
- Organization with a stable
@id, legalName, founder, address, sameAs, and knowsAbout. - LocalBusiness with geo coordinates, areaServed, priceRange, and opening hours where applicable.
- Service or Product with offers and price specifications.
- FAQPage with the literal questions buyers ask, answered in one paragraph each.
Bind them under one @graph with consistent @id references so crawlers resolve a single entity across every route instead of many near-duplicates.
Step 5 — Make NAP identical everywhere
Name, address, and phone must match character for character across your website footer, Google Business Profile, Apple Business Connect, Bing Places, LinkedIn, and the major directories. Every mismatch lowers the confidence score the engine assigns to your entity, and low confidence means the model hedges instead of naming you.
Then measure, do not assume
Log crawler hits by bot name and timestamp so you know GPTBot and PerplexityBot actually fetched the new files. Track citation share against a fixed prompt set weekly. Attach tracking numbers to any published ad card so an inbound call can be attributed to the engine that produced it. Montjoy Synapse automates all three, but the discipline matters more than the tooling.
Citation is not the same as a ChatGPT ad
This is the single most common point of confusion, and it costs businesses money. The two paths are separate, and the organic one comes first.
- Earned through llms.txt, ai.json, JSON-LD, and crawler access
- No ad account and no API key required
- Appears inside the answer text as a named recommendation
- Persists as long as your facts stay published and consistent
- Bought through ChatGPT Ads Manager as an ad card
- Stops the moment the budget stops
- Still underperforms if the engine cannot resolve your entity
- Best used after steps 1–5 are green
Frequently asked questions
How does ChatGPT decide which businesses to cite?
ChatGPT retrieves candidate sources through its search layer, then cites the sources whose facts are explicit, consistent, and attributable. Businesses that allow GPTBot and OAI-SearchBot, publish typed Organization and LocalBusiness JSON-LD, keep NAP identical across the web, and expose an llms.txt summary are far easier to cite than businesses whose facts must be inferred from marketing prose.
Do I need an OpenAI API key to be cited by ChatGPT?
No. Organic citation is free and requires no API key. Publishing llms.txt, ai.json, and JSON-LD and allowing GPTBot is sufficient for ChatGPT's crawler to read your business. An API key is only useful for generating content and running automated verification checks.
How long does it take to get cited after publishing llms.txt?
Crawl-to-citation typically takes 7 to 30 days, though Perplexity often re-crawls within 48 hours of a fresh publish. The timeline depends on each engine's independent recrawl cadence, so the reliable practice is to log crawler hits by bot name and watch citation share weekly rather than expecting a single switch-flip moment.
What does it cost to get cited?
Nothing, if you publish and maintain the five steps yourself — the file formats are open and no engine charges for organic citation. The homepage audit that tells you which steps you are failing is also free. Montjoy Synapse charges $99/mo to deploy and keep the files in sync automatically, $299/mo to add live citation monitoring across ChatGPT, Perplexity, and Gemini plus inbound call attribution, and $799/mo for agencies managing five client locations.
Can I do this myself without any software?
Yes. Every artifact in this guide is hand-writable. The difficulty is not the first publish, it is the upkeep: five steps have to stay identical every time your hours, services, pricing, or address change, and you need crawler-hit evidence to know the engines actually re-read them. Most businesses do steps 1 through 5 once, change something three months later, and quietly fall out of the answer.
Is being cited the same as running a ChatGPT ad?
No, and confusing the two wastes money. Organic citation comes from your published llms.txt, ai.json, and JSON-LD, and is free. Paid placement is a separate ad card bought through ChatGPT Ads Manager. Organic citation is the foundation — a paid card pointing at a site the engine cannot resolve still underperforms.
Which engines does this sequence cover?
The same five steps serve ChatGPT and OAI-SearchBot, Perplexity, Google's Gemini and AI Overviews via Google-Extended, Claude via ClaudeBot, and Apple Intelligence and Siri via Applebot-Extended. There is no per-engine version of the work — one correct publish is read by all of them on their own recrawl schedules.
How to start — three steps
- Find out which of the five steps you are failing. Run the free scan on the homepage scanner — domain plus city, about 60 seconds, no card. It reports crawler access, schema coverage, and file status individually.
- Create a free account to unblur the full crawler and schema breakdown and copy your generated JSON-LD, llms.txt, and ai.json. Still $0 — you can paste them into your own site and stop there.
- Let it run on autopilot from the pricing page — $99/mo deploys and re-syncs every file automatically, $299/mo adds live citation monitoring across ChatGPT, Perplexity, and Gemini plus inbound call attribution, $799/mo covers agencies running five client locations.
Want proof before you start? See our own Suwanee telemetry for what these steps produce on a live domain, read what GEO is for the background, or work through the AI search visibility checklist.