Performance-Audit für Laravel. Ziel: jede Seite unter 2 Sekunden. Nutze bei: "Performance", "Seite ist langsam", "Ladezeit", "Caching", "N+1", "Query optimieren", "PageSpeed", "Core Web Vitals", "TTFB", "zu viele Queries", "Cache aufsetzen", "Bilder optimieren", "lazy loading", "OPcache", "Redis", "CDN".
Ziel: Jede Seite unter 2 Sekunden (TTFB < 500ms, LCP < 2.0s).
| Metrik | Ziel | Kritisch |
|---|---|---|
| TTFB | < 200ms | > 500ms |
| FCP | < 1.0s | > 2.0s |
| LCP | < 2.0s | > 3.0s |
| CLS | < 0.1 | > 0.25 |
| INP | < 200ms | > 500ms |
| Page Size | < 500KB | > 1.5MB |
| Requests | < 25 | > 50 |
| DB Queries/Request | < 10 | > 30 |
Core Web Vitals sind auch → SEO Skill.
# Laravel Debug Bar aktivieren (nur lokal!)
# Oder: php artisan debugbar:enable
# Response-Zeiten messen
curl -o /dev/null -s -w "TTFB: %{time_starttransfer}s\nTotal: %{time_total}s\n" {URL}
# DB Queries zählen (Telescope oder Debugbar)
N+1 Queries finden und fixen:
// VORHER (N+1)
$posts = Post::all();
$posts->each(fn($p) => $p->author->name);
// NACHHER (Eager Loading)
$posts = Post::with('author')->get();
Caching:
Cache::remember('key', 3600, fn() => expensiveQuery());
// Laravel Caches
php artisan config:cache // Config
php artisan route:cache // Routes
php artisan view:cache // Views
php artisan event:cache // Events
Indexes: EXPLAIN auf langsame Queries, fehlende Indexes in Migration hinzufügen.
DB-Tuning (große Tabellen >1M Zeilen):
Vite:
// vite.config.js – Code Splitting