Design wechseln

Astro SSR vollständig konfigurieren: SSR in 3 Schritten aktivieren und Technologie-Entscheidungen klären

Easton editorial illustration: rendering-mode selector

Ihr Astro-Blog läuft blitzschnell, Lighthouse 95+ – und plötzlich sagt der Chef: „Wir brauchen Login.“ Statische Site und Nutzer-Login? In der Doku warten SSR, SSG, Hybrid, Adapter – und alles wirkt auf einmal.

So ging es mir beim ersten Astro-SSR-Kontakt. Astro wirbt mit „schnell“ – wird SSR langsamer? Vercel, Netlify, Node.js – welcher Adapter? Was bedeuten output und prerender?

SSR in Astro ist weniger komplex, als es klingt. Dieser Artikel erklärt klar: wann SSR statt SSG nötig ist, wie Sie Adapter schnell konfigurieren und SSR plus SSG im Hybrid-Modus kombinieren. Danach entscheiden Sie selbstständig und sind in etwa 30 Minuten startklar.

Kapitel 1: SSR-Grundlagen und Technologie-Entscheidung

Wann brauchen Sie SSR statt SSG?

Die einfachste Regel: Steht der Inhalt beim Build fest – oder kann er sich bei jedem Besuch ändern?

SSG (Static Site Generation) ist wie vorbereitete Menüs: morgens gekocht, beim Gast sofort serviert – sehr schnell. Blogartikel, Produktseiten, Über uns – wenig Änderung, SSG passt.

SSR (Server-Side Rendering) ist à la carte: nach Bestellung frisch zubereitet. „Willkommen zurück, Max“, Echtzeitkurse, Warenkorbmenge – pro Nutzer unterschiedlich, daher SSR.

Trifft einer der folgenden fünf Fälle zu, sollten Sie SSR prüfen:

1. Authentifizierung und personalisierte Inhalte

Typisch: Login. Beim Build wissen Sie nicht, wer sich anmeldet. Bei einer Lernplattform zeigte die Startseite „Weiterlernen: Lektion 5“ – SSR aus dem individuellen Fortschritt.

2. Echtzeitdaten

Wetter, Börse, Sport-Ergebnisse – minütliche Updates. Nicht jede Minute neu bauen. Mit SSR holen Sie bei jedem Besuch aktuelle Daten.

3. Datenbankabfragen

Produktsuche: jedes Keyword andere Ergebnisse – alle Kombinationen vorab unmöglich. SSR: Suche in Echtzeit gegen die DB.

4. API-Routen

Formulare, Uploads, Drittanbieter-APIs brauchen Backend-Logik. Astro SSR erlaubt API-Routen (src/pages/api/xxx.js) ohne separaten Server.

5. A/B-Tests und personalisierte Empfehlungen

Inhalt nach Geo, Zeit, Verhalten – wie Startseiten großer Marktplätze. Diese Personalisierung braucht SSR.

Manche fragen: „Kann die Blog-Detailseite SSR?“ Ja – aber unnötig. Fester Artikelinhalt, SSG als statisches HTML über CDN – schneller und günstiger. SSR ist kein Selbstzweck.

Hybrid-Modus: beides kombinieren

Seit Astro 2.0: statische Seiten SSG, dynamische SSR. Beispiel E-Commerce:

  • Startseite, About, Hilfe → SSG (schnelles Laden)
  • Login, Nutzerbereich, Warenkorb → SSR (dynamisch)
  • Produktdetail → SSG (fester Inhalt)
  • Suchergebnisse → SSR (Live-Abfrage)

Statische Geschwindigkeit bleibt, dynamische Funktionen funktionieren. Ein Bekannter nutzt SSG für Liste und Artikel, SSR für Kommentare – Lighthouse weiterhin 95+.

Kapitel 2: Schnellstart – SSR in 3 Schritten

Astro SSR von null (Node.js-Adapter)

Nach der Entscheidung für SSR starten wir mit dem Node.js-Adapter – universell für Self-Hosting oder VPS.

Schritt 1: Adapter per Befehl installieren

