Wie viele Plugins sind zu viel?

Wie viele Plugins sind zu viel?

Gibt es eine Obergrenze, wie viele Plugins eine WordPress-Installation verträgt? Oder spielt die Anzahl aktiver Plugins keine Rolle? Wie beeinflussen Plugins die Geschwindigkeit einer Website? Und wie beeinflussen Sie die Sicherheit? Leider gibt es keine allgemein gültige Antwort auf diese Fragen.

Das soll nicht heißen, dass sich die Fragen nicht beantworten lassen. Es gibt nur nicht die eine richtige Antwort. Genauso wenig wie es das eine Auto gibt, das für jeden Zweck ideal ist. Aber nur weil es nicht das eine für jeden perfekte Auto gibt, heißt das nicht, dass sich nicht das perfekte Auto für den persönlichen Zweck finden lässt. Dabei gibt es einiges zu berücksichtigen. Genauso ist es auch bei der Frage, wie viele Plugins zu viele sind.

Es gilt, die richtigen Fragen zu stellen und diese für sich selbst zu beantworten. Nur so kann man herausfinden, was für das eigene Blog sinnvoll ist und was nicht. Also fangen wir am besten einfach am Anfang an.

Braucht WordPress Plugins?

Ein #plugin erweitert die Funktionalität, die WordPress von Haus aus mitbringt. WordPress an sich ist ein relativ schlankes System. Dieser Faktor wird von manchem Kritiker als Schwachpunkt angesehen. Es ist eine Frage, die teils annähernd fanatisch diskutiert wird. Was ist besser? Ein schlankes Basis-System oder ein überkomplettes System, das bereits in der Basisversion so gut wie „alles“ kann?

WordPress funktioniert im Prinzip auch ohne ein einziges aktives Plugin. Und das nicht nur gerade mal eben so, sondern richtig gut. WordPress bring alles mit, was man benötigt, um mit dem Bloggen zu beginnen. Mehr aber auch nicht. Wenn Du zusätzliche Funktionen benötigst oder realisieren möchtest, dann benötigst Du Plugins. Ohne Plugins ist der Umfang von WordPress begrenzt. Und damit auch die Möglichkeiten. Die Auswahl der richtigen Plugins kann also eine große Rolle für den Erfolg der eigenen Website spielen.

Wie funktionieren Plugins?

Im Prinzip spielt die Anzahl der aktiven Plugins für WordPress selbst so gut wie keine Rolle. WordPress ist es egal, wie viele Plugins aktiv sind. Es gibt keine erlaubte Maximal-Anzahl. Aber die Anzahl der aktiven Plugins beeinflussen die Geschwindigkeit der Website auf verschiedene Arten.

Wer mit der Technik hinter einer serverbasierten Web-Anwendung nicht vertraut ist, denkt oft, dass es sich bei WordPress um ein Programm handelt, das ständig am Webserver läuft. Dem ist aber nicht so. Das Programm, das ständig läuft, ist der Webserver selbst. WordPress läuft nicht permanent sondern wird jedesmal bei Bedarf gestartet. Und das bedeutet bei jedem einzelnen Aufruf einer Seite.

Jedesmal müssen dabei auch alle aktiven Plugins gestartet werden. Die bloße Anzahl der zu ladenden Dateien ist dabei unerheblich. Das tatsächliche Laden der Dateien von der Festplatte fällt im der Regel so gut wie überhaupt nicht in Gewicht und kann getrost vernachlässigt werden. Aber das ist dann auch schon der einzige vernachlässigbare Faktor. Damit kommen wir zu den potenziellen Problemen.

Problem 1 – die Größe der Datenbank

WordPress speichert alle Daten in einer Datenbank ab. Da sind einmal die Beiträge und die Seiten. Von diesen werden sogar mehrere Revisionen gespeichert. Aber auch zu jedem hochgeladenen Bild werden Informationen in der Datenbank abgelegt. Und natürlich Kommentare und vieles mehr. Im Laufe der Zeit wächst der Umfang der Datenbank immer weiter an.

Auch viele Plugins speichern Informationen in der Datenbank und füllen diese damit noch weiter an. Die trifft nebenbei bemerkt auch auf deaktivierte Plugins zu, deren Daten natürlich noch in der Datenbank vorhanden sind. Viele Plugins löschen diese Daten auch beim Deinstallieren nicht, damit die Daten erhalten bleiben, falls das Plugin doch wieder einmal benötigt wird.

