Why Floot Sites Don't Rank on Google
Floot builds fast. But Google sees an empty page.
The problem isn't your content
Floot is a Y Combinator-backed app builder. You describe what you want, and it generates a working web application quickly. The result looks polished, works in a browser, and you get full ownership of your code. By every visible measure, it delivers.
Under the hood, Floot uses a custom React-based framework built on Node.js and TypeScript, hosted on AWS. Like other React-based builders, Floot apps render client-side. The server does not send your actual content to the browser. It sends a minimal HTML shell and a JavaScript bundle. The browser downloads and executes that bundle, and the JavaScript constructs the page on the fly.
This is called client-side rendering. The browser does all the work. Every heading, paragraph, image, and link is assembled by JavaScript after the page loads. For a human visitor, it works. The JavaScript runs in milliseconds and the page appears. But search engine crawlers do not process pages the same way a browser does.
Google's crawler reads the initial HTML response from the server. That response is where it expects to find your content. With Floot, that response contains nothing. The content only exists after JavaScript runs — and Google does not reliably run JavaScript for new or low-authority sites.
What Google actually sees
When Googlebot requests your Floot site, the server sends back a raw HTML document. Here is what that document looks like compared to what Google needs to see:
What Floot sends
<!DOCTYPE html><html lang="en">
<head>
<meta charset="UTF-8" />
<title>Floot App</title>
</head>
<body>
<div id="root"></div>
<script src="/bundle.js"></script>
</body>
</html>
What Google needs
<!DOCTYPE html><html lang="en">
<head>
<meta charset="UTF-8" />
<title>Your Business Name</title>
<meta name="description" content="..." />
</head>
<body>
<h1>Your Main Heading</h1>
<p>Your actual content...</p>
<a href="/services">Services</a>
</body>
</html>
On the left: an empty <div id="root"></div> and a script tag. No headings. No paragraphs. No links. No meta description. Nothing for Google to index.
On the right: static HTML with real content in the server response. Headings, text, links, and meta tags — all visible to Google on the first request, with no JavaScript required.
Google uses a two-phase indexing process. In the first phase, it reads the raw HTML. In the second phase, it may attempt to render JavaScript — but this second phase is delayed, resource-intensive, and not guaranteed. For new or low-authority domains, the rendering step either never happens or happens weeks later. The practical result: Google reads your initial HTML, finds nothing, and moves on.
But my SEO score says 90%+
If you run a Lighthouse audit on your Floot site, you might see an SEO score of 90 or higher. This is misleading. Lighthouse runs inside a browser. It evaluates the rendered page — the version that appears after JavaScript has executed and built all the content.
That is not what Google's crawler sees on its first pass. Googlebot reads the raw HTML response from the server. Before any JavaScript runs. Before any content is constructed. The HTML it receives is an empty shell.
Platform-level SEO scores have the same problem. They measure what happens after JavaScript runs, not what the server actually sends. A perfect score from any of these tools means nothing if the server response contains no indexable content.
The real test is simple: view your page's source code in a browser (right-click, "View Page Source"). If you see an empty <div id="root"> and a script tag instead of your actual content, that is exactly what Google sees. And that is why your pages are not ranking.
Even exported Floot code has this problem
Floot lets you export your code with 100% ownership. This is a genuine advantage — you are not locked into the platform. But exporting does not fix the SEO problem.
When you export your Floot project, you get the React codebase. The same custom framework. The same client-side rendering architecture. The same Node.js and TypeScript setup. The code is yours, but the architecture is unchanged.
Self-hosting a React SPA on your own server does not make it crawlable. The server still sends an empty HTML shell. The browser still needs to download and execute the JavaScript bundle to display any content. Google still sees nothing in the initial response.
To make exported Floot code visible to search engines, you would need to rebuild it with server-side rendering (SSR) or convert it to static HTML. Either approach requires significant development work — effectively rewriting the rendering layer. At that point, you are no longer using Floot's architecture. You are building something new on top of it.
Floot is aware of this
Users have requested SEO features on Product Hunt and other channels. SEO tools are a known user request. But as of now, those features are not built.
This is not a criticism of Floot. The platform is built for app functionality — interactive applications, dashboards, internal tools. Its custom React-based framework is designed to build working software quickly. Search engine crawlability was not the primary design goal.
The core issue is architectural. It is not something a plugin, a setting toggle, or a meta tag editor can fix. The server response needs to contain your actual content. With a client-side rendered React app, it does not. Changing this requires a fundamentally different rendering approach.
Platforms like Base44, Lovable, and Bolt face the same structural problem. Any builder that generates a React SPA and delivers it via client-side rendering will produce pages that are invisible to Google by default.
How to fix it
The permanent fix is to convert your Floot app to static .html files. This means taking the design, content, and structure of your current site and producing plain HTML and CSS that the server delivers directly — no JavaScript required for the content to be visible.
With static HTML, when Google requests your page, it receives the full document immediately: headings, paragraphs, links, meta tags, structured data — everything, in a single response. No JavaScript execution needed. No rendering queue. No second pass.
The conversion preserves your design exactly as it looks today. Same layout. Same content. Same visual experience for your visitors. But the delivery changes completely. Instead of sending an empty shell and relying on JavaScript to build the page, the server sends the finished page directly.
The resulting files are yours. You own them permanently. You can host them anywhere — any server, any CDN, any static hosting provider. No ongoing platform fees. No dependency on Floot's infrastructure. Just clean, crawlable, indexable HTML files that every search engine and every social platform can read.
See what Google sees on your Floot site
Send us your URL. We'll show you the exact HTML that Google's crawler receives — and what needs to change.
Get Your Free SEO AssessmentNo credit card. No obligation.