Wenn WordPress langsam ist, hilft selten das nächste Performance-Plugin. Zuerst musst du wissen, wo die Zeit verloren geht: auf dem Server und in der Datenbank, im Theme- oder Plugin-Code, bei Bildern und Fonts oder in JavaScript und Drittanbietern. Seiten-Cache und CDN beschleunigen nur die Ebenen, die sie abdecken. Langsame dynamische Requests und unnötige Browserarbeit reparieren sie nicht.

Drei Entscheidungen
  • Welchen einen Nutzerweg machst du zur Messgrundlage? Alles Weitere hängt an dieser Wahl.
  • Wem gehört jede Cache-Schicht, und wer darf sie invalidieren? Ohne Antwort baust du dir eine zweite Fehlerquelle.
  • Welches Signal löst den Rollback aus? Das legst du fest, bevor du die erste Zeile änderst.

Labordaten und Felddaten beantworten unterschiedliche Fragen

PageSpeed Insights kombiniert zwei Arten von Evidenz. Die Lighthouse-Auswertung erzeugt Labordaten aus einem simulierten Aufruf unter kontrollierten Bedingungen; sie ist nützlich, um Wasserfall, LCP-Ressource und blockierende Arbeit zu untersuchen. Liegen für die URL oder den Ursprung genügend Daten vor, zeigt PageSpeed Insights zusätzlich reale Nutzungsdaten aus dem Chrome User Experience Report.

Die Core-Web-Vitals-Bewertung beruht auf diesen Felddaten. LCP und CLS lassen sich zwar auch im Labor messen, ein einzelner Lauf bildet aber weder die Verteilung realer Besuche noch alle Interaktionen einer Sitzung ab, und INP liefert ein reiner Ladelauf gar nicht. Fehlende CrUX-Daten bedeuten deshalb nicht, dass eine Seite gut oder schlecht ist, sondern nur, dass zu wenig auswertbare Nutzung vorliegt. Wer den Score selbst zum Ziel erklärt, optimiert am Ende das Werkzeug und nicht den Nutzerweg.

Unsere enge Beleggrenze: PageSpeed Insights maß für duna.digital am 15. Juli 2026 in den Modi Mobil und Desktop jeweils vier Werte von 100. Das war ein datierter Lighthouse-Labortest. duna.digital läuft mit Astro und nicht mit WordPress. Der Befund ist weder ein WordPress-Referenzfall noch eine dauerhafte Garantie und belegt nicht, dass Core Web Vitals bestanden wurden. Die Methode beschreiben wir im Artikel Lighthouse 100: unser Weg zu viermal 100.

Lege zuerst einen repräsentativen Nutzerweg und eine Baseline fest

„WordPress ist langsam“ ist keine Diagnose. Eine redaktionelle Landingpage, eine Suche, ein Formular und ein eingeloggter Bereich lösen völlig unterschiedliche Arbeit aus. Wähle einen geschäftlich relevanten Ablauf, der das Problem zeigt, und dokumentiere URL, Seitentyp, Nutzerstatus, Browserkategorie und Cache-Zustand. Nimm mindestens einen zweiten Seitentyp dazu, damit eine lokale Reparatur nicht als systemweite Verbesserung durchgeht.

Erfasse für die Baseline nicht nur einen Gesamtscore, sondern TTFB, die LCP-Aufteilung, CLS, Requests, übertragene Daten und Hauptthread-Arbeit, und am Ursprung PHP-Zeit, Datenbankabfragen, externe Aufrufe und Cache-Status. Miss kalt und warm, anonym und dynamisch. Wiederhole die Messung: einzelne Läufe schwanken durch Netz, Serverlast und Gerät, und ein stabiler Median ist belastbarer als der beste Screenshot. Für Analyse und Umsetzung ist unsere Performance-Optimierung der kommerzielle Einstieg; dieser Artikel erklärt die Diagnose, nicht ein garantiertes Ergebnis.

TTFB, PHP und Server: der frühe Antwortpfad

