Typografie und Web Fonts in Next.jsnext/font, Subsetting und CLS ohne Regression (2026)

typografie3 Min. Lesezeit20. Juli 2026

Autor: DevStudio.it

TL;DR

Google Fonts per <link> im <head> ist 2026 eine automatische Performance-Regression — extra DNS, render-blocking CSS und CLS, wenn Text nach dem Laden von Weight 600 „springt". next/font self-hostet Dateien im Bundle, setzt font-display: swap und erzeugt CSS-Variablen — kein Request zu fonts.googleapis.com. Subsetting auf latin + latin-ext (polnische und deutsche Diakritika) spart 60–80 % gegenüber vollem Unicode. Platzhaltung via size-adjust oder festes Hero-line-height verhindert Layout Shift. Hosting auf DevStudioIT Cloud liefert Fonts vom gleichen Origin wie HTML.

Für wen

  • Unternehmensseiten mit Figma-Typografie ohne LCP-Schaden
  • Next.js-Teams mit CLS 0,15+ trotz optimierter Bilder
  • Mehrsprachige PL/DE-Projekte mit latin-ext
  • Designer mit vier Font-Weights — KB-Budget rechtfertigen

Keyword

next/font subsetting, web fonts performance, cls fonts nextjs, font-display swap, unternehmensseite typografie, google fonts self hosting 2026

Problem: externe Fonts und Core Web Vitals

<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&display=swap" rel="stylesheet">
Schritt Verzögerung Wirkung
DNS fonts.googleapis.com 20–80 ms Nach HTML-TTFB
CSS font-face blocking / FOIT Verzögerter Text
DNS fonts.gstatic.com weiterer RTT Schlechteres LCP bei Text
.woff2 400+600+700 150–400 KB Main-Thread-Decode

CLS entsteht, wenn Fallback-Metriken von Inter abweichen.

next/font im App Router

import { Inter } from 'next/font/google';

export const inter = Inter({
  subsets: ['latin', 'latin-ext'],
  weight: ['400', '600'],
  display: 'swap',
  variable: '--font-inter',
  preload: true,
  adjustFontFallback: true,
});
<html lang="de" className={inter.variable}>
  <body className="font-sans antialiased">{children}</body>
</html>
Option Effekt
latin-ext PL/DE-Zeichen
weight: [&#39;400&#39;,&#39;600&#39;] Nur genutzte Schnitte
adjustFontFallback: true Automatisches size-adjust

Subsetting

Subset Wann Größe Inter 400
latin Nur EN ~15 KB
latin-ext PL, DE +8–12 KB
Voller Unicode 200 KB+

Brand-Font lokal:

import localFont from 'next/font/local';

export const brandSans = localFont({
  src: [
    { path: '../public/fonts/Brand-Regular.woff2', weight: '400' },
    { path: '../public/fonts/Brand-SemiBold.woff2', weight: '600' },
  ],
  display: 'swap',
  variable: '--font-brand',
});

CLS — Platzhaltung

.hero-title {
  font-size: clamp(2rem, 5vw, 3.5rem);
  line-height: 1.15;
  min-height: 2.3em;
}
Technik CLS
optional Niedrigstes, Font evtl. fehlt
swap + size-adjust Empfohlen B2B
System-Font mobile Null CLS

Mobile 4G-Throttling in Lighthouse testen.

Typografie und LCP

Wenn LCP das H1 ist: nur kritische Weight preloaden, kein @import in CSS-Modulen, Hero als Server Component.

Mehrere Fonts

Pattern Dateien Empfehlung
1 Familie, 2 Weights ~40 KB ✅ Standard
Body + Display 4 Dateien OK für H1–H2
4 Weights × 2 Familien 8+ Budget-Review

Monitoring auf DevStudioIT Cloud

Lighthouse CI (CLS, LCP), CrUX nach 28 Tagen, RUM layout-shift. Neue Weight 700 + Italic = +40 KB und CLS +0,05.

FAQ

next/font/google vs public/?

Build lädt und self-hostet mit Hash — wie manuell, ohne CORS. public/ nur für Nicht-Google-Fonts.

Variable Fonts immer kleiner?

Oft bei 3+ Weights — Größe und Windows-Rendering testen.

Adobe Fonts / Fontshare?

Externer Origin schadet CWV — nach Lizenz self-hosten.

Inter vs system-ui?

Bei LCP > 3 s mobile A/B mit system-ui testen.

Typografie ohne CLS-Regression?

Ähnliche Beiträge

Performance Budget und Core Web Vitals fürs Team — Lighthouse CI in der Praxis (2026)
3 Min. Lesezeit
Core Web Vitals – UX und Seitenperformance messen in 2026
10 Min. Lesezeit
Video-Hero und LCP — Wenn Autoplay die Performance der Unternehmensseite killt (2026)
3 Min. Lesezeit

Über den Autor

Wir bauen schnelle Websites, Web/Mobile-Apps, KI-Chatbots und Hosting — mit Fokus auf SEO und Conversion.

Empfohlene Links

Von Theorie zu Produktion — Branchly, Hosting-Stack und Referenzen.

Gefällt euch unser Ansatz? Lasst uns gemeinsam bauen.

Projektkonfiguration starten