{
  "id": 300429,
  "title": "Angular SSR renders your page for every visitor. Here is what that costs.",
  "url": "https://urgent.news/2026/08/08/angular-ssr-renders-your-page-for-every-visitor-here-is-what-that",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-08-08T08:34:13.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/nigrosimone/angular-ssr-renders-your-page-for-every-visitor-here-is-what-that-costs-jfb"
  },
  "original_language": "en",
  "account": "Angular Server-Side Rendering (SSR) renders the page on the server for every visitor, which incurs a cost. For a 28 KB Angular 22 document, rendering takes 17.2 ms of server time. This cost is wasted when multiple users request the same page within a minute, as the rendered HTML remains unchanged. To address this, the ng-ssr-caching middleware was created. It keeps the rendered HTML and serves it without rendering again. The cache integration involves setting an Entry object containing the body, ETag, and length, then using these values to set the ETag and Content-Length headers and end the response with the cached body. This approach reduces the server workload and speeds up response times. The key takeaway is that caching reduces server workload but introduces shared cache security considerations.",
  "summary": "Angular SSR renders your page on the server, which is the whole point. It renders it again for the next visitor, and again for the one after that, and it ships nothing to stop that happening. On a page of mine, a 28 KB Angular 22 document, a render costs 17.2 ms of server time. That is not a disaster. It is also entirely wasted when a hundred people ask for the same page in the same minute and…",
  "key_points": [
    "Angular SSR renders page for each visitor, incurring cost",
    "Rendering 28 KB Angular 22 document takes 17.2 ms server time",
    "ng-ssr-caching middleware caches rendered HTML to reduce workload"
  ],
  "editors_take": null,
  "illustration": "https://urgent.news/ill/300429.png",
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}