Langsames WordPress Backend beschleunigen


Ein schnelles WordPress-Frontend lässt sich noch leicht beschleunigen – Frontend-Caching, on Demand Script-Loading, unser weltweit schnellstes WordPress Theme – hier sind häufig schnell gute Ergebnisse möglich.

Im WP-Admin zeigt sich dagegen häufig das ungeschönte Ergebnis mangelnder Optimierung zahlreicher Plugins. Die Verwaltung – vor allem in Online Shops – kostet dann mehr Zeit, was auf Kosten der Produktivität geht.

In diesem Artikel zeigen wir anhand eines konkreten Beispiels, wie eine einzelne Funktion die Geschwindigkeit des Dashboards massiv verschlechtert – und wie das Problem gelöst wird.

Wir beschreiben hier einen Weg der Fehlererfassung, -Analyse und -Behebung

Sehen Sie, wie Sie unsere Methode auch auf Ihre Website anwenden können – so dass Sie auch bei einem neuen Problem selbst Ursache und Lösung finden.

1. Schritt

Überblick & Eingrenzen

Wir testen bei der Performance die Ladezeit vom WP-Admin-Dashboard, also der Übersichtsseite, die beim Aufruf von /wp-admin/index.php angezeigt wird.

Mit den Developer Tools des Browsers (z.B. in Chrome) kann eine Wasserfallansicht der geladenen Inhalte angezeigt werden.

Diese finden Sie im Tab „Network“ – wichtig ist hier vor allem die Ladezeit des HTML-Dokuments, da hier sichtbar wird, wie lange der Server bei der Berechnung der Seite benötigt. Man kann das Ergebnis auch danach filtern, indem man im Filter „index.php“ eingibt (siehe Screenshot).

Die ideale Ladezeit liegt unter einer Sekunde – das ist je nach Setup nicht immer realistisch, immerhin muss im WordPress-Dashboard vieles Live berechnet werden – ein vollständiges Caching, wie im Frontend oft möglich, ist im WP-Admin nicht abbildbar.

Trotzdem betrifft die Optimierung gerade bei Shops auch die eigenen Kunden – denn diese sind im Rahmen des Checkouts irgendwann eingelogged – und viele Caching-Plugins liefern für eingeloggte Nutzer meist eine nicht gecachte Seite aus – Ziel sollte es also sein, dass die Website sowohl eingelogged als auch als Gast schnell geladen wird.

Niedrige Ladezeit = Niedrigere Bounce Rate. Ihre WP-Admin-Performance wirkt sich auch oft auf eingeloggte Nutzer aus, aber auch auf API-Abfragen, beispielsweise bei Warenkorb-Ajax-Widgets.

Wichtig: Ab jetzt arbeiten Sie bitte auf einer Staging-Umgebung und denken Sie immer an Backups – denn in der Analyse wird die Website testweise auseinandergenommen.

Wenn die Ausgangsladezeit vor jeglicher Optimierung erfasst wurde, sollten Sie nicht einzelne Plugins deaktivieren und prüfen, ob sich etwas verbessert – deaktivieren Sie gleich alle Plugins.

Danach aktivieren Sie Plugin für Plugin und erfassen Sie die Ladezeit bei jeder Veränderung – so sehen Sie die Auswirkung von jedem Plugin.

Die Faustregel: Je mehr Plugins, desto langsamer wird WordPress.

Häufig wird nur ein Bruchteil der Funktionen von einzelnen Plugins genutzt – hier lohnt sich gegebenenfalls eine Recherche von passgenaueren Plugins oder beauftragen Sie uns, Funktionen in einem individuellen Plugin zusammenzufassen – häufig können so ein halbes Dutzend Plugins oder mehr eingespart werden.

Eine optimierte WordPress Website kommt meist mit durchschnittlich 30 Plugins aus – Installationen mit 60 oder mehr Plugins werden auch aus Wartungssicht immer weniger beherrschbar.

2. Schritt

Ursache & Optimierung

Schlecht optimierte Plugins oder Designfehler führen oft zu tickenden Zeitbomben.

In dem Beispiel des Screenshots wird deutlich, dass WooCommerce die Ladezeit enorm erhöht – von 2,7 Sekunden auf über 50 Sekunden.

Wir reden hier nicht von einem Nischenplugin – WooCommerce hat über 5 Millionen aktive Installationen.

Eine extrem lange Ladezeit deutet meist auf die Datenbank als Flaschenhals hin.

Mit dem kostenlosen Plugin Query Monitor werden aufwändige Datenbankabfragen schlagartig sichtbar – da das Plugin selbst Last erzeugt, sollte es nur während der Optimierungsarbeiten aktiv sein – danach kann es wieder deaktiviert und gelöscht werden.

Auf dem Screenshot wird deutlich, dass vor allem eine WooCommerce Datenbankabfrage für die hohe Ladezeit verantwortlich ist, genauer: die Methode get_top_seller() aus der WC_Admin_Dashboard Klasse.

Dies lässt sich recht schnell auf das WooCommerce Status Widget eingrenzen, das nur im WP-Admin-Dashboard genutzt wird.

Offensichtlich ist die dahinterliegende Datenabfrage enorm aufwändig und führt so in manchen Shops zu langen Ladezeiten bis hin zu Timeouts auf der Dashboard-Seite.

Dank des Plugins Disable WooCommerce Bloat lässt sich das Widget einfach deaktivieren – Problem gelöst.

Im Gegensatz zum einfachen ausblenden des Widgets über die Screen Options wird das Widget dann tatsächlich nicht mehr geladen und die Ladezeit des Dashboards normalisiert sich so wieder.

Fazit

Optimieren durch weglassen

Performance Probleme sind in den meisten Fällen ein Zeichen mangelnder Optimierung – vor allem Datenbankabfragen sind selten optimiert, obwohl hier das Zwischenspeichern von Ergebnissen oder die Reduktion der Abfragen/Komplexität die besten Performanceverbesserungen versprechen.

Sie können natürlich auch einfach ein stärkeres Hosting Paket buchen – viel hilft schließlich viel.

Doch auf Softwareebene zu optimieren bedeutet nicht nur mehr Nachhaltigkeit, sondern auch eine kosteneffizientere Lösung.

Das Beispiel mit dem WooCommerce Widget zeigt nur einen besonders extremen Fall – in der Regel wird mit jedem aktivierten Plugin die Seitenladezeit schrittweise erhöht.

Gehen Sie bei der Optimierung daher Schritt für Schritt vor und versuchen Sie die Anzahl der benötigten Plugins zu reduzieren. Häufig sind historisch noch Plugins installiert, die Sie inzwischen gar nicht mehr benötigen.

Es gibt auch zahlreiche Plugins, die versprechen, die Performance der Website durch das Bereinigen der Datenbank zu optimieren – beispielsweise WP Optimize. Das ist sicher sinnvoll und verbessert die Ladezeit teilweise spürbar, teilweise nur sehr gering.

Unsere Empfehlung

Überprüfen Sie den Technologie-Stack Ihrer Website und arbeiten Sie nach dem Ausschluss-Prinzip, um Flaschenhälse effektiv zu erkennen und zu optimieren – deaktivieren Sie jede Funktion, die Sie nicht benötigen.