Gelegentliche Verlangsamung um 3 Sekunden ohne Schuldigen unter den Plugins
Symptome
Aus dem Cache luden die Seiten in etwa 0,15 s. Ohne ihn (Warenkorb, Kasse, Anmeldung, erster Besuch nach dem Leeren des Caches) schwankte es zwischen 0,8 und 4 s. Gefühlt: „Die Website ist manchmal träge.“
Umgebung
WordPress mit WooCommerce, Page Builder und rund 40 aktiven Plugins, Shared Hosting mit LiteSpeed und dessen Cache.
Diagnose
- Wiederholte Messung. Mehrere Seiten haben wir außerhalb des Caches alle 75 s über einige Minuten geladen. Die Verlangsamung war nicht an die Startseite gebunden: Sie betraf genauso oft eine gewöhnliche Textseite. Etwa die Hälfte der Anfragen in einer Serie hatte +3 s. Genau 3 s zusätzlich sahen nach dem Timeout eines externen Aufrufs aus (Lizenzserver, API, Schriften).
- Ein temporäres Diagnose-Mu-Plugin (mit Zustimmung, ohne personenbezogene Daten). Es protokollierte die Zeit bis zu den Hauptphasen der Anfrage (
muplugins_loaded,plugins_loaded,init,wp_loaded,template_redirect,shutdown) und jeden externen HTTP-Aufruf über die Filterpre_http_requestundhttp_api_debug. - Das Ergebnis war überraschend: Die langsamen Anfragen (etwa 3,3 s, ungefähr eine von fünfzehn) hatten keinen externen HTTP-Aufruf. Verlangsamt waren alle Phasen gleichmäßig, am meisten der Start bis
plugins_loaded(1,3 s statt 0,12 s). Kein Plugin stach also heraus. - Das Mu-Plugin und sein Log haben wir direkt nach der Messung gelöscht und geprüft, dass die Adresse 404 liefert.
Ursache
Eine gleichmäßige Verlangsamung der gesamten Anfrage ohne externe Aufrufe entspricht einem kalten PHP-Prozess auf Shared Hosting. Die Anfrage bekommt einen neuen Prozess mit leerem Opcache, der den Code aller Plugins neu laden und kompilieren muss. Weder ein Plugin noch die Website sind daran schuld.
Was droht, wenn man nichts tut
Langsam sind gerade die Seiten, auf denen Geld verdient wird: Warenkorb, Kasse und Kundenkonto. Jede zusätzliche Sekunde Warten erhöht die Zahl abgebrochener Warenkörbe, und Google rechnet eine langsame Serverantwort in die Bewertung der Geschwindigkeit ein. Die Suche nach einem Schuldigen unter den Plugins kostet außerdem Zeit und Geld für unnötige Eingriffe.
Reparatur
Auf Seiten der Website gibt es nichts zu reparieren. Wir haben empfohlen:
- beim Support des Hostings nach der Anzahl der PHP-Prozesse zu fragen, wie lange sie leben und wie groß der Opcache ist,
- langfristig die Zahl aktiver Plugins zu senken, damit der Kaltstart kürzer dauert.
Besucher, denen die Seiten aus dem Cache geladen werden, betrifft das nicht.
Überprüfung
Die wichtigste Erkenntnis war ein Ausschluss: kein externer Aufruf und kein einzelnes Plugin. Damit haben wir uns Stunden blinden Deaktivierens von Plugins gespart.
Vorbeugung und Lehren
Bevor Sie einen Schuldigen unter den Plugins suchen, messen Sie, welche Phasen der Anfrage sich verlangsamen. Verlangsamen sich alle gleich, liegt das Problem unter WordPress (PHP, Festplatte, Hosting), nicht darin.
Verwandte Leistungen: Notfälle und Fehler Website beschleunigen