Datei-basiertes Routing, Layouts, SSR und SEO mit SvelteKit – der moderne Standard.
SerieSvelte kompakt erklärt
Teil 4 von 8
Mit SvelteKit stellt das Svelte-Ökosystem ein umfassendes Meta-Framework bereit, das moderne Webstandards konsequent umsetzt: Datei-basiertes Routing, modulare Layouts, serverseitiges Rendering (SSR), Static-Site-Generation (SSG) und exzellente SEO-Unterstützung – alles direkt integriert und ohne zusätzliche Konfiguration.
📁 Datei-basiertes Routing – einfach und mächtig
SvelteKit nutzt ein dateibasiertes Routingsystem, das stark an Next.js erinnert. Jede Datei in src/routes wird automatisch zur Route.
Beispiele:
+page.svelte: Definiert die Seite (komponentenbasiert)+page.ts/js: Optionaler Server- oder Client-Loader für Daten[param]: Dynamische Route (z. B. für Blogposts oder Produktseiten)[[optional]]: Optionaler Parameter
🧱 Layouts – wiederverwendbare Seitenstruktur
SvelteKit unterstützt nested Layouts – d. h. ein übergeordnetes Layout kann mehreren Unterseiten dienen.
Beispielstruktur:
In +layout.svelte:
<Header />
<main><slot /></main>
<Footer />
Layouts können eigene Scripts, Styles oder auch Stores enthalten – und so Logik und Struktur bündeln.
SEO mit SvelteKit
SvelteKit bietet alles, was moderne SEO braucht – und das direkt aus dem Framework heraus.
Vorteile:
- Server-side Rendering: Inhalte sind bei Seitenaufruf direkt verfügbar
- Page-Preloading: Schnelles Navigieren ohne harte Reloads
- Meta-Tags dynamisch setzen
- Zugriff auf Pfad, Params, Daten im
<svelte:head>
Beispiel:
<svelte:head>
<title>Mein Blog – {data.title}</title>
<meta name="description" content={data.summary} />
</svelte:head>
Load-Funktion – Daten vorab laden
Mit load() lassen sich Daten für Seiten und Layouts vorab laden – auf Client oder Server.
Beispiel in +page.ts:
export async function load({ params, fetch }) {
const res = await fetch(`/api/posts/${params.slug}`);
const post = await res.json();
return { post };
}
In der Komponente steht data.post dann direkt zur Verfügung.
Vorteile:
- Trennung von Datenlogik und UI
- SSR, SSG oder clientseitiges Laden möglich
- Voller TypeScript-Support
Internationalisierung (i18n) & dynamisches Routing
SvelteKit bietet viele Erweiterungsmöglichkeiten für internationale Projekte:
- Middleware zum Umschalten von Sprachen
- Dynamische Routen pro Sprache
- Integration mit Libraries wie svelte-i18n oder tolgee
Best Practices für Struktur & Routing
- Flache Routenstruktur mit sinnvollen Unterordnern
- Gemeinsame Komponenten und Stores in
/src/lib/ - Layouts nutzen für konsistente Navigation & Struktur
- Separate
+layout.tsDateien zur Vorbereitung von Layout-Daten (z. B. Userstatus, Menüs) - SEO-optimierte Titel & Meta-Tags pro Seite
Ein letzter Gedanke (Teil 5)
SvelteKit nimmt viele Hürden moderner Webentwicklung ab – mit durchdachtem Routing, flexiblen Layouts, schneller Datenverarbeitung und starker SEO-Basis. Die Kombination aus minimalistischem Code und maximaler Kontrolle macht es zu einer leistungsfähigen Plattform für moderne Single-Page- und Multi-Page-Anwendungen.
SvelteKit in der Production – was wirklich zählt
Aus echten Production-Erfahrungen lassen sich konkrete Stärken und Schwächen benennen:
Stark in:
- Build-Performance: Production-Builds einer mittelgroßen Site (50 Seiten) liegen typisch bei 15–40 Sekunden. Next.js braucht 1–3 Minuten, Gatsby 3–10 Minuten.
- Bundle-Größen: Eine typische SvelteKit-Site liegt bei 30–80 KB JavaScript (gzipped), oft die Hälfte von vergleichbaren React-Setups.
- Mental Model: File-based Routing, Layouts, Hooks — die Konzepte sind in 1–2 Tagen gelernt. Bei Next.js App Router brauchen Teams oft Wochen, bis Server- und Client-Komponenten-Logik sicher verstanden ist.
Schwächer in:
- Library-Ökosystem: UI-Bibliotheken (Skeleton, Flowbite-Svelte) decken Basics ab, aber für spezifische Component-Libraries (Charts, Tabellen, komplexe Inputs) ist React breit aufgestellter.
- Recruiting: SvelteKit-Entwickler sind in Deutschland 5–8x seltener als React-Entwickler. Bei Wachstum oder Personalwechsel real ein Problem.
- Server Components / Streaming: Sveltes Server Routes sind solide, aber React Server Components sind in Next.js etablierter — bei sehr großen Apps spielt das eine Rolle.
Realistische SEO-Konfiguration
Wer SvelteKit für SEO-relevante Sites nutzt, sollte konkret achten auf:
- Adapter-Wahl:
adapter-staticfür reine Static-Sites,adapter-cloudflareoderadapter-nodefür SSR-Use-Cases. Falsche Adapter-Wahl kostet entweder SEO (bei Static-Only) oder Performance (bei unnötigem SSR). - Trailing Slashes konsistent: SvelteKit erlaubt verschiedene Modi (
always,never,ignore). Inkonsistenz führt zu Duplicate-Content-Issues. - Meta-Tags pro Route: Mit
<svelte:head>pro Seite, nicht im Root-Layout. Sonst werden Meta-Tags nicht pro Route gerendert. - Sitemap-Generation: Manuell oder über
+server.ts-Route mit XML-Generation. Nicht out-of-the-box, aber in 30–60 Minuten implementierbar.
Wann SvelteKit nicht passt
- Bei bestehender React-Codebase: Migration kostet Zeit, ohne sicheren ROI. Lieber innerhalb von React modernisieren.
- Bei sehr großen Frontend-Teams (20+ Entwickler): Recruiting-Risiko wird real.
- Bei strikten Library-Anforderungen: Wenn Material-UI oder Ant Design Pflicht ist, bleibt SvelteKit außen vor.
- Bei sehr komplexen Server-Components-Patterns: Hier ist Next.js App Router weiter entwickelt.