Time to First Byte misst die Zeit bis zum ersten Byte der Dokumentantwort und enthält Weiterleitungen, Verbindung, Netz und Serverantwort. Das ist ein Frühsignal, keine vollständige Ladezeit: Eine schnelle HTML-Antwort kann später von einer spät entdeckten LCP-Ressource ausgebremst werden. Trenne deshalb zuerst Edge und Ursprung.

WordPress empfiehlt einen modernen PHP- und Datenbankstand, aber ein Upgrade ist kein blinder Schalter. Inventarisiere Core, Theme, Plugins und Erweiterungen, prüfe die Kompatibilität produktionsnah und vergleiche denselben Ablauf. Kontrolliere, ob ein Opcode-Cache greift und ob CPU, Speicher, PHP-Worker oder Datenbankverbindungen im langsamen Request zum Engpass werden. Mehr Ressourcen federn einen Engpass ab, beseitigen ihn aber nicht: Wenn ein Plugin bei jedem Aufruf dieselbe unnötige Abfragekette ausführt, verschiebt ein größerer Server nur den Punkt, an dem es auffällt.

Datenbank und automatisch geladene Optionen

Bei der Datenbank zählen Abfrageform, Häufigkeit, Ergebnisgröße und Aufrufer. Suche nach wiederholten oder langen Abfragen, unnötig geladenen Beziehungen und Erweiterungen, die im kritischen Pfad nachladen. Ein Query-Log sollte nicht nur SQL zeigen, sondern den Plugin-, Theme- oder Core-Kontext, der die Abfrage ausgelöst hat.

Automatisch geladene Optionen lädt WordPress bei jedem Seitenaufruf mit; zu viele oder große Werte erhöhen Arbeit und Speicher, und Site Health hat dafür einen eigenen Test. Lösche Einträge trotzdem nie allein wegen Name oder Größe, sondern kläre vorher Eigentümer, aktive Verwendung und Wiederherstellungsweg. Auch eine Datenbankbereinigung braucht Vorher-Nachher-Evidenz: Alte Revisionen zu entfernen spart Speicher, muss aber nicht die langsame Abfrage treffen.

Theme, Page-Builder und Plugins nach Route statt nach Anzahl bewerten

Die Zahl aktiver Plugins ist kein Performance-Messwert. Entscheidend ist, welche Komponenten auf der betroffenen Route welche Hooks, Abfragen, Dateien, DOM-Strukturen und Drittanbieter auslösen. Ein großes Plugin kann auf einer Seite fast nichts tun, während ein kleiner Zusatz in jedem Request eine externe API abfragt.

Erstelle pro Route eine Verursacherübersicht und ordne Serverzeit, Abfragen, Skripte und externe Hosts den verantwortlichen Komponenten zu. Teste Deaktivieren oder Ersetzen nur in einer sicheren Kopie und mit fachlicher Prüfliste, die auch Editor, Formulare, geplante Aufgaben und Tracking abdeckt: Ein schnellerer Screenshot bei kaputter Funktion ist eine Regression. Entsteht das Problem aus Architektur und redaktionellen Anforderungen, bewerte einen anderen Aufbau getrennt von der akuten Diagnose; unser Überblick zu Headless CMS hilft dabei.

Seiten-Cache, Objekt-Cache und CDN haben unterschiedliche Grenzen

Ein Seiten-Cache speichert eine fertige HTML-Antwort und umgeht bei einem gültigen Treffer einen großen Teil der PHP- und Datenbankarbeit. Das passt zu anonymen, selten veränderten Seiten. Hängt die Antwort von Nutzer, Sprache, Rolle oder Consent ab, müssen Cache-Key, Varianten und Ausschlüsse diese Grenzen abbilden.

Ein persistenter Objekt-Cache spart Datenbankzugriffe, ersetzt aber weder Datenmodell noch korrekte Abfragen; seine Einträge müssen regenerierbar sein. Ein CDN verkürzt den Weg für statische Dateien und kann cachefähige Antworten bedienen, beschleunigt aber keinen langsamen, ungecachten Origin-Request. Prüfe deshalb getrennt: Trifft der Request den Edge-Cache, welche Varianten existieren, wann wird invalidiert, und was passiert bei einem Bypass?

