Blog / Aktuelles

WooCommerce optimieren Teil #2: Wähle Deine Plugins sorgfältig aus

Plugins sind neben dem Theme und den Bildern entscheidend für die Ladezeit und Performance einer Wordpress Website verantwortlich. Und bei einem WooCommerce-Shop ist ihr Einfluss meist noch größer. Deshalb ist sollten Du Deine Plugins sorgfältig auswählen.

Dies ist der zweite Teil der Artikelserie „WooCommerce optimieren“. In den nächsten Wochen erscheint jede Woche ein weiterer Teil.

Wie Plugins die Ladezeit Deines WooCommerce Shops beeinflussen

Ich sehe es immer wieder, dass Shopbetreiber eine Fülle von Plugins einsetzen. 30 Plugins sind keine Seltenheit. Und auch 50 Plugins und mehr sehe ich immer wieder.

Die wenigsten sind sich aber bewusst, dass jedes einzelne Plugin den Shop langsamer macht.

Verstehe mich nicht falsch: Plugins sind eine tolle Sache. Man kann mal eben fix eine neue Funktionalität einführen, ohne dass man selber herausfinden muss, wie etwas funktioniert. Einfach auf installieren klicken und es läuft (hoffentlich). Kleiner Aufwand – großer Nutzen.

Aber es gibt einen Haken.

Jedes Plugin kostet Rechenzeit und DB-Abfragen

Jedes einzelne Plugin, das Du in Wordpress installierst, macht Deinen Shop langsamer. Das eine mehr, das andere weniger.

Es gibt drei Stellen, an denen ein Plugin Deine Seite langsamer macht:

  1. Überprüfung des Plugin-Status
  2. Funktionen des Plugins
  3. Laden von Optionen des Plugins

 

Überprüfung des Plugin-Status

Wordpress muss bei jeder Seitenauslieferung erst einmal schauen, welche Plugins installiert sind und welche Bereiche sie betreffen. Dann müssen die Aktionen der Plugins an den entsprechenden Stellen eingebunden werden. Hier fallen also schon einige Datenbank-Abfragen an und natürlich geht auch etwas Rechenzeit flöten.

Funktionen des Plugins

Die Funktionen und Aktionen, die das Plugin ausführt, verbrauchen ihrerseits Rechenzeit und stellen meist mehrere Anfragen an die Datenbank.

Laden von Optionen des Plugins

In der Datenbank werden in der Tabelle wp_options die diversen Einstellungen der Plugins gespeichert. Viele Plugins sind schlecht programmiert, so dass alle Optionen auf sämtlichen Seiten geladen werden – auch wenn sie dort gar nicht benötigt werden. Und auch, wenn das Plugin deaktiviert ist. (Oft sogar noch nachdem das Plugin gelöscht wurde.)

Du denkst jetzt vielleicht: „Die paar Einstellungen, die geladen werden, können doch nicht so schlimm sein. Aber es teilweise verblüffend, wie viele Daten in wp_options tatsächlich gespeichert werden.

 

Die Masse macht den Unterschied

Ein einzelnes Plugin fällt in der Regel nicht ins Gewicht. Es gibt durchaus Plugins, die regelrechte Ressourcenfresser und damit Bremsklötze sind. Aber die meisten Plugins sind nur für ein paar Millisekunden Rechenzeit und eine Hand voll Datenbankabfragen verantwortlich.

Wenn Du viele (schlechte) Plugins einsetzt, dann können sich die Rechenzeiten und Datenbank-Abfragen aber summieren. Bei 20 oder 50 Plugins kommt schnell eine kritische Masse zusammen. Und plötzlich ist Dein Onlineshop so langsam, dass es keinen Spaß mehr macht, in ihm einzukaufen.

 

Auch deaktivierte Plugins kosten Zeit

Ich habe es ausgetestet: Selbst inaktive Plugins machen Deinen Shop langsamer. Zwar geht es dabei meistens nur um wenige Millisekunden. Aber letztlich zählt ja jede Millisekunde. Und bei 20 deaktivierten Plugins kommen 20 bis 50 Millisekunden zusammen.

Deshalb rate ich Dir dringend: Entferne Plugins vollständig, wenn Du sie nicht mehr brauchst. Überprüfe außerdem, ob in der Tabelle wp_options noch Daten von gelöschten Plugins vorhanden sind und lösche diese gegebenen Falls. Mach aber vorher ein Backup.

 

Datenbank-Abfragen sind ein Performance-Killer

Wenn Du ein wenig Rechenzeit verlierst, hat das Einfluss auf die Ladezeit Deiner Website. Deine Besucher müssen länger warten, bis der Hauptteil der Seite geladen wurde.

Besonders kritisch sind unnötige Datenbank-Abfragen, denn Deine Datenbank kann nur eine bestimmte Anzahl an Anfragen pro Sekunde bearbeiten.

