Technical SEO

    SSR, SSG, and CSR Explained for AI Builders and Vibe Coders

    Hado SEO7 min read

    Why This Matters for AI Builders and Vibe Coders

    Many AI coding platforms like Lovable, Replit, and Bolt.new default to client-side rendering for speed and simplicity. That's great for rapid prototyping, but it's exactly why Google can't "see" your app content.

    Understanding the difference between SSR, SSG, and CSR is step one to fixing SEO for apps built on Lovable, Replit, or Bolt.new.

    What Is Client-Side Rendering (CSR)?

    Client-Side Rendering means the browser builds the page using JavaScript after the initial HTML loads.

    Client-Side Rendering Architecture Diagram showing data flow between browser, web server, API/database, and crawlers

    How it works:

    • Server sends a minimal HTML file (usually just <div id="root"></div>)
    • Browser downloads JavaScript bundles
    • React (or another framework) builds the UI in the browser
    • User sees the fully interactive app

    The SEO problem:

    If you "view source" on a CSR app with Javascript disabled, you'll see almost nothing. Just the document headers and an empty <div id="root"></div>. Google's and other search engine crawlers may not wait for JavaScript to execute, or it may execute it partially, meaning your content is invisible for indexing.

    Common on:

    • Lovable
    • Replit
    • Bolt.new
    • Most Vite + React setups

    Best for: Rapid prototyping, dashboards, internal tools where SEO doesn't matter.

    What Is Server-Side Rendering (SSR)?

    Server-Side Rendering means HTML is generated on the server for every request, then sent fully rendered to the browser.

    Server-Side Rendering Architecture Diagram showing data flow between browser, SSR server, and crawlers

    How it works:

    • User requests a page
    • Server executes React (or your framework) and generates HTML
    • Fully rendered HTML is sent to the browser
    • Browser displays content immediately
    • JavaScript "hydrates" to make it interactive

    The SEO advantage:

    Googlebot receives fully rendered HTML instantly. No waiting for JavaScript execution. Every page is crawlable and indexable immediately.

    The catch:

    SSR requires backend infrastructure. Most AI coding platforms don't support it out of the box because they're optimized for static hosting or client-side apps.

    Common on:

    • Next.js (with getServerSideProps)
    • Remix
    • SvelteKit
    • Custom Node.js/Express + React setups

    Best for: Production web apps, e-commerce, content-heavy sites where SEO is critical.

    What Is Static Site Generation (SSG)?

    Static Site Generation means pages are pre-built into static HTML at build time, not at request time.

    Static Site Generation Architecture Diagram showing build time generation, storage, and CDN delivery of pre-rendered HTML

    How it works:

    • At build time, framework generates HTML for every page
    • Static HTML files are deployed to a CDN
    • User requests a page and gets pre-rendered HTML instantly
    • JavaScript hydrates for interactivity

    The SEO advantage:

    Super fast and SEO-friendly. Pages load instantly, and crawlers see full HTML immediately.

    The limitation:

    Static means static. If your app has user-specific content, dynamic dashboards, or real-time data, SSG won't work. You'd need to rebuild and redeploy every time content changes.

    Common on:

    • Next.js (with getStaticProps)
    • Astro
    • 11ty

    Best for: Blogs, marketing sites, documentation, portfolios where content doesn't change frequently.

    Why CSR Breaks SEO (and Why It's Common on AI Platforms)

    Lovable, Replit, Bolt.new, and other AI coding platforms emphasize fast iteration, not full-stack hosting. That's why they default to client-side rendering.

    The result? SEO invisibility.

    What developers assume:

    "Google can execute JavaScript, so my CSR app will rank fine."

    The reality:

    • Google can execute JavaScript, but may not do so reliably
    • Heavy JavaScript frameworks can fail to render on slower networks or older crawler infrastructure
    • LLM crawlers like those of Perplexity and Claude do not render Javascript

    The bottom line: If you built your app on Lovable, Replit, or Bolt.new, you probably have a CSR app. And that means Google and other crawlers see an empty page.

    Where Dynamic Rendering and Prerendering Fits In

    You don't need to rebuild your app with SSR or SSG. There's a simpler solution: dynamic rendering.

    Dynamic Rendering Architecture Diagram showing Hado SEO prerendering service serving crawlers while users access the CSR app directly

    What is dynamic rendering?

    Serve bots a pre-rendered HTML snapshot, while serving users the normal CSR app. While it is considered a workaround, Google officially approves this approach and it is recommended for those who do not want to spend their time migrating their CSR apps to be SSR and losing access to their AI coding platform like Lovable.

    Two options:

    Option 1: Traditional Dynamic Rendering

    • Detect bot user agents (Googlebot, Bingbot, etc.)
    • Route bot requests to a headless browser (like Puppeteer or Rendertron)
    • Serve fully rendered HTML to bots
    • Serve normal CSR to users

    The problem: Requires backend infrastructure, headless browser setup, maintenance, and losing access to vibe coding platforms.

    Option 2: DNS Prerendering (Hado SEO)

    • Point your domain to Hado SEO's managed rendering and caching infrastructure
    • No code changes required
    • No backend setup
    • Keep building client-side on Lovable/Replit/Bolt.new
    • Bots automatically get pre-rendered HTML
    • Users get your normal CSR app

    The advantage: You stay entirely in your AI coding platform workflow. No SSR migration. No server management. Hado SEO handles the security, maintenance, rendering, and caching infrastructure so you can focus on shipping more features.

    CSR vs. SSR vs. SSG vs. Prerendering

    Rendering TypeSEO FriendlyRequires ServerBest For
    CSRNoRapid prototyping, internal tools
    SSRYesProduction web apps, e-commerce
    SSGSometimesBlogs, marketing sites, docs
    DNS prerendering (for CSR apps)NoAI-coded apps (Lovable, Replit, Bolt.new)

    Next Step

    If your Lovable, Replit, or Bolt.new app isn't ranking, you don't need to rebuild it with SSR or SSG.

    You just need to render it for bots.

    That's what DNS prerendering does. No code changes. No backend. Just point your domain and ship.

    Try DNS Rendering with Hado SEO → and make your AI-coded app crawlable in minutes.