Back to Field notes

All field notes

The problem

Why AI crawlers see an empty page on a no-code app

3 min read /

Open a page from an app that builds itself in the browser with JavaScript switched off, and you will often see a blank screen. That is not a fault in the app. The server sends a small HTML shell, and the browser builds the page by running the app's scripts and fetching its data.

People never notice, because their browser does that work in a second or two. A crawler that only downloads the HTML does notice. It receives the page title, the sharing tags and a body with no text in it.

We measured this on TradeCatcher, a live platform we built on Bubble®, on 13 November 2026. The home page HTML is 24.6 KB and contains 40 script tags. It has no H1 heading, and the number of readable characters in the body is zero. Sending the same request as OpenAI's GPTBot made no difference: the same 24.6 KB came back.

For comparison, the home page of this site is 18.1 KB of HTML with 5 script tags and 3,486 readable characters, because every page here is built as plain HTML before anyone asks for it.

Why Google sees it and AI crawlers do not

Google's crawler runs JavaScript. Google describes three phases, crawling, rendering and indexing, with a headless Chromium browser running the scripts in between (Google Search Central). That is why pages like this can still appear in Google.

Most of the crawlers that feed AI assistants do not render pages. Vercel's study of AI crawler traffic, published on 17 December 2024, found that GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot and PerplexityBot fetch HTML without executing the scripts in it. Only Google's and Apple's crawlers rendered JavaScript (Vercel). For the others, a page with a thousand words of content looks the same as an empty one.

What does get through

One part of TradeCatcher's page arrived intact: the structured data in the page header. The raw HTML carries seven JSON-LD entries describing the business, the app and its FAQs. Anything written into the page header as text is readable without JavaScript, which makes it the first place to put the facts you want AI assistants to know. See structured data: the facts that arrive even when the page does not.

The fix

The fix is not to rebuild the app. It is to hand those crawlers a finished copy of the page: the same content a visitor sees, already rendered into plain HTML. A small Cloudflare Worker in front of the domain can serve that copy to crawlers and pass everyone else through to the app as normal.

It has to be the same content. Showing search engines something different from what people see, to manipulate rankings, is cloaking, and it is against Google's spam policies (Google Search Central).

To check your own pages, read how to see your site the way an AI crawler does, or run them through the free GEO audit, which reads the raw HTML without running JavaScript.

If your app is built on Bubble, our plugin GEO Kit: AI Crawler Audit shows what non-JavaScript AI crawlers can read on your pages, and builds structured data, crawler snapshots, robots.txt and llms.txt for you to add.

Edited

Sources

  1. Our measurement: TradeCatcher and redcenterstudio.com home pages, fetched as Chrome and as GPTBot, 13 Nov 2026
  2. Understand JavaScript SEO basics, Google Search Central
  3. The rise of the AI crawler, Vercel, 17 Dec 2024
  4. Spam policies for Google web search: cloaking, Google Search Central

More field notes