The Loop Closing on Itself: How We Got Cited by ChatGPT (and It Brought Real Users)
A documented, end-to-end case study of running our own AEO playbook on AIExposureTool. We took our score from 56 to 91, shipped 8 technical reference docs, and ChatGPT started citing them — bringing real users back to our product. This is the complete circle, with real data.
On this page▾
TL;DR — what happened, in one paragraph
We built AI Exposure Tool to help products get cited by AI engines. The honest first move was to use it on ourselves. In April 2026 we audited aiexposuretool.com, found a 56/100 score, and rebuilt the AEO posture from scratch — robots.txt, llms.txt, JSON-LD, FAQPage schema, EEAT pages, the whole stack. Score climbed to 91. Then we shipped 8 deep technical reference docs at /docs/*. Two weeks later, ChatGPT started citing our docs in its answers, and real users — both solo developers in the agency category, exactly our ICP — clicked through and signed up. One ran 5 audits and set up project tracking on day one. The loop closed: the playbook the platform sells, demonstrated on the platform itself.
The headline
Score 56 → 91. 8 technical reference docs shipped. 2 confirmed ChatGPT-attributed signups with firstReferrer chatgpt.com. Real users finding us through ChatGPT citing the exact pages we wrote to be cited. The flywheel works on us — which is the whole pitch.
56 → 91
Score gain
8
Technical docs shipped
2
ChatGPT-attributed signups
Day 1
Time from signup to active use (User A)
Act 1Auditing ourselves — 56 to 91 in 4 weeks
On March 15, 2026, we ran our own tool on aiexposuretool.com. Score: 56/100. For a tool that promises to fix AEO, the result was humbling.
The audit found:
- robots.txt did not explicitly allow AI crawlers (GPTBot, ClaudeBot, PerplexityBot, Google-Extended)
- No
llms.txt— AI had no first-party brief to read - No JSON-LD structured data — no SoftwareApplication, Organization, or FAQPage
- No FAQ schema markup
- No comparison pages
- Zero social proof visible to crawlers
We had 870 Google Search impressions and growing. But when we asked ChatGPT, Perplexity, Gemini, and Copilot about AI visibility tools, we did not appear in any answer. SEO traction without AEO traction.
Over four weeks (March 15 → April 16), we worked through every category. The score climbed, dipped on redesigns, recovered, and peaked at 91 on April 16 after a focused 4-hour fix session.
Score timeline
56
Mar 15
First scan. No llms.txt, no JSON-LD, no FAQ schema. AI crawlers not explicitly allowed. Starting from scratch.
66
Mar 15
Added robots.txt rules for GPTBot, ClaudeBot, PerplexityBot, Google-Extended. +10 points in 5 minutes.
86
Mar 15
Deployed llms.txt + JSON-LD structured data. +20 points. From 56 to 86 in one afternoon.
79
Mar 20
Homepage redesign broke content structure. React components replaced crawlable text. Score dropped.
89
Mar 21
Fixed content, added FAQ schema, created comparison pages. Recovery + improvement.
91
Mar 23
Peak score. Added social profile links, review platform presence (Product Hunt), comparison content. All AI crawlers allowed.
84
Apr 1
Major feature launch — new React components increased JS ratio, dropped text-to-HTML ratio to 1%. Score dipped.
78
Apr 9
More features shipped. Trust signals section removed during redesign. Score dropped further.
78
Apr 16 (AM)
Starting point for the fix session. 870 Google impressions, 0 confirmed AI mentions. Identified 7 failing checks worth 29 points.
91
Apr 16 (PM)
Back to peak in one afternoon. +13 points by fixing 7 checks: testimonials, metrics, trust line, integrations page, case study, FAQPage schema, dense answer-first content.
91
Apr 25
First ChatGPT-attributed signup. firstReferrer=https://chatgpt.com/. Landed on the homepage with utm_source=chatgpt.com.
91
May 6
Second ChatGPT-attributed signup. Landed on /docs/llms-txt directly from a ChatGPT answer. Ran 5 audits, set up project tracking. The loop fully closes.
91
May 7
Shipped 5 additional /docs reference pages: llm-json, json-ld-for-aeo, per-llm-citation-behavior, ai-exposure-score, answer-engine-glossary. More citation surface area.
Every fix, with time and impact
| Fix | Time | Impact |
|---|---|---|
Allowed AI crawlers in robots.txt Added GPTBot, ClaudeBot, PerplexityBot, Google-Extended, meta-externalagent. Went from blocked to fully accessible. | 5 min | +10 pts |
Deployed llms.txt Auto-generated from our audit, then edited for accuracy. 3,211 characters covering product name, features, pricing, audience. | 10 min | +8 pts |
Added JSON-LD structured data SoftwareApplication schema with real pricing, feature list, aggregate rating. Organization schema with sameAs links. | 15 min | +12 pts |
Created FAQ schema 10 questions covering pricing, features, competitors, free plan. FAQPage JSON-LD in the homepage head. | 20 min | +5 pts |
Built comparison pages Created /compare/otterly, /compare/peec-ai, /compare/evertune with feature tables and honest pros/cons. | 2 hrs | +3 pts |
Added social profile links Twitter/X, LinkedIn, GitHub, Product Hunt in footer and Organization schema sameAs. | 5 min | +3 pts |
Listed on Product Hunt Free launch listing. Gets indexed by Google and cited by AI as third-party validation. | 30 min | +3 pts |
Added testimonials in crawlable HTML Apr 16 — 3 real customer testimonials with names, roles, and companies inside <blockquote> tags. AI needs social proof it can parse, not images or JS. | 30 min | +5 pts |
Added quantifiable metrics Apr 16 — '1,000+ sites scanned', '25+ signals', '7 platforms', '60s' in plain text headings. | 10 min | +5 pts |
Added customer mention trust line Apr 16 — 'Trusted by founders, agencies, and growth teams building with Cursor, Claude, and Lovable' in crawlable HTML. | 15 min | +5 pts |
Created /integrations page Apr 16 — Full integrations page listing all 7 AI platforms and 7 infrastructure services with descriptions. | 30 min | +3 pts |
Created /case-study page (this page) Apr 16 — Living case study documenting the journey. EEAT signal + meta proof that the process works. | 1 hr | +2 pts |
Created /about page with EEAT content Apr 16 — Dedicated About page with AboutPage JSON-LD, ~800 words of crawlable EEAT content. | 45 min | included |
Added FAQPage schema to homepage FAQ Apr 16 — FAQ now renders with FAQPage JSON-LD and answers always present in HTML so AI crawlers extract them without JavaScript. | 15 min | included in +5 |
Added answer-first intros to all sections Apr 16 — Dense fact-first paragraphs to Problem, HowItWorks, WhatYouGet, WhoItsFor. | 30 min | +4 pts |
Shipped /docs/llms-txt technical reference Apr 18 — Deep technical reference with TechArticle + BreadcrumbList + FAQPage JSON-LD. Started getting cited by ChatGPT within 7 days. | 2 hrs | citation surface |
Shipped /docs/ai-crawlers + /docs/robots-txt-for-ai May 6 — Two additional reference docs covering crawler IPs, user-agent strings, and robots.txt directives. | 3 hrs | citation surface |
Shipped 5 new /docs reference pages May 7 — llm-json spec, json-ld-for-aeo, per-llm-citation-behavior, ai-exposure-score, answer-engine-glossary. Each with full TechArticle + FAQPage JSON-LD. | 4 hrs | citation surface |
Act 2Shipping citation-bait technical docs
A 91 score is hygiene. Hygiene is necessary but not sufficient — AI engines also need something to cite. The next move was to publish technical reference content in the exact format ChatGPT and Perplexity prefer to surface in answers: deep, comprehensive, with structured data.
Between April 18 and May 7, 2026, we shipped 8 technical reference docs at /docs/*:
- /docs/llms-txt — complete reference for the llms.txt standard
- /docs/ai-crawlers — every AI crawler grouped by owner with user-agents and IPs
- /docs/robots-txt-for-ai — robots.txt directives, templates, common mistakes
- /docs/llm-json — full spec for the JSON variant of llms.txt
- /docs/json-ld-for-aeo — schema.org JSON-LD reference filtered for AEO
- /docs/per-llm-citation-behavior — how each engine differs (ChatGPT, Perplexity, Claude, Gemini, AI Overviews, Copilot, DeepSeek)
- /docs/ai-exposure-score — every signal in the score with weights
- /docs/answer-engine-glossary — A-Z glossary of AEO/GEO terms
Every doc shipped with three JSON-LD blocks: TechArticle (or with proficiencyLevel), BreadcrumbList, and where applicable FAQPage. Every doc was internally cross-linked at the footer. Every doc led with the answer in the first paragraph (answer-first content is the single highest-citation factor).
Total time investment: roughly 18 hours. Total citation surface area created: 8 deep, structured pages aimed precisely at how ChatGPT structures answers about technical AEO topics.
Act 3ChatGPT cites us — and brings users back
On April 25, 2026, the first ChatGPT-attributed signup landed.
We track this by writing firstReferrer, firstReferrerDomain, utmSource, and firstLandingPath to every UserLead record in our database. When a user signs up, we know exactly where they came from. The first one had:
firstReferrer: https://chatgpt.com/ firstReferrerDomain: chatgpt.com utmSource: chatgpt.com firstLandingPath: /?utm_source=chatgpt.com
ChatGPT cited our content in an answer. The user clicked through. They signed up. Eleven days later, on May 6, 2026, the second ChatGPT-attributed signup arrived — this one landing directly on /docs/llms-txt:
firstReferrer: https://chatgpt.com/ firstReferrerDomain: chatgpt.com utmSource: chatgpt.com firstLandingPath: /docs/llms-txt?utm_source=chatgpt.com
That one is the proof point. ChatGPT got asked something about llms.txt, cited our docs page in the answer, the user clicked the citation, landed on the page, and signed up. The exact outcome we promise customers — happening to us, demonstrably, with full attribution.
The users who came through
Both users are anonymized below for privacy. Both are real, both are in the database, both are exactly our target ICP — solo developers / small agencies who needed AEO help.
User A
May 6, 2026/docs/llms-txthttps://chatgpt.com/utm_source=chatgpt.comActivity: Signed up. Ran 5 audits on their own domain (score 70-72). Ran 1 security scan. Created a project for tracking. Active engagement on day 1.
User B
April 25, 2026/https://chatgpt.com/utm_source=chatgpt.comActivity: Signed up. Ran 1 audit on their domain (score 48). Set up tracking for that domain.
Both users skipped Google entirely. They asked ChatGPT, ChatGPT cited us, they came directly. The single reason they exist as users is that the AEO playbook worked.
Why this is the complete circle
Most product companies talk about AEO as a thing they do for customers. We can show it as a thing the platform does to itself:
- 1.The product measures how AI engines see and describe a website.
- 2.The audit on ourselves found everything broken (56/100). We fixed it (91/100).
- 3.The docs we wrote (the AEO playbook itself) became the citation surface ChatGPT could see.
- 4.ChatGPT cited those docs when users asked AEO questions — exactly as the playbook says it would.
- 5.Users clicked through the ChatGPT citation, signed up, and started auditing their own sites — bringing them into the same flywheel we just demonstrated.
The platform is the proof. The proof is the platform.
How to replicate this for your product
This is the playbook in five lines:
- Audit yourself. Run your AI Exposure Score. Most sites land 50-70. Whatever the gap is, fix it before doing anything else.
- Ship the hygiene. robots.txt allows AI crawlers, llms.txt deployed, JSON-LD on every page (Organization + the relevant content type), FAQPage where you have Q&As. This alone gets you to ~85.
- Build citation surface area. Write technical reference docs about your category in the format AI engines cite — deep, comprehensive, with TechArticle + FAQPage JSON-LD. Cross-link them. Lead every page with the answer.
- Wait 1-2 weeks. AI engines re-crawl on a 7-14 day cycle. That's your indexing window. Don't evaluate before week 3.
- Track who comes through. Write firstReferrer, firstReferrerDomain, and utmSource on every signup. When ChatGPT, Perplexity, or Claude cites you, you'll see it in your data immediately.
That's exactly what we did. It worked on us. It will work on your product.
Current state — what is working, what is not
Passing (10 checks)
- AI Crawl Access: 27/27 — all major AI crawlers explicitly allowed
- Structured Data: 33/33 — SoftwareApplication, Organization, and FAQPage JSON-LD deployed
- llms.txt, llm.json, and llms-full.txt all deployed at site root
- 8 technical reference docs at /docs/* with TechArticle + BreadcrumbList + FAQPage JSON-LD
- Sitemap present, robots.txt allows all AI crawlers, no WAF blocking
- Product Clarity: 13/15 — clear H1, features described, pricing page crawlable
- Trust & Social Proof: testimonials with real names, quantifiable metrics, customer mention line in crawlable HTML
- EEAT: comparison content at /compare, /about page, /case-study page, /integrations page, social profiles linked
- Answer-first content: dense intro paragraphs on Problem, HowItWorks, WhatYouGet, WhoItsFor sections
- Confirmed ChatGPT citation traffic: 2 attributed signups (Apr 25, May 6) with firstReferrer chatgpt.com
Still working on (2 items)
- Text-to-HTML ratio still on the low side (React-heavy homepage) — targeting further improvement
- Customer logos (image logos of named customers) — pending real customer permissions
What we are shipping next
Continue shipping new /docs reference pages monthly
4 hrs each · Expected: more citation surface
Track which docs ChatGPT cites most via firstLandingPath
5 min weekly · Expected: data → strategy
Add Bing Webmaster Tools sitemap (ChatGPT search uses Bing)
10 min · Expected: +10-15 ChatGPT pickups
Further reduce text-to-HTML ratio (more SSR content)
2 hrs · Expected: +2-3 pts
Collect permissioned customer logos
ongoing · Expected: +5 pts
Key learnings
- Hygiene gets you to 85. Citation surface gets you cited. A perfect technical AEO posture without quality reference content gives you visibility but not citations. The docs are what ChatGPT actually quotes.
- llms.txt + JSON-LD = instant 20+ point jump. The two highest-ROI changes any site can make. Five-minute, 12-minute fixes.
- Redesigns kill scores. Every homepage redesign dropped our score because new React components reduced text-to-HTML ratio. Ship content alongside code.
- Trust signals are the hardest to earn. Technical fixes take hours. Social proof takes weeks of real customer relationships. Worth investing in early.
- Score fluctuates and that is normal. We have been between 78 and 91. Continuous monitoring catches regressions that otherwise go unnoticed.
- Google impressions ≠ AI mentions. We had 870 Google impressions before our first AI citation. SEO and AEO are different games with different signals.
- Track firstReferrer or you won't see the wins. Without referrer tracking, the two ChatGPT signups would have looked like "direct traffic" — invisible.
FAQ
Did ChatGPT really cite your docs?▾
Yes. We track AI referral traffic by checking firstReferrer, firstReferrerDomain, and utmSource on every signup. Two confirmed users came in with firstReferrer https://chatgpt.com/ and utmSource chatgpt.com — meaning ChatGPT cited our pages in its answer and the users clicked through. The first landed on /docs/llms-txt, the second on the homepage.
How long did it take from publishing the docs to ChatGPT citing them?▾
Roughly 7-14 days from publish to first citation. We shipped /docs/llms-txt in mid-April 2026; the first ChatGPT-attributed signup arrived April 25. The second arrived May 6, the day we shipped 5 additional /docs reference pages.
What kinds of users came through ChatGPT?▾
Both were exactly our target ICP — solo developers in the agency category. One signed up, ran 5 audits on their own site, and set up project-based tracking. The other ran an audit on their domain. Both selected agency as their product category during onboarding — the same category our content targets.
What did we do differently to get cited?▾
Three things. (1) Wrote technical reference docs at /docs/llms-txt, /docs/ai-crawlers, /docs/robots-txt-for-ai etc. — the exact format ChatGPT prefers to cite. (2) Shipped TechArticle + BreadcrumbList + FAQPage JSON-LD on every doc. (3) Hosted on a domain with strong AI crawler access (no GPTBot/ClaudeBot/PerplexityBot blocks) and a current llms.txt and llm.json.
How can my product earn the same outcome?▾
Run an AI Exposure Score audit, fix crawl access first, ship llms.txt and JSON-LD, then publish technical reference content in the format AI engines cite (deep, comprehensive, with FAQ schema). Track which pages ChatGPT cites by monitoring firstReferrer in your analytics.