Plugins sind somit nicht unbedingt die Hauptverursacher der ständig wachsenden Datenmenge in der Datenbank. Aber sie haben auch einen Anteil daran. Speicherplatz sollte dabei in der heutigen Zeit kein Thema mehr sein. Das Hauptproblem besteht darin, dass eine aufgeblähte Datenbank ineffizient arbeitet. Zugriffe auf die Datenbank können somit länger dauern. Auch wenn es sich dabei um Millisekunden handelt, sollte der Faktor nicht außer Acht gelassen werden, da sich diese Ineffizienz bei der Menge der nötigen Zugriffe summiert und so die Auslieferung jeder einzelnen Seite messbar langsamer werden kann.

Dieses Problem ist leicht lösbar. Nach einer Optimierung der WordPress-Datenbank läuft diese wieder effizient. Es gibt mehrere Plugins, um so eine Optimierung ganz einfach direkt aus dem WordPress Admin durchzuführen. Bei sehr umfangreichen Websites kann es durchaus Sinn machen, dies regelmäßig durchzuführen – am besten automatisch. In den meisten Fällen wird das aber meiner Meinung nach nicht nötig sein. Es reicht aus, die Datenbank von Zeit zu Zeit einmal zu optimieren und das dazu verwendete Plugin die restliche Zeit zu deaktivieren. Macht gleich ein Plugin weniger, das jedesmal mitstarten muss.

Problem 2 – die Anzahl der Datenbankzugriffe

Bei jedem Start von WordPress – und damit bei jedem Aufruf einer Seite – müssen Daten aus der Datenbank gelesen werden. Auch wenn so ein Zugriff nur winzige Sekundenbruchteile benötigt summiert sich die Zeit, bis alle nötigen Daten gelesen wurden. Dadurch verzögert sich die Auslieferung der Seite an den Browser. Jeder Zugriff auf die Datenbank, der eingespart werden kann, bringt eine kleine Verbesserung der Geschwindigkeit.

Gerade sehr komplexe Plugins erhöhen die Anzahl der Datenbankzugriffe teils erheblich. Wie viele Daten ein Plugin in welchem Fall aus der Datenbank benötigt und wie viele zusätzliche Datenbankzugriffe das bedeutet, ist von außen nicht erkennbar. Mit den entsprechenden Werkzeugen lässt sich das analysieren, aber darauf an dieser Stelle näher einzugehen, würde zu weit führen.

Durch den Einsatz eines Caching-Plugins lässt sich die Anzahl der Datenbankzugriffe reduzieren. Ist die angeforderte Seite im Zwischenspeicher vorhanden, dann wird diese ausgeliefert, ohne dass alle Daten erneut abgefragt werden müssten. Aber nicht jeder Aufruf kann aus dem Zwischenspeicher bedient werden. Wird eine Seite neu geladen, ist wieder die volle Anzahl an Datenbankzugriffen nötig. Daher sollte eine Caching-Plugin nur dazu dienen, die Geschwindigkeit einer Website weiter zu erhöhen und nicht dazu, ein schlechtes Fundament zu kaschieren.

Problem 3 – zusätzliche HTTP-Anfragen und mehr Datentransfer

Zwar nicht alle Plugins, aber doch sehr viele, verändern die Seite, die an den Browser geliefert wird. Der zusätzliche HTML-Code erhöht die Datenmenge, die vom Server an den Browser geschickt wird. In den meisten Fällen ist diese zusätzliche Datenmenge gering, sodass der zusätzlich generierte HTML-Code kaum ins Gewicht fällt. Außerdem ist dieser Code in der Regel ja erwünscht und der Grund dafür, warum das Plugin eingesetzt wird.

Mehr Gewicht als der HTML-Code haben in Bezug auf die #performance einer Website zusätzlich nötige HTTP-Anfragen. Eine einzelne Webseite besteht in der Regel nicht nur aus einer einzigen Datei. Zusätzlich zum eigentlichen HTML-Dokument müssen vom Browser weitere Dateien geladen werden. Dabei handelt es sich beispielsweise um CSS- und JavaScript-Dateien sowie um Bilder.