Im Projektroot:

npx astro add node

Das erledigt automatisch:

  1. Installation von @astrojs/node
  2. Anpassung von astro.config.mjs
  3. Update der package.json-Abhängigkeiten

Grüne Häkchen in der Konsole = Erfolg. Manuell (z. B. feste Version):

npm install @astrojs/node

Dann die Config manuell anpassen (nächster Schritt).

Schritt 2: Konfigurationsdatei anpassen

In astro.config.mjs (nach Auto-Setup oft schon vorhanden):

// astro.config.mjs
import { defineConfig } from 'astro/config';
import node from '@astrojs/node';

export default defineConfig({
  output: 'server', // SSR-Modus
  adapter: node({
    mode: 'standalone' // Standalone-Server
  }),
});

Wichtige Optionen:

output:

  • 'static' (Standard): alles SSG, reines HTML
  • 'server': alles SSR, pro Request dynamisch
  • 'hybrid': Standard SSG, pro Seite SSR möglich (empfohlen)

mode:

  • 'standalone': eigener Node.js-Server von Astro
  • 'middleware': Middleware für Express, Koa usw.

Meist standalone – der Astro-Server reicht. Bestehendes Express-Backend: middleware.

Schritt 3: Build und Start

npm run build

Unter dist/ erscheint server/entry.mjs – Einstieg für SSR.

Server starten:

node ./dist/server/entry.mjs

Standard: http://localhost:4321. Alle Seiten laufen dann per SSR.

Entwicklung

Ohne jedes Mal zu bauen:

npm run dev

Dev-Server unterstützt SSR mit Hot Reload.

Häufige Probleme

  1. Port belegt – Umgebungsvariable setzen:

    PORT=3000 node ./dist/server/entry.mjs
  2. Adapter-Modul fehlt@astrojs/node installiert? npm install erneut ausführen

  3. 404 – Dateien unter src/pages/ und Astro-Routing prüfen; SSR folgt denselben Regeln

SSR-Setup ist wirklich so kurz – beim ersten Mal unter fünf Minuten bis zum Lauf. Für Vercel oder Netlify gibt es eigene Adapter – Kapitel 3.

Kapitel 3: Adapter im Detail

Vercel, Netlify, Cloudflare – Auswahl

Hosting auf Vercel, Netlify oder Cloudflare? SSR wird einfacher – offizielle Adapter, Deploy mit wenig Aufwand.

Vercel-Adapter – Serverless

Vercel: großzügiges Free-Tier, einfache Konfiguration:

npx astro add vercel

Config-Beispiel:

// astro.config.mjs
import { defineConfig } from 'astro/config';
import vercel from '@astrojs/vercel/serverless';

export default defineConfig({
  output: 'server',
  adapter: vercel(),
});

Vercel-Besonderheit: ISR (Incremental Static Regeneration)

Erster Besuch: SSR; danach Cache für eine Zeit – erneut generieren nach Ablauf.

adapter: vercel({
  isr: {
    expiration: 60, // Cache 60 Sekunden
  },
}),

News-Detail: minütliches Update reicht – ISR verbindet SSR-Flexibilität mit SSG-Geschwindigkeit.

Vercel-Deploy:

  1. Adapter konfigurieren
  2. Code nach GitHub pushen
  3. Projekt in Vercel importieren
  4. Build: npm run build (automatisch erkannt)
  5. Deploy

Netlify-Adapter – Edge Functions

Beliebt für statische Sites plus dynamische Features:

npx astro add netlify
// astro.config.mjs
import { defineConfig } from 'astro/config';
import netlify from '@astrojs/netlify';

export default defineConfig({
  output: 'server',
  adapter: netlify({
    edgeMiddleware: true, // Edge-Middleware
  }),
});

edgeMiddleware

Middleware-Logik (Auth, Redirects) am Edge – schnellere Antwort. Nützlich bei geo-basierten Features (Sprache nach Standort).

Netlify-Redirects

/old-page/new-page per _redirects im Projektroot:

/old-page  /new-page  301

Nach Deploy aktiv – ohne Codeänderung.

