Guide, updated 2026-11-03

Can ChatGPT see your AI-built app?

You built the app in a weekend with Lovable, Bolt, Base44, Replit or v0. It looks great in the browser. Ask ChatGPT about it and nothing comes up. The usual reason is simple: AI crawlers read the HTML your server sends and do not run your JavaScript, so a client-rendered app looks like an empty page to them.

The one fact that explains most of it

A Vercel and MERJ study of crawler traffic found that none of the major AI crawlers render JavaScript. OpenAI's (GPTBot, OAI-SearchBot, ChatGPT-User) and Anthropic's crawlers fetch your JavaScript files but never run them. Googlebot is the exception: it renders pages, which is why an app can show up in Google and still be invisible in ChatGPT.

Many AI app builders produce single-page apps: the server sends a page with a title, an empty <div id="root"> and a script, and the browser builds everything else. To a crawler that does not run scripts, that is a page with almost no words.

Check your app in 30 seconds

  1. Open view-source:https://yourapp.com in Chrome or Firefox. If you cannot find your headline and your main paragraph in that text, AI crawlers cannot either.
  2. Or run our free check. Besides robots.txt for 20 AI crawlers, it now counts the words in your homepage HTML, says whether the title, meta description and H1 are there, flags an empty app shell and names the builder or host it recognizes.

Platform by platform

Lovable

Lovable's own rendering FAQ says its apps render in the browser by default and recommends prerendering for blogs and marketing sites. Lovable has been adding server-side rendering for newer projects, so the answer depends on when and how your project was set up: ask in the Lovable chat which rendering your project uses. One catch for testing: if your app serves a prerendered copy only to verified crawlers, ordinary tools (ours included, because we never pretend to be a crawler) see the browser version.

Bolt

Bolt projects are usually single-page apps built with Vite and React. Ask Bolt whether your plan includes its prerendering option for published sites; if not, ask it to move the public pages (home, pricing, about, blog) to a framework that renders on the server, such as Next.js or Astro, and keep the logged-in app as it is.

Base44

Base44's SEO docs say it serves crawler-ready HTML (metadata, structured data and a snapshot of the content) for apps published on a custom domain, and that free base44 addresses are not meant for long-term search. If you want to be found, publish on your own domain.

Replit

What crawlers see depends on the stack the agent chose. A React single-page app has the same empty-shell problem; a server framework (Express templates, Next.js, Flask or Django pages) sends real HTML. Check with view-source, then ask the agent for server rendering on the public pages if needed.

v0 and Vercel

v0 usually generates Next.js, which renders pages on the server by default, so the text tends to be in the HTML. The thing to check on Vercel is the firewall: Vercel has an "AI Bots" managed ruleset, off by default, that can deny AI crawlers before robots.txt is read. Look at Firewall, then Rules, in your project.

Netlify

Netlify's User Agent Blocker extension can block AI crawlers at the edge. If you or a template installed it, robots.txt may say "allowed" while the crawlers get blocked. Check Extensions in your Netlify team.

Cloudflare in front of any of these

If your domain runs through Cloudflare, its AI crawler settings can block search crawlers too. Our Cloudflare guide shows where to look.

Prompts to paste into your builder

These work in Lovable, Bolt, Replit, v0, Cursor or Claude Code. Paste one at a time and check the result with view-source before moving on.

1. Text in the HTML

Make the public pages (home, pricing, about, blog posts) render their full text on the server, so that a request without JavaScript returns the headline, the main paragraphs and the links. Use server-side rendering or static prerendering. Keep the logged-in app as it is. After the change, show me the raw HTML of the home page.

2. Title, description and one H1 per page

Give every public page its own title tag, meta description and Open Graph tags, written into the HTML the server sends (not set by JavaScript after the page loads), and exactly one H1 that says what the page is about.

3. robots.txt and sitemap

Add /robots.txt that allows OAI-SearchBot, ChatGPT-User, Claude-SearchBot, Claude-User and PerplexityBot, and points to /sitemap.xml. Generate /sitemap.xml with every public page. Do not block search crawlers.

Want to opt out of AI training but stay in AI search? Build the exact rules with our AI robots.txt generator and paste them into prompt 3.

4. Say what the app is, in a form machines read

Add JSON-LD structured data to the home page: an Organization (name, URL, logo, sameAs links to our social profiles) and a SoftwareApplication or Product with a one-sentence description and the price if there is one.

What this does not fix

Readable HTML makes your app eligible to be read and quoted. It does not make AI tools recommend it. Being cited depends on pages that answer the questions people ask (what it does, who it is for, how it compares, pricing) and on other sites mentioning you. Fix access first, because nothing else counts until crawlers can read you, then write those pages.

Check your app

Building with an AI assistant? Our MCP server lets Claude Code, Cursor or VS Code run the same check from your editor.

Written with AI. If you spot an error, write to hola@atalaya-ai.com.