Back to Field notes

All field notes

The problem

Why a Lovable or Bolt site can look blank to Google and ChatGPT

4 min read /

A page looks blank to a crawler when the HTML the server sends has no text in it and JavaScript builds the page afterwards. Google runs that JavaScript. In Vercel's December 2024 study, the AI crawlers it measured, including OpenAI's, Anthropic's and Perplexity's, did not (Vercel, The rise of the AI crawler). Whether your Lovable or Bolt site is affected depends on how it was built and when, so test it instead of assuming. This note is about what each crawler receives. If Google itself is not listing your pages, read the companion note on Google indexing.

What a crawler actually receives

A single-page app sends a small HTML shell, and the browser builds the page by running scripts and fetching data. People never notice. A crawler that only downloads the HTML gets the title and sharing tags and a body with little or no text. We measured exactly this on a no-code app and explain it in why AI crawlers see an empty page on a no-code app. The same mechanism applies to any app that renders in the browser.

Google and AI crawlers behave differently

Google describes three phases, crawling, rendering and indexing, with a headless Chromium running the scripts in between, and still recommends server-side rendering or prerendering because not all bots can run JavaScript (Google Search Central). Vercel's study lists OpenAI's GPTBot, OAI-SearchBot and ChatGPT-User, Anthropic's ClaudeBot and PerplexityBot among the crawlers that fetch JavaScript files without running them, while Applebot renders JavaScript. Content that is already in the first HTML response can still be read.

Two cautions. The study is almost two years old, so behaviour may have changed. And OpenAI's crawler overview describes what OAI-SearchBot, GPTBot and ChatGPT-User are for, but says nothing about JavaScript rendering (OpenAI, Overview of crawlers), so your own test matters more than any general claim.

What Lovable and Bolt say about their hosting

  • Lovable. Apps created from 13 May 2026 use server-side rendering, so every request returns rendered HTML. Older React and Vite apps use on-request pre-rendering, and only verified crawlers, including search engines and AI search crawlers, get the pre-rendered HTML. Unverified bots and link checkers receive the regular single-page app, content that loads late may be missing from pre-rendered pages, and third-party scanners may report an older app's pages as empty. An older app can be upgraded to TanStack Start (Lovable, SEO and AI search; Lovable, hosting).
  • Bolt. Bolt hosting publishes static, prebuilt HTML files, and its help says a single-page app loads every page from index.html (Bolt help, Publishing issues). Whether the pages inside carry text depends on your framework and build settings, and we found no article in Bolt's help centre on how its apps appear to crawlers, so check your own output.

Three ways to test your site

  1. View source. Open the page, press Ctrl+U (Cmd+Option+U on a Mac), and search for a sentence from your page. If it is not in the source, crawlers that skip JavaScript cannot read it.
  2. Ask like a crawler. Our guide how to see your site the way an AI crawler does gives a curl command that sends a GPTBot user agent, and explains what a 403 or a challenge page means.
  3. Run the free GEO audit. It fetches your page without running JavaScript and checks the raw HTML for a title, description, one H1, canonical and structured data, plus crawler access in robots.txt.

A fair warning for older Lovable apps: our audit is not a verified crawler, so it may show an empty page even though Lovable says verified crawlers get a pre-rendered copy. Treat a blank result as a reason to check, not proof that ChatGPT sees nothing.

If the page is empty

Our own advice, in order of effort. Put the facts you want known into the page head as structured data, because that arrives without JavaScript (structured data: the facts that arrive). Move to server rendering or build-time pre-rendering so every page ships as finished HTML. Or serve crawlers a finished copy of the same content from a small Cloudflare Worker in front of the domain. It must be the same content people see; showing crawlers something different is cloaking. Also check robots.txt for AI crawlers, because a blocked crawler sees nothing at all.

For a hand with it, App Triage ($99 USD) is the smallest first step, the AI-Built App Audit is $299 USD, and App Rescue and Move to Cloudflare covers SEO and indexing in its Rescue in place step for a fixed $999 USD.

Lovable, Bolt, OpenAI, ChatGPT, GPTBot, Anthropic, Perplexity, Google, Vercel, Apple and Cloudflare are trademarks of their respective owners. Red Center Studio is an independent studio and is not affiliated with, endorsed by or certified by any of them. The names describe the technology this note is about. Details were checked in each company's own documentation on 14 November 2026 and can change.

Edited

Sources

  1. The rise of the AI crawler, Vercel, 17 Dec 2024
  2. Understand JavaScript SEO basics, Google Search Central
  3. Overview of OpenAI crawlers, OpenAI
  4. Optimize your app for SEO and AI search, Lovable docs
  5. How Lovable hosts your app, Lovable docs
  6. Publishing issues, Bolt help centre

More field notes