Cloudflare-Adapter – globales CDN

Weltweite Nutzer: Cloudflare Workers in 300+ Rechenzentren, niedrige Latenz.

npx astro add cloudflare
// astro.config.mjs
import { defineConfig } from 'astro/config';
import cloudflare from '@astrojs/cloudflare';

export default defineConfig({
  output: 'server',
  adapter: cloudflare(),
});

Cloudflare-Einschränkungen

Workers ≠ vollständiges Node.js – z. B. kein fs. Projekte mit solchen APIs: Cloudflare prüfen.

Adapter-Vergleich

AdapterEinsatzStärkenGrenzen
Node.jsSelf-Hosting, VPSVolle KontrolleBetrieb, Kosten
VercelProjekte, kleine TeamsZero-Config, ISRFree-Limits (100 GB/Monat)
NetlifyStatik + DynamikEdge FunctionsBuild-Minuten (Free 300/Monat)
CloudflareGlobal, niedrige LatenzEdge, günstigWorkers-Umgebung, Node-APIs teilweise fehlend

Empfehlungen:

  • Blog, Docs: Vercel oder Netlify – Free reicht oft
  • E-Commerce, SaaS: Vercel (ISR) oder Node.js Self-Hosting
  • International: Cloudflare
  • Enterprise: Node.js Self-Hosting (Datenschutz, Kontrolle)

Kein absolutes Urteil – abhängig von Anforderungen und Budget. Eigener Blog auf Vercel, Kunden-Sites Self-Hosted – beides funktioniert gut.

Kapitel 4: Hybrid-Rendering in der Praxis

SSR und SSG in einem Projekt

Nach reiner SSR-Konfiguration der Kern: Hybrid-Modus – SSG-Geschwindigkeit plus SSR-Flexibilität.

Hybrid konfigurieren

output auf 'hybrid':

// astro.config.mjs
import { defineConfig } from 'astro/config';
import node from '@astrojs/node';

export default defineConfig({
  output: 'hybrid', // Standard SSG, SSR nach Bedarf
  adapter: node(),
});

Danach sind alle Seiten standardmäßig SSG – SSR pro Seite aktivieren.

Rendering pro Seite

SSR für eine Seite – im Frontmatter:

// src/pages/dashboard.astro (SSR)

---

export const prerender = false; // Kein Pre-Render → SSR
const user = Astro.cookies.get('user');

---

<h1>Willkommen zurück, {user?.name}</h1>
<p>Sie haben {user?.notifications} ungelesene Nachrichten</p>

prerender = false: nicht beim Build, sondern bei Request generieren.

Bei output: 'server' (alles SSR) einzelne Seite statisch:

// src/pages/about.astro (SSG)

---

export const prerender = true; // Beim Build generieren

---

<h1>Über uns</h1>
<p>Fester Inhalt – vorab gebaut, schneller Zugriff.</p>

Kurzüberblick (nicht verwechseln):

outputStandardEinzelne Seite ändern
'hybrid'SSGexport const prerender = false → SSR
'server'SSRexport const prerender = true → SSG

Merksatz: hybrid = SSG zuerst, server = SSR zuerst.

Praxis: Blog plus Nutzersystem

Struktur:

src/pages/
├── index.astro          // Start (SSG)
├── about.astro          // Über uns (SSG)
├── blog/
│   ├── [slug].astro     // Artikel (SSG)
│   └── index.astro      // Liste (SSG)
├── login.astro          // Login (SSR)
├── dashboard.astro      // Dashboard (SSR)
└── api/
    └── comments.js      // Kommentar-API (SSR)

Config:

// astro.config.mjs
export default defineConfig({
  output: 'hybrid',
  adapter: vercel(),
});

Statische Seite (Standard SSG):

// src/pages/blog/[slug].astro

---

// Kein prerender – in hybrid = SSG
import { getCollection } from 'astro:content';

export async function getStaticPaths() {
  const posts = await getCollection('blog');
  return posts.map(post => ({
    params: { slug: post.slug },
    props: { post },
  }));
}