Kein Cache-Stapel ohne Eigentümer: Browser-Cache, Plugin-Cache, Webserver, Objekt-Cache und CDN können zusammenarbeiten. Ohne dokumentierte Reihenfolge und Invalidierung zeigt der Test aber leicht eine alte Seite, während Redaktion oder Nutzer längst andere Daten erwarten. Zwei gestapelte Cache-Plugins machen genau diese Zuständigkeit unauflösbar, ohne den Ursprung schneller zu machen.

Bilder und Fonts: früh auffindbar statt pauschal optimiert

Ist ein Bild das LCP-Element, zerlege die Zeit in TTFB, Entdeckungsverzögerung, Übertragung und Renderverzögerung. Ein kleineres Bild hilft wenig, wenn der Browser seine URL erst nach JavaScript oder spätem CSS entdeckt. Ein wahrscheinliches LCP-Bild gehört deshalb nicht ins Lazy Loading, sondern ins ursprüngliche HTML. WordPress erzeugt für geeignete Uploads mehrere Bildgrößen und liefert sie über srcset und sizes aus, aber das Theme muss passende Größen melden. Breite und Höhe oder ein korrektes Seitenverhältnis reservieren Platz und verhindern Layout-Verschiebungen. „Alle Bilder lazy“ ist dagegen kein Konzept.

Webfonts konkurrieren im kritischen Ladepfad. Reduziere auf tatsächlich verwendete Schnitte und lade früh nur, was der erste sichtbare Inhalt braucht. font-display ist ein sichtbarer Trade-off: Eine Fallback-Schrift zeigt Text früher, verschiebt aber Layout, wenn ihre Metriken stark abweichen. Passe Fallback-Metriken an und teste echte Überschriften, Navigation und Formulare in beiden Sprachen. Selbsthosting ist nicht automatisch schneller, und jedes Preload verbraucht ein knappes Prioritätsbudget.

Drittanbieter verursachen zusätzliche Verbindungen, Requests, JavaScript-Arbeit und iFrames und können außerhalb deiner Kontrolle ausfallen: Analytics, Tag Manager, A/B-Tests, Chats, Videos, Karten, Social Widgets. Gib im Netzwerk-Wasserfall jeder Ressource einen fachlichen Zweck und einen Eigentümer und prüfe, ob sie auf jeder Route nötig ist. Entfernen schlägt Optimieren, wenn eine Integration keinen belastbaren Nutzen mehr hat. Beim CSS gilt das Gegenteil: Wer ungenutzte Regeln aggressiv entfernt, verliert schnell dynamische Zustände, Editor-Inhalte und seltene Komponenten.

Für notwendige Skripte kommen bedingtes Laden, späte Initialisierung sowie async oder defer infrage. Eine pauschale Verzögerung bis zur ersten Interaktion entlastet zwar den Labortest, beschädigt aber leicht Navigation, Formularvalidierung, Consent oder Analytics-Semantik. INP bewertet ohnehin Interaktionen während des Besuchs, also teste Menü, Suche, Formulare und Filter. Consent bleibt dabei eine rechtliche Grenze: Optionale Skripte dürfen nicht vor der Zustimmung laden.

Vom Symptom zum ersten Hebel

