Your Lovable site looks fantastic. It loads fast, the animations are smooth, and every section renders exactly as designed. So why is it pulling zero traffic from ChatGPT, Perplexity, and Google's AI Overviews? The answer is uncomfortable: those engines never actually see your content.
The problem, in one request
When an AI crawler visits your site, it doesn't run a browser. It makes a plain HTTP request and reads whatever HTML comes back — before any JavaScript executes. For a typical Lovable, Bolt, or v0 build, that response looks like this:
<!doctype html>
<html lang="en">
<head> … </head>
<body>
<div id="root"></div>
<script src="/assets/index.js"></script>
</body>
</html>
That's it. An empty container and a script tag. Your headlines, your copy, your product details — none of it is in the HTML.
What AI crawlers actually receive
There's a persistent myth that "Google runs JavaScript now, so it's fine." The new generation of AI answer engines is far more conservative. GPTBot, ClaudeBot, and PerplexityBot prioritise the raw, server-rendered HTML. If the meaningful content isn't there on first response, you are effectively invisible to them.
A beautiful client-rendered page is, to an AI crawler, a blank wall with a note that says "run this program to see the building."
The three changes that fix it
You don't have to rebuild. Three targeted changes move the needle the most:
- Server-render the content. Each route should return fully-formed HTML — headings and body text included — not an empty root div.
- Add structured data. A single JSON-LD block describing your organisation and offering gives engines something machine-readable to cite.
- Ship the AI files. Publish
/llms.txtand explicitly allow AI crawlers inrobots.txt.
How to verify you fixed it
Don't trust your browser — it always runs the JavaScript. Check what a crawler sees with one command:
curl -s https://yoursite.com | grep "<h1"
If your headline appears, crawlers can read it. If you get nothing, your content is still trapped behind JavaScript.



