Prerendering 280 pages of a React SPA for SEO: what actually worked
We shipped a Vite + React single page app with about 280 routes: marketing pages, a blog, and a batch of programmatically generated county pages. All client rendered. The problem is not users, it is crawlers and share cards. A raw SPA serves the same index.html for every route, so anything that does not execute JavaScript sees an identical, empty shell no matter which URL it requested. This post walks through the actual prerender pipeline we run after every build, what it gets right, what it doe

