The Loop Closing on Itself: How ChatGPT and Claude Started Citing Us (and Bringing 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 then Claude started citing them — bringing real, fully-attributed 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 — exactly our ICP — clicked through and signed up. Three ChatGPT-attributed signups followed (April 25, May 6, May 11); one ran 5 audits and set up project tracking on day one. Then in June it generalized: our first Claude-attributed user landed straight on our /security tool from a claude.ai conversation. Two different AI engines — ChatGPT and Claude — are now sending us real, fully-attributed users. The loop closed: the playbook the platform sells, demonstrated on the platform itself.
The headline
Score 56 → 91. 8 technical reference docs shipped. 4 confirmed AI-attributed signups — 3 from ChatGPT (firstReferrer chatgpt.com) and 1 from Claude (firstReferrer claude.ai). Real users finding us through two different AI engines 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
4
AI-attributed signups (3 ChatGPT · 1 Claude)
2
AI engines now citing us (ChatGPT + Claude)
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.
91
May 11
Third ChatGPT-attributed signup. firstReferrer=https://chatgpt.com/, landed on the homepage. A marketer at an 11-50 person team — a new ICP segment arriving via ChatGPT.
91
Jun 13
First CLAUDE-attributed signup. firstReferrer=https://claude.ai/, landed directly on /security from a Claude conversation and ran an audit. A second AI engine now sends us real, attributed users.
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 and feature list. Organization schema with sameAs links. (A hard-coded aggregateRating was removed in June — self-serving review markup violates Google's policy.) | 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 — then removed them Apr 16 — added testimonial markup to satisfy the social-proof check. CORRECTION (June): those quotes weren't from verified customers, so we deleted them. Lesson learned the hard way: only publish social proof you can prove — the FTC fines fake testimonials, and Google penalizes self-serving review markup. We'd rather lose 5 score points than your trust. | 30 min | +5 pts, reversed |
Added quantifiable metrics Apr 16 — product metrics in plain text headings. CORRECTION (June): an unverifiable usage figure ('1,000+ sites scanned') was replaced with repo-verifiable facts (33 free tools, 25+ signals, 7 platforms, 60s). | 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 and Claude cite us — and bring 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.
It kept going. On May 11 a third ChatGPT-attributed signup arrived — this time a marketer at an 11-50 person team, a different ICP segment than the first two developers, again with firstReferrer=https://chatgpt.com/.
Then, on June 13, 2026, the loop widened beyond a single engine. Our first Claude-attributed signup landed — and it didn't come through ChatGPT at all:
firstReferrer: https://claude.ai/ firstReferrerDomain: claude.ai firstLandingPath: /security acquisitionSource: ai
This user asked Claude something, Claude surfaced our /security tool, and they clicked straight through to it and ran an audit — no homepage, no Google, no detour. Two distinct AI engines, ChatGPT and Claude, are now independently citing us and sending real, attributed users. That's the difference between "a ChatGPT fluke" and "a repeatable channel."
The users who came through
All four users are anonymized below for privacy. Every one is real, in the database, and squarely in our target ICP — developers, marketers and agencies who needed AEO help. Three came through ChatGPT, one through Claude.
ChatGPT · User 1
April 25, 2026/https://chatgpt.com/utm_source=chatgpt.comActivity: First-ever AI-attributed signup. Ran an audit on their domain and set up tracking for it.
ChatGPT · User 2
May 6, 2026/docs/llms-txthttps://chatgpt.com/utm_source=chatgpt.comActivity: Landed directly on /docs/llms-txt from a ChatGPT answer. Our most active AI signup: ran 5 audits and 1 security scan, and created a project for tracking — all on day 1.
ChatGPT · User 3
May 11, 2026/https://chatgpt.com/utm_source=chatgpt.comActivity: Third ChatGPT referral, and a new ICP segment — a marketer rather than a developer. Signed up and ran an audit on their domain.
Claude · User 4
June 13, 2026/securityhttps://claude.ai/— (self-reported source: AI)Activity: Our first Claude-attributed signup. Landed directly on our /security scanner from a claude.ai conversation and ran an audit — proof a second AI engine is now surfacing us.
Every one of them skipped Google entirely. They asked an AI assistant — ChatGPT or Claude — the assistant cited us, and 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 and Claude cited those docs and tools when users asked AEO questions — exactly as the playbook says they would.
- 5.Users clicked through the ChatGPT and Claude citations, 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: verifiable product metrics and trust line in crawlable HTML (early placeholder testimonials were removed in June — see the correction below)
- 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 AI citation traffic: 4 attributed signups — 3 from ChatGPT (Apr 25, May 6, May 11) with firstReferrer chatgpt.com, and 1 from Claude (Jun 13) with firstReferrer claude.ai
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, all four AI signups — three from ChatGPT, one from Claude — would have looked like "direct traffic" — invisible.
FAQ
Did ChatGPT and Claude really cite your docs?▾
Yes. We track AI referral traffic by checking firstReferrer, firstReferrerDomain, and utmSource on every signup. Four confirmed users came in from AI assistants: three with firstReferrer https://chatgpt.com/ (landing on the homepage and on /docs/llms-txt) and one with firstReferrer https://claude.ai/ that landed directly on our /security tool — meaning ChatGPT and Claude surfaced our pages in their answers and the users clicked through.
Are you getting users from Claude too, not just ChatGPT?▾
Yes. On June 13, 2026 our first Claude-attributed signup arrived with firstReferrer https://claude.ai/, landing directly on our /security page from a Claude conversation and running an audit. ChatGPT was first (April 25), and Claude is now the second distinct AI engine sending us real, attributed users — confirmation the playbook generalizes beyond a single assistant.
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 and Claude?▾
All four are squarely in our ICP — developers, marketers and agencies evaluating AI visibility. Our most active ChatGPT signup ran 5 audits and a security scan and set up tracking on day one. The Claude signup landed directly on our /security tool and ran an audit. Most selected agency or developer roles during onboarding — the exact audience 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.