Open source / MIT

Your React app,
visible to search engines.

Search engines crawl HTML. React apps serve an empty shell. Prestruct fixes that: rendering each route to static HTML at build time with correct SEO meta tags, Open Graph, schema.org, and caching headers. No framework migration, no edge runtime, just a smarter build step.

Build pipeline

vite build

Hashed JS + CSS bundles to dist/

inject-brand.js

Global SEO meta into index.html

prerender.js

Each route rendered to static HTML

CF Pages deploy

Globally cached, correct HTTP status

Single page apps (SPA) are great for humans (client side), but are basically an empty container for many crawlers/bots (server side). Prestruct solves this by rendering + caching React pages as static html, then deploying them to their CDN.

Plain SPA
SPA + Prestruct
Googlebot sees
Empty <div id="root">
Full rendered HTML
Per-route title
Wrong or missing
Baked in at build time
Open Graph / social
Site-wide default only
Per-route og:title, og:description, og:url
schema.org JSON-LD
Not present
Injected from config
Asset caching
No cache strategy
Immutable assets, no-cache HTML
404 status
HTTP 200 on every route
Real HTTP 404 from 404.html
Sitemap
Manual, goes stale
Auto-generated on every build

The Prestruct engine is a purpose built tool, that delivers SEO server side rendering (for crawlers), while being completely serverless on Cloudflare Pages.

rank

Crawlable content

Every route serves full HTML to bots. No JavaScript execution required. Googlebot, Bingbot, and social crawlers see exactly what a user sees. Your words are in the code that bots see.

CTR

Rich search previews

Per-route title, description, and canonical baked into HTML. Your search result shows the right snippet for each page, not a generic site-wide fallback.

share

Social cards that work

og:title, og:description, og:url, og:image correct on every route. When someone shares your /features page, the card shows features content, not just your homepage organization.

trust

Structured data

JSON-LD injected from your config into every page head. Organization, WebSite, Product, Article: whatever your app needs to earn rich results.

speed

Correct cache headers

Hashed JS/CSS assets cached immutably. HTML revalidates on every request. Users always get fresh content, browsers never re-download unchanged bundles.

zero cost

No infrastructure change

Prestruct deploys to Cloudflare Pages as static files. No server, no edge worker, no new runtime dependencies. The tradeoff: Build time goes up by about 2 seconds for every 10 prerendered routes.

The repo running at https://prestruct.creadev.org is the same example app in the Prestruct GitHub repo. Every page you visit here was prerendered by Prestruct at build time. The widget below fetches and parses the live HTML for the current route so you can see exactly what a search engine or social crawler sees.
live head tagshttps://prestruct.creadev.org/

fetching...