const { post } = Astro.props;

---

<article>
  <h1>{post.data.title}</h1>
  <div set:html={post.body} />
</article>

Dynamische Seite (SSR):

// src/pages/dashboard.astro

---

export const prerender = false;

const token = Astro.cookies.get('token')?.value;
if (!token) {
  return Astro.redirect('/login');
}

const user = await fetch(`https://api.example.com/user`, {
  headers: { Authorization: `Bearer ${token}` }
}).then(res => res.json());

---

<div>
  <h1>Willkommen, {user.name}</h1>
  <p>E-Mail: {user.email}</p>
  <p>Letzter Login: {user.lastLogin}</p>
</div>

API-Route (automatisch SSR):

// src/pages/api/comments.js
export async function POST({ request }) {
  const { articleId, content } = await request.json();

  await db.comments.insert({
    articleId,
    content,
    createdAt: new Date(),
  });

  return new Response(JSON.stringify({ success: true }), {
    status: 200,
    headers: { 'Content-Type': 'application/json' }
  });
}

export async function GET({ url }) {
  const articleId = url.searchParams.get('articleId');

  const comments = await db.comments.findMany({
    where: { articleId },
    orderBy: { createdAt: 'desc' }
  });

  return new Response(JSON.stringify(comments), {
    headers: { 'Content-Type': 'application/json' }
  });
}

Vorteile:

  1. Statische Seiten – Lighthouse 95+, CDN
  2. Dynamische Seiten – individuelle Daten pro Nutzer
  3. API-Routen – Backend ohne separaten Server
  4. Kurze Build-Zeit – nur statische Seiten pre-rendern

Ein Projekt: 50 Blogartikel plus Nutzersystem – Build ~20 Sekunden, statische Seiten sofort, dynamische Antwort oft unter 100 ms. Hybrid als Best Practice.

Kapitel 5: FAQ und Best Practices

Fallstricke bei der SSR-Konfiguration

Typische Probleme und Lösungen aus der Praxis.

Problem 1: Astro.clientAddress is only available when using output: 'server'

Ursache: Astro.clientAddress genutzt, aber output noch 'static'.

Lösung:

// astro.config.mjs
export default defineConfig({
  output: 'server', // oder 'hybrid'
  adapter: node(),
});

Astro.clientAddress, Astro.cookies, Astro.redirect() – nur im SSR-Modus.

Problem 2: 404 nach Deploy, lokal OK

Ursache: falscher Adapter oder Build-/Output-Einstellungen der Plattform.

Lösung:

Vercel:

  • Build: npm run build
  • Output: .vercel/output (automatisch)
  • Routing nicht manuell in vercel.json – Astro überlässt

Netlify:

  • Build: npm run build
  • Publish: dist (statisch) oder .netlify (SSR)
  • Bei 404 netlify.toml prüfen:
    [build]
      command = "npm run build"
      publish = "dist"

Problem 3: SSR-Seite langsam (> 2 s)

Ursache: schwache Server-Hardware oder langsame DB-Queries.

Lösung:

  1. Caching:

    // src/pages/api/news.js
    export async function GET() {
      const cached = await redis.get('news');
      if (cached) {
        return new Response(cached, {
          headers: {
            'Content-Type': 'application/json',
            'Cache-Control': 'public, max-age=60'
          }
        });
      }
    
      const news = await fetchNewsFromDB();
      await redis.set('news', JSON.stringify(news), 'EX', 60);
    
      return new Response(JSON.stringify(news), {
        headers: {
          'Content-Type': 'application/json',
          'Cache-Control': 'public, max-age=60'
        }
      });
    }
  2. DB optimieren: Indizes, weniger JOINs, nur benötigte Felder

  3. ISR auf Vercel:

    adapter: vercel({
      isr: { expiration: 300 }
    }),

Problem 4: Umgebungsvariablen im Client nicht verfügbar

Ursache: Astro trennt Server- und Client-Env.

Lösung:

Server (SSR, API):

const secret = import.meta.env.SECRET_KEY;

Client (Browser):

