SSR (Server-Side Rendering) is the generation of HTML on the server for every request, sending fully rendered markup to the browser. The browser receives complete HTML immediately, without waiting for JavaScript. The opposite is CSR (Client-Side Rendering, i.e. SPA).
SSR advantages
SEO — search bots see all content immediately
First paint — content is visible before JavaScript executes
Low-end devices — less work for the browser
Disadvantages
Every request is server work, increasing load
Slower navigation (compared to SPA) without streaming or partial rendering
Approaches
Traditional SSR — PHP, Ruby, Python render HTML templates. Battle-tested for years
Hydration — the server renders HTML; the client "hydrates" it with JS components (Next.js, Nuxt)
Static Generation (SSG) — HTML is built at deploy time, not at request time. Fastest possible