Jede einzelne Datei muss vom Browser beim Server angefragt werden. Die Anzahl dieser HTTP-Anfragen hat somit einen direkten Einfluss auf die Ladegeschwindigkeit einer Seite. Daher sollte darauf geachtet werden, wie viele zusätzliche Anfragen durch ein Plugin verursacht werden. Die Anzahl der Anfragen scheint unvermeidbar zu sein, aber möglicherweise gibt es ein anderes Plugin, das den gleichen Zweck erfüllt und weniger zusätzliche HTTP-Anfragen erzeugt.

Dazu kommt noch ein weiterer Faktor. In den meisten Fällen, ist es so, dass an der Stelle, an der die benötigten Ressourcen wie CSS- und JavaScript-Dateien im Prozess eingebunden werden, WordPress noch gar nicht „weiß“ ob diese überhaupt benötigt werden. Aus dem Grund liefern die meisten Plugins die zusätzlichen Dateien bei jeder Seite mit aus und nicht nur auf den Seiten, auf denen sie benötigt werden.

Als Beispiel möchte ich ein Kontaktformular-Plugin nennen. Das Kontaktformular selbst wird nur auf einer einzigen Seite verwendet. Dennoch werden die vom Plugin für die Darstellung benötigten CSS- und JavaScript-Dateien auf jeder Seite eingebunden. Im überwiegenden Großteil aller Aufrufe sind die zusätzlichen HTTP-Anfragen sowie die zusätzlich übertragene Datenmenge völlig sinnlos. Da sich das nur schwierig vermeiden lässt sollte darauf geachtet werden, dass durch die eingesetzten Plugins nicht generell unnötig viele zusätzliche HTTP-Anfragen generiert werden.

Es gibt Plugins, die die Anzahl der HTTP-Anfragen reduzieren, indem sie mehrere Dateien zusammenfassen und in einer Datei ausliefern („Join“) oder die Datenmenge reduzieren, indem unnötige Daten aus den Dateien entfernt werden („Minify“). Meist wird beides kombiniert. Darauf näher einzugehen würde den Rahmen sprengen. Aber auch hier gilt, dass solche Plugins dazu dienen sollen, die Ladezeit zu verbessern und nicht dazu, grundsätzliche Fehler zu verschleiern.

Mit Einsatz der Version 2.0 des HTTP-Protokolls – genannt HTTP/2 – wird der Geschwindigkeitsnachteil von mehreren HTTP-Anfragen reduziert. Wer seine Website per HTTPS verschlüsselt, der nutzt bereits HTTP/2. Trotzdem wiederhole ich auch an dieser Stelle, dass darauf geachtet werden sollte, die Website möglichst schlank zu halten. Noch schneller als eine schnelle Datenübertragung ist schließlich, dass weniger Daten übertragen werden.

Problem 4 – ineffiziente Plugins

Es liegt auf der Hand, dass es bei der Qualität der Plugins Unterschiede gibt. Achtet der Entwickler auf die Effizienz des Plugins, dann werden beispielsweise Daten nicht schon präventiv sofort beim Start des Plugins geladen sondern erst dann, wenn sie wirklich benötigt werden. Bei jedem Start von WordPress werden alle aktiven Plugins mit gestartet. Ob sie dann auch etwas zu tun bekommen, wissen sie an der Stelle noch gar nicht. Daten immer erst dann zu laden, wenn sie tatsächlich benötigt werden, spart also unter Umständen unnötige Datenbankzugriffe.

Dies ist nur ein Beispiel dafür, wie Entwickler Plugins möglichst effizient gestalten können. Auf die Effizienz eines Plugins hat man als Anwender keinerlei Einfluss. Daher gilt es einfach, diesen Faktor zur bedenken und eventuell auf ein anderes Plugin auszuweichen, wenn ein problematisches Verhalten festgestellt wird.

Problem 5 – Inkompatibilität

Bei der schieren Menge an verfügbaren Plugins für WordPress ist offensichtlich, dass es schlicht und einfach unmöglich ist, dass die Kompatibilität aller Plugins untereinander sichergestellt werden kann. Je mehr Plugins aktiv sind, desto höher ist die Chance von auftretenden Kompatibilitätsproblemen. Leider sind inkompatible Plugins nicht immer sofort offensichtlich erkennbar. Probleme können auch an völlig unerwarteter Stelle auftreten. Hier hilft nur intensives Testen der eigenen Website, ob nach Einsatz eines neuen Plugins auch alles andere wie bisher funktioniert.

