ShipStatic ShipStatic

Fix SEO for Lovable, Bolt & AI-Built Sites

You built something great with AI. But Google can't see it. ShipStatic pre-renders your site into plain HTML that search engines love.

Available now as an experimental feature.

The problem with AI-built sites

Tools like Lovable, Bolt, Replit, and v0 make it possible to build real websites without writing code. The output is impressive: polished, interactive, professional.

But there's a catch. These tools build single-page applications (SPAs). That means the entire site is a JavaScript program that runs in the browser. When you visit a page, your browser downloads the code, executes it, and renders the content on screen.

Humans see a finished website. Search engines see an empty page with a script tag.

Google can run JavaScript, but it does so in a delayed second pass. Pages may take days or weeks to appear in search results, if they appear at all. Some pages never get indexed. Internal links between routes may not be discovered. Meta tags set by JavaScript may be ignored.

The result: the site you're proud of is invisible to the people searching for it.

The fix: pre-rendering

Pre-rendering means running your site through a real browser before it goes live. Every route your app has (the home page, the about page, each product page) gets visited by a headless browser that waits for the JavaScript to finish, then saves the resulting HTML.

The output is a set of plain HTML files. One per route. When Google visits /about, it gets fully rendered HTML with all the content, meta tags, and links already present. No JavaScript required.

Your visitors still get the interactive SPA experience. Search engines get clean, indexable HTML. Both see the same content.

How it works on ShipStatic

Upload your source code (not the compiled output) and ShipStatic detects it's an unbuilt project. A Pre-render pages toggle appears. Turn it on, hit deploy, and that's it.

1. Build. ShipStatic installs your dependencies and runs your build script. Works with React, Vue, Svelte, Astro, and any Node.js framework.

2. Crawl. A headless Chrome browser visits your site starting from the home page. It follows every internal link, waits for each page to fully render, and discovers all your routes automatically.

3. Save. Each rendered page is saved as a standalone HTML file. /about becomes about/index.html. /pricing becomes pricing/index.html. Every route is its own file.

4. Serve. The result is a fully static site. Fast, cacheable, and completely indexable. Served from a global edge network.

Before & After

Without pre-rendering With pre-rendering
Google sees Empty <div id="root"> Full page content
Indexing speed Days to weeks (deferred rendering) Immediate
Meta tags May be missed (JS-dependent) In the HTML source
Internal links Discovered via JS execution Plain <a href> tags
Social previews Often blank (no OG tags in source) Rich previews on every page
First paint Blank until JS loads Instant content

Pre-rendering is live now. Upload your Lovable or Bolt project and see the difference.

Try It Free

Works with any AI builder

Pre-rendering is framework-agnostic. If your project builds to a web app, ShipStatic can pre-render it.

AI tools

  • Lovable
  • Bolt
  • Replit
  • v0
  • Cursor, Claude, GPT

Frameworks

  • React (Vite, CRA)
  • Vue
  • Svelte
  • Angular
  • Any Node.js build tool

Live & experimental. Here's what to know

Pre-rendering is live today and free to use. It's marked experimental because we're still refining edge cases, but it already works well for most sites. Give it a try and let us know how it goes.

Dynamic content. Pages that load data from external APIs after render (user profiles, live feeds) will capture whatever state existed at build time. The pre-rendered HTML is a snapshot. It won't update until you re-deploy.

Auth-gated pages. Pages behind login walls won't render meaningful content. The crawler has no credentials. These pages are excluded naturally and fall back to the SPA behavior.

Route discovery. The crawler follows <a href> links starting from /. Routes that aren't linked from any page won't be found or pre-rendered. Make sure your navigation includes all the pages you want indexed.

For most sites built with AI tools (landing pages, portfolios, business sites, documentation) pre-rendering works out of the box. No configuration needed.

Common questions

Do I need to change my code?

No. Upload your project as-is. ShipStatic handles the build and pre-rendering automatically. Your code stays exactly the same.

Will my site still be interactive?

Yes. The JavaScript still loads and runs normally. Pre-rendering adds HTML for search engines and faster first paint. It doesn't remove any functionality.

How is this different from SSR?

Server-side rendering (SSR) generates HTML on every request, requiring a server running 24/7. Pre-rendering generates HTML once at deploy time. The result is the same for SEO, but pre-rendered sites are simpler, faster, and cheaper to host. They're just static files.

Does this work with Lovable specifically?

Yes. Lovable outputs React + Vite projects. Export your project from Lovable, upload the source to ShipStatic with pre-rendering enabled, and every page becomes indexable HTML.

What about sites I've already deployed?

Re-upload the source code with pre-rendering enabled. ShipStatic creates a new deployment. Point your domain at it and search engines will start indexing the full content.

Make your site visible

Upload your source code, toggle pre-rendering, and get indexable HTML in seconds. Free to try.