This guide is for a slightly different problem than a Bolt site that isn't on Google at all. Here, Google has found your site, but what it shows is wrong:
Your site looks fine in a browser. Google is showing you what it stored, and what it stored was close to empty.
A Bolt.new project is usually a Vite + React single-page app. The HTML your server sends looks like this:
<head><title>Vite + React + TS</title></head>
<body><div id="root"></div><script type="module" src="/assets/index.js"></script></body>
Everything you see, from your headline to your per-page titles, is drawn by JavaScript afterward. Google indexes in two passes: it reads the raw HTML first and renders JavaScript later, when it has resources to spare. If rendering times out, a script fails, an API call is slow, or the page waits on an animation, Google keeps the version it already has: the template title and an empty <div>.
Common Bolt-specific causes:
<title> in index.html was never changed. React updates it in the browser, but the raw HTML still says "Vite + React".react-helmet or document.title. They only exist after JavaScript runs, so every route shares one title in the raw HTML.opacity: 0, so the screenshot Google takes is blank.<title> and <meta name="description"> in index.html. This at least fixes the homepage result.opacity: 0 start states on above-the-fold content.robots.txt doesn't block /assets/ or your API domain, because Google needs those to render.These help, but they don't give each page its own title, text, and preview, because those still exist only after JavaScript runs.
The reliable fix is to hand Google a fully rendered HTML snapshot, so it never has to run your JavaScript. You can do that by migrating to a server-rendered framework, or you can put a prerendering layer in front of your existing site. Google calls this dynamic rendering, and it's fine as long as crawlers and people see the same content.
CrawlFixer does this with one DNS record (www CNAME customers.crawlfixer.com). Crawlers get a rendered page with its real title, description, canonical and social tags. People get your normal Bolt app. After you connect, request reindexing in Search Console, and the blank results get replaced as Google recrawls.
Check yours first: run your URL through What Googlebot Sees. If raw and rendered look very different, start the free 7-day trial. No card needed, and it costs $12/month per site after that.