const apiUrl = import.meta.env.PUBLIC_API_URL; // Prefix PUBLIC_

.env:

SECRET_KEY=abc123
PUBLIC_API_URL=https://api.example.com

Problem 5: adapter.setApp is not a function

Ursache: inkompatible Astro- und Adapter-Versionen.

Lösung:

npm update astro @astrojs/node

# oder explizit latest
npm install astro@latest @astrojs/node@latest

Astro und Adapter möglichst auf kompatiblen Stand halten.

Best Practices

  1. Standard Hybrid – außer jede Seite braucht SSR
  2. SSR gezielt – nur prerender = false wo nötig
  3. Assets in public/ – CDN, nicht SSR
  4. Cache/ISR für selten wechselnde dynamische Listen
  5. Env trennen – Secrets serverseitig, PUBLIC_ für Client
  6. Monitoring – Vercel Analytics oder GA für SSR-Latenz

Fazit

Kern in drei Sätzen:

1. SSR ist kein Allheilmittel – gezielt einsetzen

Statische Seiten SSG, dynamische SSR – Hybrid für die meisten Projekte. Ganzer Blog auf SSR verschlechtert oft die Performance – Blog-Inhalt unverändert, SSG über CDN schneller.

2. Adapter nach Deploy-Plattform – Konfiguration ist einfach

Vercel/Netlify/Cloudflare: npx astro add [platform]. Self-Hosting: npx astro add node in Minuten. Praxis schlanker als die Doku vermuten lässt.

3. Hybrid verbindet beides

Astros Stärke: statische Seiten mit 95+ Lighthouse, dynamische mit Personalisierung – Build-Zeit und Kosten im Griff. Hybrid ist meine erste Wahl.

Nächste Schritte

  1. Ausprobieren: npx astro add node – SSR in fünf Minuten
  2. Bedarf klären: welche Seiten dynamisch, welche statisch
  3. Vertiefen: Server Islands – SSR-Komponenten in SSG-Seiten

Bei Problemen: Astro Discord – schnelle Antworten, hilfsbereite Community.

Nicht überoptimieren: unter ~10.000 PV/Tag reicht oft eine statische Site – SSR erhöht Komplexität ohne Nutzen. Technologie dient dem Business.

Viel Erfolg bei der Konfiguration – Fragen gerne in den Kommentaren!

Astro SSR vollständig konfigurieren: Serverseitiges Rendering in 3 Schritten aktivieren

Von SSR/SSG-Unterschieden über Vercel/Netlify/Node.js-Adapter bis zur Hybrid-Strategie – in 30 Minuten vom Einstieg zur Praxis