Problem 6 – Sicherheitsrisiken

Laufend werden Sicherheitslücken in Software entdeckt und geschlossen. Für einen Entwickler ist es praktisch unmöglich, absolute #sicherheit zu garantieren. Sicherheitslücken sind nicht immer offensichtlich und können auch bei noch so gewissenhaften Tests übersehen werden. Mit der Anzahl an Plugins steigt auch die Zahl potenzieller Risiken, die ein System angreifbar machen. Siehe dazu auch den Artikel Warum man ungenutzte Plugins und Themes löschen sollte.

Fazit

Es gibt keine allgemein gültige Aussage, wie viele Plugins zu viele sind. Generell gilt, nur so wenige Plugins wie möglich einzusetzen und nicht mehr benötigte Plugins zu löschen – nicht nur zu deaktivieren. Der Einsatz eines neuen Plugins sollte gut überlegt und getestet werden. Optimal dafür wäre eine eigenes Testsystem. Getestet werden muss nicht nur die neue Funktionalität sondern auch, ob alles andere noch wie bisher funktioniert.

Die zusätzlichen HTTP-Anfragen sowie die zusätzlich zu übertragenden Datenmenge, die durch ein Plugin verursacht werden, lässt sich leicht testen. Persönlich verwende ich dafür meist Pingdom. Hier sieht man auf einen Blick die Anzahl der HTTP-Anfragen („Requests“) sowie die gesamt übertragene Datenmenge („Page size“). Ein einfacher Vorher- / Nachher-Vergleich zeigt auf, wie das jeweilige Plugin das Verhalten der Website verändert. Der Test sollte mit aktiviertem Plugin auch auf einer Seite erfolgen, auf die das Plugin keine Auswirkung hat um den generellen Overhead sichtbar zu machen (Beispiel Kontaktformular-Plugin auf einer Seite, auf der kein Kontaktformular eingebunden ist).

Mit diesem und ähnlichen Tools lässt sich auch die Ladezeit messen. Diese ist aber von vielen Faktoren abhängig und nicht so leicht zu beurteilen wie die Veränderung bei den Anfragen und der Datenmenge. Dafür gibt es spezielle Tools um die Auswirkungen direkt am eigenen Server zu messen. Einen Anhaltspunkt kann aber natürlich auch Pingdom liefern.

Plugins, die nicht permanent benötigt werden, sollten deaktiviert werden, dann müssen diese nicht jedes Mal mit WordPress gestartet werden. Beispiel Datenbank-Optimierung. Das ist so ein Plugin, das ich persönlich zum Beispiel nur aktiviere, um von Zeit zu Zeit eine Optimierung durchzuführen. Danach deaktiviere ich das Plugin wieder.

Jedes Plugin bringt ein potenzielles Risiko in Bezug auf Geschwindigkeit, Stabilität und Sicherheit mit sich. Es sollten nur Plugins eingesetzt werden, die einen echten Mehrwert bieten. Im Fokus sollten die Besucher Deiner Website stehen. Die möchten in erster Linie eine schnelle und stabil laufende Seite.

Plugins sind kein notwendiges Übel sondern erweitern die Funktionalität von WordPress und können damit von großem Nutzen sein. WordPress kann bei entsprechend sensibler Auswahl auch mit einer großen Anzahl aktiver Plugins noch schnell, stabil und sicher laufen. Es geht mehr um Qualität als um Quantität. Dazu gehört auch, Updates regelmäßig durchzuführen, damit von den Plugins immer die aktuellste Version im Einsatz ist. Es nützt wenig, wenn der Entwickler einen Fehler behebt und man seit Jahren schon keine Updates mehr eingespielt hat.

Mit Blick auf die Qualität wird man erst gar nicht in die Situation kommen, so viele Plugins in Einsatz zu haben, dass man sich fragen muss, wie viele Plugins eigentlich zu viele sind. Jedes nicht nötige Plugin ist eines zu viel.

Du kannst mir gerne eine Nachricht zukommen lassen. Bitte habe etwas Geduld, die Beantwortung kann einige Zeit dauern.