Bolt.new SEO
Your Bolt.new App Is Invisible to Google
You just built something incredible with Bolt.new. It looks perfect in the browser. But here is the catch -- Google is not using a browser. When Googlebot visits your site, it gets a blank HTML shell with no content. All the React or Vue code that makes your app work? Search engines do not always execute it, which means your pages might not get indexed at all.
What RndrKit Does
RndrKit intercepts search engine traffic before it reaches your Bolt.new app. When a crawler visits, RndrKit renders the page in a headless browser and serves the fully rendered HTML -- with all your text, images, meta tags, and structured data intact. Human visitors go straight to your Bolt.new app with zero overhead.
Setup
Step 1: Find Your Bolt.new App URL
Bolt.new deploys your app to a URL like:
your-project.bolt.host
You can find this in the Bolt.new editor after deploying. This is your origin URL.
If you are on a Bolt.new paid plan, you may have already set up a custom domain through Bolt. You will need to remove it before connecting through RndrKit (see Step 2).
Step 2: Remove Custom Domain from Bolt (If Applicable)
If you configured a custom domain in Bolt.new's settings, remove it first. RndrKit needs to control DNS for your custom domain. Having it configured in both places will cause conflicts.
Keep the default *.bolt.host URL -- that is your origin.
Step 3: Sign Up for RndrKit
Create your account at rndrkit.io.
Step 4: Add Your Domain
Click Add Domain in the dashboard:
| Field | Example | Description |
|---|---|---|
| Custom Domain | www.example.com | The domain your visitors will use |
| Origin URL | your-project.bolt.host | Your Bolt.new app's default URL |
Step 5: Configure DNS
Create a CNAME record at your DNS provider:
| Type | Name | Value | TTL |
|---|---|---|---|
| CNAME | www | cname.rndrkit.io | Auto |
If you are using Cloudflare, set the proxy status to DNS only (gray cloud) during initial setup.
For detailed instructions, see DNS Configuration.
Step 6: Verify
Click Verify in the RndrKit dashboard, then test:
# Bot request -- should return fully rendered HTML
curl -s -A "Googlebot/2.1" "https://www.example.com/" | head -50
# Human request -- should return your SPA shell
curl -s "https://www.example.com/" | head -50
Platform-Specific Notes
Bolt.new robots.txt
Bolt.new origins serve a robots.txt with content signals for search, AI input, and AI training permissions. When you connect through RndrKit, RndrKit serves its own robots.txt for your custom domain, so the origin's file is not exposed to crawlers.
Custom Domains Require a Paid Plan
Bolt.new requires a paid plan to deploy with a custom domain. However, you do not need Bolt.new's custom domain feature -- you only need the default *.bolt.host URL. RndrKit handles the custom domain and SSL for you.
Bolt.new Tech Stack
Bolt.new generates apps using various frameworks (React, Vue, Svelte, etc.) depending on your prompt. Regardless of which framework Bolt chose, if it produces a client-side rendered app, RndrKit will pre-render it correctly.
SEO Quick Wins
Once RndrKit is active, make sure your Bolt.new app includes:
- Title tags on every page -- unique and descriptive
- Meta descriptions -- tell search engines what each page is about
- Open Graph tags -- so shared links show a proper preview
- Canonical URLs -- point to your custom domain, not
bolt.host - Structured data (JSON-LD) -- help Google understand your content
If your Bolt.new app uses React, you can add react-helmet-async for per-page meta tags. Ask Bolt's AI to add it for you.
Verify It Works
curl -s -A "Googlebot/2.1" "https://www.example.com/" | head -100
You should see your full page content in the HTML response. If you see an empty shell, check the troubleshooting guide.
Next Steps
- Analytics -- Monitor bot traffic to your site
- Cache Warming -- Pre-render key pages for instant bot responses
- SEO Audit -- Find and fix SEO issues
- Sitemaps -- Help search engines find all your pages