Reach for SSR when the page content depends on who is asking or changes often: a logged-in dashboard, a shopping cart, search results, a feed, a price that updates by region. It is also the right call when SEO and link previews matter, because crawlers and social scrapers get complete HTML instead of a blank shell they may not execute.
The downside is latency and cost. Every request waits for server compute and data fetching, so Time To First Byte is higher than serving a static file, and your servers scale with traffic instead of being a cheap cached asset. Hydration also ships JavaScript anyway, so you pay for both the server render and the client bundle.
If a page is the same for everyone and rarely changes, SSG or Incremental Static Regeneration is faster and cheaper. If content is purely interactive and behind a login where SEO does not matter, plain CSR can be simpler. A common real pattern is mixing them: static marketing pages, SSR for the authenticated app, and React Server Components to keep the client bundle small.