⏱️ Estimated time: 30 min

  1. 1

    Step 1: SSR vs. SSG verstehen: Wann SSR nötig ist

    Entscheidungskriterium:

    SSG (Statische Seitengenerierung)
    • Inhalt ist beim Build festgelegt
    • Blogartikel, Produktseiten, Über-uns-Seiten
    • Diese Inhalte ändern sich selten – SSG passt perfekt

    SSR (Serverseitiges Rendering)
    • Kann sich bei jedem Besuch ändern
    • Nach dem Login: „Willkommen zurück, Max“
    • Echtzeit-Aktienkurse, Warenkorbmenge
    • Jeder Nutzer sieht etwas anderes – SSR ist Pflicht

    5 Szenarien, in denen SSR zwingend ist:

    1. Authentifizierung und personalisierte Inhalte
    • Typisches Beispiel: Login
    • Beim Build wissen Sie nicht, wer sich anmeldet und welcher Name erscheint
    • Lernplattform-Startseite: „Weiterlernen: Lektion 5“
    • Muss SSR sein – dynamisch aus dem Lernfortschritt des Nutzers

    2. Echtzeitdaten
    • Wetter, Börsenkurse, Sport-Ergebnisse
    • Ändern sich minütlich
    • Sie bauen nicht jede Minute neu
    • Mit SSR holen Sie bei jedem Besuch die neuesten Daten

    3. Datenbankabfragen
    • Produktsuche im E-Commerce
    • Jedes Suchwort liefert andere Ergebnisse
    • Alle Kombinationen vorab zu generieren ist unmöglich
    • SSR: Suche in Echtzeit gegen die Datenbank

    4. API-Routen
    • Formular-Submit, Uploads, Drittanbieter-APIs
    • Brauchen Backend-Logik
    • Astro SSR unterstützt API-Routen unter src/pages/api/xxx.js
    • Kein separater Backend-Server nötig

    5. A/B-Tests und personalisierte Empfehlungen
    • Inhalt je nach Geo, Zeit und Verhalten
    • Startseiten wie bei großen Marktplätzen – jeder sieht andere Empfehlungen
    • Diese Personalisierung erfordert SSR
  2. 2

    Step 2: SSR in 3 Schritten: Adapter installieren und konfigurieren

    Schritt 1: Adapter installieren

    Vercel-Adapter:
    • Befehl: npx astro add vercel
    • Für Deployment auf Vercel

    Netlify-Adapter:
    • Befehl: npx astro add netlify
    • Für Deployment auf Netlify

    Node.js-Adapter:
    • Befehl: npx astro add node
    • Für Self-Hosting oder Docker

    Schritt 2: astro.config.mjs konfigurieren
    • output: 'server' (SSR-Modus)
    • Adapter-Konfiguration:
    import vercel from '@astrojs/vercel/serverless';
    export default {
    output: 'server',
    adapter: vercel()
    }

    Schritt 3: Auf der passenden Plattform deployen

    Vercel:
    • GitHub-Repo verbinden
    • Vercel erkennt Astro-SSR automatisch
    • Ein-Klick-Deploy

    Netlify:
    • GitHub-Repo verbinden
    • Functions-Verzeichnis konfigurieren
    • Automatisches Deploy

    Node.js:
    • npm run build erzeugt dist/
    • node dist/server/entry.mjs startet den Server
    • Oder Deployment per Docker
  3. 3

    Step 3: Hybrid-Modus: SSR und SSG gleichzeitig nutzen

    Vorteile des Hybrid-Modus:
    • SSR und SSG in einem Projekt
    • Statische Seiten per SSG (Blog, Lighthouse 95+, CDN schneller)
    • Dynamische Seiten per SSR (Nutzerbereich, Personalisierung)
    • Build-Zeit und Serverkosten bleiben im Rahmen

    Hybrid konfigurieren:
    • In astro.config.mjs output: 'hybrid' setzen
    • Im Page-Frontmatter prerender: true/false
    - Statische Seiten: prerender: true
    - Dynamische Seiten: prerender: false oder weglassen

    Best Practices:

    Standard: Hybrid
    • Außer alle Seiten brauchen SSR – output: 'hybrid' ist meist optimal

    SSR nur wo nötig
    • Nur für wirklich dynamische Seiten prerender = false

    Statische Assets über CDN
    • Bilder, CSS, JS in public/
    • Automatisch CDN, nicht über SSR

    Caching
    • Für selten wechselnde dynamische Inhalte (News-Listen) Cache oder ISR nutzen

FAQ

Wann brauche ich SSR statt SSG?
Entscheidungskriterium:
• SSG, wenn der Inhalt beim Build feststeht (Blog, Produktseiten, Über uns – ändert sich selten)
• SSR, wenn sich der Inhalt pro Besuch ändern kann (Login-Begrüßung, Echtzeitkurse, Warenkorb – jeder sieht etwas anderes)

5 Pflicht-Szenarien für SSR:

1) Authentifizierung und Personalisierung:
• Typisch: Login – beim Build kennen Sie weder Nutzer noch Anzeigenamen
• Lernplattform: „Weiterlernen: Lektion 5“ – SSR aus dem individuellen Fortschritt

2) Echtzeitdaten:
• Wetter, Börse, Sport – minütliche Änderungen
• Nicht jede Minute neu bauen – SSR holt bei jedem Besuch frische Daten

3) Datenbankabfragen:
• Produktsuche – jedes Keyword andere Ergebnisse
• Alle Kombinationen vorab unmöglich – SSR bei der Suche in Echtzeit

