Guides

Bolt.new site shows blank on Google? Fix the empty title, snippet and preview

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.

Why Google stores a blank page

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:

  1. The template <title> in index.html was never changed. React updates it in the browser, but the raw HTML still says "Vite + React".
  2. Per-page titles set with react-helmet or document.title. They only exist after JavaScript runs, so every route shares one title in the raw HTML.
  3. Content loaded from Supabase or an API after mount. If the request is slow or blocked for crawlers, the rendered page is a spinner.
  4. Intro animations or fade-ins that start with opacity: 0, so the screenshot Google takes is blank.

How to confirm it in two minutes

  1. Paste your URL into What Googlebot Sees. It's free and needs no signup. It shows the raw HTML a crawler downloads next to the rendered page, with word counts for each. If raw shows 0 words and rendered shows hundreds, this is your problem.
  2. In Search Console, run URL Inspection → Test live URL → View tested page and check the screenshot and the HTML tab.
  3. Do View Page Source (not Inspect) in your browser. Whatever is in there is all most crawlers and link-preview bots get.

Quick fixes you can make in Bolt today

These help, but they don't give each page its own title, text, and preview, because those still exist only after JavaScript runs.

The full fix: serve crawlers a rendered page

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.

See it for your own site: What Googlebot Sees shows the raw HTML Google downloads next to the rendered page, free. Or run the free SEO checker, or start a free 7-day trial.