Server-Side Rendering
Generating HTML on the server so crawlers and AI bots can read the full content immediately.
Server-Side Rendering (SSR) is a technique where a web page's HTML is generated on the server before being sent to the browser. This contrasts with Client-Side Rendering (CSR), where JavaScript builds the page in the browser.
SSR and discoverability
Google can render JavaScript, but with delays. Other search engines and AI bots often have limited or no JavaScript support. SSR ensures all content is immediately available to every crawler.
SSR as AEO foundation
AI bots like GPTBot and ClaudeBot do not execute JavaScript. If your content is only available via CSR, these bots miss your content entirely. SSR is therefore a basic requirement for AEO — bibliotheekterm readiness. Consider SSR or static site generation if your site relies heavily on JavaScript frameworks.
SSR vs CSR vs SSG vs ISR
| Feature | SSR (Server-Side Rendering) | CSR (Client-Side Rendering) | SSG (Static Site Generation) | ISR (Incremental Static Regeneration) |
|---|---|---|---|---|
| HTML generation | On the server per request | In the browser via JavaScript | Build-time (upfront) | Build-time + on-demand regeneration |
| Time to First Byte | Higher (server must render) | Low (empty HTML skeleton) | Very low (static file) | Very low (cached) |
| SEO — bibliotheekterm-friendly | Excellent | Problematic | Excellent | Excellent |
| AI bot friendly | Yes (full HTML) | No (empty DOM) | Yes (full HTML) | Yes (full HTML) |
| Dynamic content | Yes (real-time) | Yes (real-time) | No (stale until rebuild) | Yes (with revalidation interval) |
| Server load | High (per request) | Low (client does the work) | Minimal (static files) | Low to moderate |
| Best for | Dynamic sites, dashboards, personalized content | Web apps, SPAs behind login | Blogs, docs, marketing sites | E-commerce, news sites |
| Frameworks | Next.js, Nuxt, SvelteKit, Laravel Blade | React SPA, Vue SPA, Angular | Next.js, Gatsby, Hugo, Astro | Next.js, Nuxt 3 |
How to test if a site uses SSR
- View Page Source: right-click on the page and choose "View Page Source" (or Ctrl+U). If you see the full content in the HTML, it's SSR or SSG. If you only see an empty
<div id="app"></div>with a JavaScript bundle, it's CSR. - Disable JavaScript: disable JavaScript in your browser (Chrome DevTools > Settings > Debugger > Disable JavaScript). If the page still shows content, it's SSR. If the page is blank or broken, it's CSR.
- curl command: use
curl -s https://example.com | head -100in the terminal. curl doesn't execute JavaScript, so you see exactly what crawlers see. - Google Cache: view the cached version of the page in Google. If content is missing, Googlebot may be struggling with JavaScript rendering.
Frequently asked questions
Can Googlebot render JavaScript?
Yes, Googlebot can render JavaScript, but with delays (the "second wave of indexing — bibliotheekterm"). Complex JavaScript applications sometimes aren't fully rendered, and other search engines like Bing have more limited JavaScript support.
Is Laravel with Blade SSR?
Yes. Laravel with Blade templates generates HTML on the server. The full page content is immediately available to crawlers and AI bots. Livewire adds interactivity via AJAX, but the initial HTML is server-rendered.
Should I use SSR if I have a SPA (Single Page Application)?
For public, discoverable pages, SSR is strongly recommended. For pages behind a login (dashboards, admin panels), it matters less since these don't need to be indexed anyway. Frameworks like Next.js and Nuxt make it easy to enable SSR per page.
What's the difference between SSR and prerendering?
SSR generates HTML on every request. Prerendering generates HTML upfront (build-time) for specific routes and serves it as static files. Prerendering is simpler but less suitable for dynamic content.
Does SSR impact Core Web Vitals — bibliotheekterm?
SSR can increase TTFB (the server must render the page), but usually improves LCP and CLS because content is immediately available. CSR often has better TTFB but worse LCP due to JavaScript load time. The ideal solution depends on your specific situation.
What does our scanner check?
Our scanner compares the HTML delivered by the server (without JavaScript) to the fully rendered page. We calculate an SSR Coverage percentage: how much of the visible content is immediately available in the server response? A low percentage means your site depends on JavaScript and may be invisible to AI bots. Test your SSR coverage.