Executive Summary: Most sites built with AI coding tools (Cursor, Lovable, v0, Replit, Framer) are completely invisible to ChatGPT, Gemini, Claude, and Perplexity. These tools generate React SPAs that render content client-side—the raw HTML is empty. LLM crawlers don't execute JavaScript, so they see nothing to cite. This guide explains the technical problem and provides the 4R Framework to fix it.
Key Facts
- The Problem: AI coding tools generate React SPAs with client-side rendering
- Why It Matters: LLM crawlers don't execute JavaScript—they see empty HTML
- Who's Affected: Startups and teams building with modern AI-assisted development
- Revenue Impact: Zero visibility = zero demand capture from AI discovery
- The Fix: The 4R Framework—Rendering, Relevance, Retrieval, Recommendations
- Time to Results: Days for real-time systems, months for training-data LLMs
AI Coding Tools and LLM Risk
| Tool | Default Output | LLM Risk |
|---|---|---|
| Cursor | React SPA | High |
| Lovable | React + Vite SPA | High |
| Framer | Hybrid (better) | Medium |
| v0 by Vercel | React components | High |
| Replit | Varies | Medium-High |
| Gamma | Presentation-first | High |
| Webflow AI | Hybrid | Medium |
The Technical Problem
When you run curl on a typical SPA, here's what you get:
<!DOCTYPE html>
<html>
<head><title>Loading...</title></head>
<body>
<div id="root"></div>
<script src="/bundle.js"></script>
</body>
</html>
# LLM extractable content: ZERO
LLM retrievers fetch raw HTML without executing JavaScript. If your content only exists after JS execution, it's invisible to AI answer engines.
The 4R Framework (Bull AI)
1. Rendering
Pre-render critical content server-side. Implement SSR or SSG for key pages. Ensure raw HTML contains full text, not empty divs.
2. Relevance
Add semantic structure and entity grounding. Use JSON-LD schemas (FAQPage, Product, Article). Implement proper heading hierarchy.
3. Retrieval
Optimize crawl surface. Ensure sitemap.xml is complete and accessible. Implement internal linking. Don't gate content behind login.
4. Recommendations
Test and monitor visibility. Run prompts against LLMs to verify citation. Track weekly. Adjust based on data.
How to Test Your Site Right Now
Run this in your terminal:
# What does the raw HTML contain?
curl -s https://your-site.com | grep -o '<body>.*</body>'
# Bad result:
# <body><div id="root"></div></body>
# Good result:
# <body><main><h1>Your Content</h1>...</main></body>
If the body contains only a root div, your content is invisible to LLMs.
Frequently Asked Questions
Why doesn't ChatGPT cite my site?
If your site uses client-side rendering, the raw HTML is empty. LLM crawlers don't execute JavaScript, so they see nothing to cite.
Do SPAs hurt LLM indexing?
Yes. Pure SPAs with client-side rendering are invisible to most LLM crawlers. You need server-rendered or static content.
Can I use Lovable/Cursor and still rank in ChatGPT?
Yes, but you need to add a server-rendered layer for key pages. Deploy FAQ pages statically or use hybrid architecture.
Is Next.js bad for AEO?
No—Next.js supports SSR and SSG. The problem is when you use it in pure client-side mode.
How do I fix AI visibility quickly?
1) Add static/SSR for high-value pages. 2) Add JSON-LD schemas. 3) Ensure sitemap.xml is complete.
What is LLM retrievability?
Whether an LLM can find, fetch, and extract information from your content. Depends on training data, RAG access, and HTML parseability.
Take Action
Find out if LLMs can see your site:
Run Free AEO Audit Learn About BullseyeRelated Pages
- What is AEO? – Complete guide
- How to Rank on ChatGPT – Step-by-step
- Bullseye AEO – Visibility tracking platform
- LLM Lighthouse – Page-level analysis
- Bull AI Home