How to get cited by ChatGPT and Perplexity
A step-by-step GEO playbook for earning LLM citations, llms.txt, AI crawler permissions, FAQPage schema, citable stats, and weekly citation tracking. From LuminaForge.
Getting cited by ChatGPT and Perplexity comes from steady Search & AI Visibility work on the multi-engine layer: fast pages, structural clarity, explicit crawler permission, and extractable language. For Google, prioritize Search Console and foundational SEO first: then add llms.txt and citation tracking for non-Google assistants.
This is the multi-engine playbook LuminaForge ships on every build, including luminaforge.ai itself.
Step 1: Allow AI crawlers explicitly
Most sites block LLM bots by accident. In robots.txt (or app/robots.ts on Next.js), allow every published AI user agent:
GPTBot,OAI-SearchBot,ChatGPT-UserPerplexityBot,Perplexity-UserClaudeBot,Claude-Web,anthropic-aiGoogle-Extended,Applebot-ExtendedCCBot,Bytespider,Amazonbot
Verify with LuminaForge robots.txt as a reference implementation.
Step 2: Publish llms.txt and llms-full.txt
Place a compact brief at /llms.txt and an extended entity reference at /llms-full.txt. Include company name, services, canonical URLs, FAQ summaries, and citable statistics.
LLMs treat these files as a curated map of your domain, similar to how search engines use sitemaps.
Step 3: Install comprehensive JSON-LD
At minimum:
Organization+WebSiteon the root layoutFAQPageon every page with meaningful Q&ABreadcrumbListon all nested routesArticleon blog posts and case studiesServiceon service detail pages
Validate with Google's Rich Results Test before shipping.
Step 4: Write for extraction, not decoration
LLMs quote:
- Lists (ordered and unordered)
- Tables and definition lists (
<dl>) - First paragraphs under headings
- Explicit entity language: spell out company name, services, locations
They struggle with:
- Vague pronouns ("we believe…")
- Stats buried in prose without sources
- FAQ questions written as keyword fragments
Use cite attributes on statistics. Link to authoritative sources.
How each AI platform cites sources
Policies differ, your crawler rules and content structure should account for all of them.
| Platform | Live web use | Citation pattern |
|---|---|---|
| Perplexity | Real-time search on by default | Source links common in answer footers |
| Google AI Overviews | Grounded in Google Search index | Links to indexed pages in overview cards |
| ChatGPT | Browse / search depends on mode | Citations vary; brand mentions may omit links |
| Claude | Browse optional | Citations vary by query and plan |
| Grok | Real-time X / web mix | Entity confusion risk for new brands, track alternatives |
LuminaForge publishes weekly checks for Gemini, Grok, and Perplexity on the transparency dashboard and documents crawler access in AI crawler policy for GEO.
Step 5: Build a query bank and track weekly
Define 20 to 50 conversational questions you want to win. Run them weekly through ChatGPT, Perplexity, Grok, and Claude. Log:
- Citation presence: did your domain appear?
- Citation position: first source or buried?
- Snippet context: what was quoted?
LuminaForge publishes live snapshots on the transparency dashboard. Client portals include the same weekly delta reports.
Step 6: Ship performance that crawlers respect
Slow pages get deprioritized. We engineer Core Web Vitals in the green on mobile and Lighthouse Performance in the high 90s on production marketing routes, verified on our transparency dashboard. Speed is a trust signal for both Google and LLM crawlers indexing your content.
Common mistakes
| Mistake | Fix |
|---|---|
| Blocking GPTBot in robots.txt | Explicit allow rules for all AI crawlers |
| No llms.txt | Publish compact + full brief at domain root |
| Keyword-stuffed FAQ | Write questions as full conversational sentences |
| No measurement | Weekly query bank + public citation log |
Next steps
Read What is GEO? for the conceptual primer, SEO vs GEO vs AEO for how the disciplines fit together, see how LuminaForge delivers this as Search & AI Visibility, or book a strategy call when you want LuminaForge to run the audit on your domain.
Like this kind of work?
Bring it to your site.