Wenn nahezu gleichzeitig mehrere Seiten an verschiedene Nutzer ausgeliefert werden, dann kann es passieren, dass die Datenbank-Abfragen die maximale Anzahl übersteigen. Im besten Fall müssen die Nutzer einfach nur ein paar hundertstel Sekunden länger warten. Im schlechtesten Fall wird der Server völlig überlastet. Dann steigen die Wartezeiten auf mehrere Sekunden an und irgendwann lehnt der Server weitere Verbindungen ab. Dann sieht der User die Fehlermeldung „500 Internal Server Error“. Nicht schön.

Deshalb solltest Du sehr genau prüfen, welche Plugins Du einsetzt. Frage Dich: Ist das Feature, dass das Plugin umsetzt, unbedingt notwendig, oder eher nice-to-have?

 

Eigener 5-Zeiler statt Plugin

Einige Plugins setzen Features um, die man besser mit einem Fünfzeiler in der functions.php oder der functions.js umsetzen könnte. Z.B.:

  • Cookie-Hinweis
  • Social-Share-Buttons
  • Umstellung auf SSL / HTTPS
  • Alle anderen Versandarten ausblenden, wenn kostenloser Versand verfügbar
  • All 404

Und machnmal ist es auch effizienter, feste Templates für Custom Post Types zu programmieren, anstatt einen Page Builder zu verwenden.

Klar: Dafür musst Du Dich an den Code herantrauen oder jemanden haben, der das für Dich macht.

Der Vorteil liegt aber klar auf der Hand: Bei einfachen Funktionen ist eigener Code immer schlanker und schneller als ein Plugin.

Das liegt zum einen am Overhead, den ein Plugin durch das Wordpress-Plugin-Management und unnötige Datenbank-Abfragen verursacht.  Zum anderen bringen Plugins oft eine Vielzahl von Funktionen und verschiedenen Optionen mit, von den Du aber nur wenige benötigst.

Einen kleinen Nachteil hat selbstgeschriebener Code: Du kannst nicht mal eben mit einem Klick etwas ändern, sondern musst die Änderung immer im Code vornehmen oder Deinen Programmierer darum bitten.

Meistens wird eine Funktion aber nur einmal implementiert. Dann gibt es eine gewisse Testphase, in der man weitere Anpassungen vornimmt. Und schließlich läuft die Funktion dann die nächsten Jahre ohne weitere Änderungen.

 

Reduziere die Anzahl der eingebundenen Ressourcen

Ein weiteres Problem bei Plugins ist, dass sie oft mehrere CSS-Dateien und JavaScript-Bibliotheken mitbringen. So steigt die Anzahl der Ressourcen, die bei der Auslieferung Deiner Seite an den User geladen werden müssen, rasant an.

Insbesondere, wenn Dein Wordpress noch mit http/1.1 läuft, hat das massive Auswirkungen auf die Ladezeit. Mit HTTP/2 ist der Effekt zwar nicht ganz so groß, aber immer noch vorhanden.

Achte bei der Plugin-Auswahl und beim Testen des Plugins darauf, wie viele Ressourcen dadurch zusätzlich geladen werden. Wähle Plugins aus, die mit möglichst wenig zusätzlichem Ballast auskommen.

Wie viel Ressourcen ein Plugin verschlingt, kannst Du mit dem Plugin Query Monitor herausfinden. In  vielen Blogartikel wird dazu außerdem das Plugin P3 (Plugin Performance Profiler) empfohlen. Leider funktioniert das Plugin ab PHP7 nicht mehr.

 

Meide Plugins, die mit anderen Server kommunizieren

Manche Plugins laden Ressourcen von anderen Servern nach. Das ist meistens unkritisch, solange es sich dabei um statische Ressourcen wie JS-Bibliotheken, CSS-Dateien oder Schriften handelt. Es gibt aber Plugins, die lagern Teile ihrer Funktionen auf fremde Server aus.

Das kann zum einen datenschutz-rechtlich relevant sein, zum anderen kostet so eine Abfrage viel Zeit, denn das Plugin muss ja erste eine Anfrage an den anderen Server stellen und dann auf die Antwort warten.

 

Nicht die Anzahl der Plugins entscheidet

Genau genommen gibt es keine maximale Anzahl an Plugins. Entscheidend ist die Qualität der Plugins. Wenn alle eingesetzten Plugins sauber und schlank programmiert wurden, dann kann Dein WooCommerce auch mit 80 Plugins performant laufen.

Leider zeigt mir meine Erfahrung, dass die Qualität von vielen Plugins nicht optimal ist. Zu vielen Plugin-Entwicklern ist es anscheinend wichtiger, ihr Plugin mit noch mehr Funktionen vollzustopfen. Für die Performance Optimierung nehmen sich die wenigsten Zeit.

 

Fazit

Es ist immer eine Gratwanderung: Auf der einen Seite will man schnell wichtige Funktionen umsetzen, auf der anderen Seite soll der WooCommerce Onlineshop mit rasanten Ladezeiten überzeugen.

Ich will auch gar nicht sagen, dass Plugins schlecht sind oder dass Du jetzt alles von Hand programmieren sollst.

Mir geht es darum, dass Du Dir genau überlegst, welche Plugins Du verwendest und dass Du im Blick behältst, welchen Einfluss ein Plugin auf die Ladezeit und Performance Deines WooCommerce-Shops hat.

zurück