Short answer: most apps built with Lovable, Bolt, v0 or similar tools draw their content with JavaScript after the page loads. The crawlers that feed ChatGPT, Claude and Perplexity usually don’t run JavaScript, so they see an almost empty page. Put your content in the HTML, say plainly what the app is, add structured data and a sitemap, and make sure nothing blocks AI crawlers. Unvibe checks all of it and gives you each fix ready to paste into your coding agent.
What AI actually sees
When you open your app, your browser downloads a small HTML file, then runs JavaScript that builds the page: the headline, the features, the pricing. That’s how most AI app builders work, and it looks great to people.
AI crawlers work differently. GPTBot, ClaudeBot and PerplexityBot fetch the HTML and read it as it is. If the words only appear after JavaScript runs, the crawler reads something like “Loading…”, a title, and not much else. It can’t tell anyone what your app does, because as far as it knows, your homepage says nothing.
“Published” isn’t the same as “readable”.
Google is less affected: its crawler runs JavaScript. That’s why an app can show up in Google and still be invisible when someone asks an AI assistant “what’s the best app for…?”
The five fixes that matter
1. Put your content in the HTML
Turn on server-side rendering, static generation or pre-rendering, so your text is in the page before any JavaScript runs. In Next.js that’s the default for most pages; in a plain Vite or React app, a pre-rendering step does it. Ask your coding agent: “Make sure the homepage text is in the HTML without JavaScript.”
2. Say what the app is, in the first line
AI repeats what it can read. A clever tagline gives a vague answer. Make the first line, the page title and the page description say what the app does and who it’s for, in plain words.
3. Describe it as software, with its price
Structured data (a small JSON-LD block) tells AI “this is a software application, it costs this much, it does this.” Assistants use it to answer comparison and pricing questions.
4. Publish a sitemap
A sitemap tells crawlers which pages exist and which matter. Many AI-built apps don’t have one.
5. Make sure nothing blocks AI crawlers
This one is sneaky. Your robots.txt can look fine and crawlers can still be blocked. When we checked our own site, it scored 93 out of 100, and the one failing check made no sense: our robots.txt allowed everyone. It turned out a Cloudflare setting was quietly serving a different robots.txt to AI crawlers, turning away GPTBot and ClaudeBot. One switch fixed it. You only catch that by visiting your site the way the crawlers do.
Check your app in a minute
You could check all of this by hand: view the raw HTML, read your robots.txt, test your structured data, visit your site as each crawler. Or you can let Unvibe do it.
See what ChatGPT sees on your app
- Reads your site the way AI crawlers do and shows you exactly what they get, with the cause if the page looks empty.
- Visits as GPTBot, ClaudeBot, PerplexityBot and Googlebot, and catches CDN or firewall settings that block them.
- Asks an AI what your app is and fact-checks the answer against your own site.
- Turns every problem into a fix you paste into Claude Code, Cursor, Codex or Lovable, or connect your agent over MCP and let it apply the fixes and re-check.
- Shows the result: your score after each fix, whether AI recommends you when buyers ask, and the visitors ChatGPT and Perplexity send you.
Our founder’s first vibe-coded app went from 35 to 80 with these fixes. Read the case study.
Questions
Does Google have the same problem?
Less so. Google’s crawler runs JavaScript, so it usually sees your page. The crawlers behind ChatGPT, Claude and Perplexity generally don’t, which is why an app can rank on Google and still be invisible to AI assistants.
Do I have to rebuild my app?
No. Most fixes are small: pre-rendering, a clear first line, structured data, a sitemap and letting crawlers in. A coding agent can apply them in minutes.
How long until AI assistants notice?
It depends on when each crawler next visits. Assistants that search the web live can pick changes up within days; what models “remember” updates more slowly. Fixing the page is what makes both possible.