4) API-Routen:
• Formulare, Uploads, Drittanbieter-APIs brauchen Backend-Logik
• Astro SSR: API-Routen unter src/pages/api/xxx.js ohne separaten Server

5) A/B-Tests und Empfehlungen:
• Inhalt nach Geo, Zeit, Verhalten
• Marktplatz-Startseiten – unterschiedliche Empfehlungen pro Nutzer – SSR Pflicht
Wie konfiguriere ich Astro SSR? Welche Schritte?
SSR in 3 Schritten:

Schritt 1 – Adapter installieren:
• Vercel: npx astro add vercel, für Vercel-Deploy
• Netlify: npx astro add netlify, für Netlify-Deploy
• Node.js: npx astro add node, für Self-Hosting oder Docker

Schritt 2 – astro.config.mjs:
• output: 'server' für SSR
• Adapter-Konfiguration:
import vercel from '@astrojs/vercel/serverless';
export default { output: 'server', adapter: vercel() }

Schritt 3 – Deploy:
• Vercel: GitHub verbinden, SSR wird erkannt, Deploy
• Netlify: GitHub verbinden, Functions-Verzeichnis, Deploy
• Node.js: npm run build, node dist/server/entry.mjs oder Docker
Welchen Adapter wählen? Unterschiede Vercel, Netlify, Node.js?
Adapter-Auswahl:

Vercel:
• @astrojs/vercel/serverless, für Vercel
• npx astro add vercel
• GitHub verbinden, SSR-Erkennung, Deploy

Netlify:
• @astrojs/netlify/functions, für Netlify
• npx astro add netlify
• GitHub verbinden, Functions-Verzeichnis, Deploy

Node.js:
• @astrojs/node, Self-Hosting oder Docker
• npx astro add node
• npm run build, node dist/server/entry.mjs

Empfehlung: Vercel/Netlify/Cloudflare – eine Zeile npx astro add [platform]. Self-Hosting – npx astro add node in wenigen Minuten. In der Praxis einfacher als die Doku vermuten lässt.
Was ist der Hybrid-Modus? Wie konfiguriere ich ihn?
Hybrid-Vorteile:
• SSR und SSG in einem Projekt
• Statische Seiten SSG (Blog, Lighthouse 95+, CDN schneller)
• Dynamische Seiten SSR (Nutzerbereich, Personalisierung)
• Build-Zeit und Kosten bleiben kontrolliert

Konfiguration:
• astro.config.mjs: output: 'hybrid'
• Page-Frontmatter: prerender: true/false
- Statisch: prerender: true
- Dynamisch: prerender: false oder weglassen

Best Practices:
• Standard Hybrid (außer alles braucht SSR)
• SSR nur wo nötig (prerender = false)
• Statische Assets in public/ über CDN
• Cache/ISR für selten wechselnde dynamische Inhalte

Das ist Astros Stärke: statische Seiten mit 95+ Lighthouse, dynamische mit Personalisierung.
Beeinflusst SSR die Performance? Wann brauche ich kein SSR?
Performance-Auswirkung:
• SSR ist etwas langsamer als SSG – Rendering pro Request
• Moderne Server und CDN machen den Unterschied für viele Apps akzeptabel

Nicht überoptimieren:
• Geringer Traffic (unter 10.000 PV/Tag) – oft reicht eine statische Site
• SSR erhöht die Komplexität ohne Nutzen
• Technologie dient dem Business, nicht umgekehrt

SSR ist kein Allheilmittel – gezielt einsetzen. Statische Seiten SSG, dynamische SSR – Hybrid passt für die meisten Projekte.

Gesehen: ganzer Blog auf SSR – Performance schlechter, weil Blog-Inhalt unverändert und SSG über CDN schneller ist.

9 Min. Lesezeit · Veröffentlicht am: 2. Dez. 2025 · Aktualisiert am: 14. Juli 2026

Ähnliche Beiträge

Kommentare

Melde dich mit GitHub an, um einen Kommentar zu hinterlassen

Easton BlogEaston Blog