2. Server-Side Rendered (SSR)

This whole page opts out of static generation with export const prerender = false. Every refresh runs the page code on the server again.

🟢 Server-Side Rendered (SSR)

Rendering: Request Time

Request Time: 2026-06-05T00:17:01.308Z

Random Number: 575

User Agent: Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)

This value is generated fresh on each request. Refresh to see it change.

src/pages/rendering-demo-ssr.astro
---
export const prerender = false; // run on every request
import BaseLayout from '../layouts/BaseLayout.astro';
import ServerRendered from '../components/ServerRendered.astro';
---

<BaseLayout title="SSR Demo">
  <ServerRendered />
</BaseLayout>

What to notice

  1. Refresh the page - the timestamp and random number change every time
  2. The User Agent is real request data, only available on the server
  3. Cost: every visitor triggers a server render. Use SSR only when you need per-request data
  4. Requires an SSR adapter (Vercel, Netlify, Node) - won't work on plain static hosting

When to use in WordPress

  • Logged-in user pages - account, orders, dashboard (reads JWT/cookies)
  • WooCommerce cart & checkout - per-user, must be fresh
  • Search results - dynamic query params from the URL
  • Draft previews - editors hitting ?preview=true from wp-admin
  • Anything reading Astro.request.headers or geolocation