Symptom, Evidenz, erster Hebel und notwendiger Regressionstest
SymptomStützende EvidenzErster HebelWas die Ursache nur verstecken würdeNotwendiger Regressionstest
Hohe TTFB nur ohne Cache-TrefferDas Origin-Profil zeigt Wartezeiten in PHP, Datenbank oder externen DienstenGrößten belegten Origin-Anteil reduzierenNur die Demo-URL am CDN vorwärmenKalter und warmer Abruf mehrerer repräsentativer Routen
Viele wiederholte AbfragenProfiler ordnet Query-Muster einem Plugin, Theme oder Template zuAbfrageform, Datenmenge oder Aufrufhäufigkeit korrigierenDatenbankbereinigung ohne Bezug zum RequestAbfragezahl, Antwort, Suche, Redaktion und Hintergrundläufe
LCP-Ressource startet spätWasserfall zeigt späte Entdeckung oder falsche PrioritätRessource im HTML auffindbar machen und korrekt priorisierenNur Bildqualität stark reduzierenLCP-Element, Darstellungsqualität und mobile Varianten
Hohe BrowserarbeitTrace zeigt lange Tasks aus Theme, Builder oder DrittanbieterNicht benötigte Arbeit entfernen oder gezielt aufteilenAlles bis zur ersten Interaktion verschiebenINP-relevante Bedienwege, Consent, Formulare und Analytics
Layout springt nach dem StartLayout-Shift-Spuren zeigen Bild, Font, Banner oder EmbedPlatz reservieren und den konkreten Auslöser stabilisierenAnimation oder Overlay über die Bewegung legenMobile und Desktop, kalter Cache, Consent-Zustände und lange Sitzung
Nur dynamische Pfade sind langsamAnonyme Seiten erzielen Cache-Treffer, Suche, Login oder Formular dagegen nichtDen dynamischen Request profilieren und nicht kritische Arbeit entkoppelnGlobale CDN-Erweiterung ohne Wirkung auf den PfadAnonyme und berechtigte Rollen, Fehlerfälle und Cache-Ausschlüsse

Sicher ausrollen: Budget, Monitoring, Eigentümer und Rollback

Eine Performance-Änderung ist ein Release. Lege vorab fest, welche Route und welche Metrik besser werden soll, welche Funktionen unverändert bleiben müssen, wer den Ausrollvorgang verantwortet und welches Signal den Rollback auslöst. Ändere dann möglichst nur einen zusammenhängenden Ursachenblock pro Schritt, sonst ist die Wirkung am Ende niemandem zuzuordnen.

Ein Performance-Budget braucht keine universelle Zahl, sondern projektspezifische Grenzwerte pro wichtigem Seitentyp. Core Web Vitals beobachtest du dagegen als Felddaten über Zeit; beim Release lassen sie sich nicht bestätigen. Prüfe nach dem Ausrollen zusätzlich Formulare, Suche, Consent, Analytics und Barrierefreiheit.

Wird daraus eine tiefgreifende Änderung, brauchen URL-, Inhalts- und Tracking-Grenzen eigene Planung; unsere Website-Relaunch-Checkliste behandelt diese Risiken. Für Entwicklung, Wartung und klare WordPress-Verantwortung ist unsere WordPress-Agentur-Seite der passende nächste Kontext.

Häufige Fragen zur WordPress-Performance

Macht ein Cache-Plugin WordPress automatisch schnell?

Nein. Ein Seiten-Cache kann cachefähige HTML-Antworten beschleunigen, und ein persistenter Objekt-Cache kann wiederholte Datenzugriffe vermeiden. Beides repariert aber weder langsame dynamische Requests noch unnötige JavaScript-Arbeit. Vor der Einführung müssen die langsame Route, die Cache-Grenzen und die Invalidierung klar sein.

Warum ist der PageSpeed-Score gut, obwohl sich die Website langsam anfühlt?

Ein Lighthouse-Labortest bildet einen kontrollierten Seitenaufruf ab. Reale Nutzer haben andere Geräte, Netze, Cache-Zustände und Interaktionen. Prüfe deshalb die Labordiagnose zusammen mit CrUX- oder eigenen Felddaten und mit den tatsächlichen Schritten im Nutzerweg.

Sollte ich für mehr WordPress-Performance viele Plugins löschen?

Nicht nach Anzahl. Ein einzelnes Plugin kann auf einer wichtigen Route viel Arbeit erzeugen, während mehrere kleine Plugins dort kaum beitragen. Profiliere den betroffenen Ablauf, prüfe Hooks, Abfragen, externe Requests und Browser-Payload und entferne nur Funktionen, deren fachliche Folgen geklärt sind.

Dein WordPress ist langsam oder nur nach dem Cache-Warm-up schnell? Wir trennen Symptome von Ursachen.Wir prüfen den relevanten Nutzerweg, ordnen die Evidenz den richtigen Ebenen zu und planen eine kontrollierte Umsetzung mit Regressionstest und Rollback.
WordPress-Performance prüfen

Du kannst den Projektkontext auch direkt über unsere Kontaktseite senden.