Gibt es eine Obergrenze für die Anzahl der Plug-Ins, die eine WordPress-Installation verarbeiten kann? Oder spielt es keine Rolle, wie viele Plugins aktiv sind? Wie beeinflussen Plugins die Geschwindigkeit einer Website? Und wie wirken sie sich auf die Sicherheit aus? Allgemeingültig Antworten auf diese Fragen gibt es nicht.
Benötigt WordPress Plugins?
Mit Plugins wird die Funktionalität von WordPress erweitert – ebenso wie andere CMS, z.B. TYPO3 mit Extensions. WordPress funktioniert auch ohne ein einziges aktives Plugin – wenn man WordPress vor Allem als Blog nutzt. Für zusätzliche Funktionalitäten benötigt man jedoch Plugins.
Wie funktionieren Plugins?
Da hängt vom jeweiligen PlugIn ab. Grundsätzlich werden PlugIns auf Datei-Ebene installiert und aktiviert. Sie stellen z.B. zusätzliche Inhalte oder Funktionen bereit, oder sie verbessern Sicherheit oder Performance. Auf https://wordpress.org/plugIns/ stehen ~60.000 PlugIns zum Download zur Verfügung – für jeden denkbaren Zweck ist da etwas dabei.
Wie viele WordPress PlugIns können installiert werden?
Im Prinzip ist die Anzahl der aktiven Plugins für WordPress selbst nahezu irrelevant. WordPress kümmert sich nicht um die Anzahl der aktiven Plugins. Es ist keine Höchstzahl erlaubt. Aber die Anzahl der aktiven Plugins beeinflusst die Geschwindigkeit der Website auf unterschiedliche Weise.
Wenn Sie mit der Technologie hinter einer serverbasierten Webanwendung nicht vertraut sind, denken Sie oft an WordPress als ein Programm, das permanent auf dem Webserver läuft. Aber das ist nicht der Fall. Das Programm, das immer läuft, ist der Webserver selbst. WordPress läuft nicht kontinuierlich, sondern wird immer dann ausgeführt, wenn es benötigt wird. Und zwar jedes Mal, wenn eine Seite aufgerufen wird.
Jedes Mal müssen alle aktiven Plugins gestartet werden. Die einfache Anzahl der zu ladenden Dateien spielt keine Rolle. Das eigentliche Laden von Dateien von der Festplatte ist in der Regel nicht wichtig und kann vernachlässigt werden. Aber es ist der einzige vernachlässigbare Faktor. Das bringt uns zu den potenziellen Problemen.
Problem 1 bei zu vielen WordPress PlugIns: die Größe der Datenbank
WordPress speichert alle Daten in einer Datenbank. Sie enthält einmal die Artikel und Seiten. Von diesen werden sogar mehrere Revisionen gespeichert. Aber auch für jedes hochgeladene Bild werden auch Informationen in der Datenbank gespeichert. Ggf. auch Kommentare und vieles mehr. Im Laufe der Zeit nimmt der Umfang der Datenbank immer weiter zu.
Viele Plugins speichern auch Informationen in der Datenbank und füllen sie noch weiter auf. Dies gilt auch für deaktivierte Plugins, deren Daten natürlich weiterhin in der Datenbank vorhanden sind. Die meisten Plugins löschen diese Daten auch bei der Deinstallation nicht, so dass die Daten erhalten bleiben, falls das Plugin doch wieder benötigt wird.
Plugins sind daher nicht unbedingt die Hauptursache für die ständige Zunahme der Datenmenge in der Datenbank. Aber sie sind auch ein Teil davon. Speicherplatz sollte in der heutigen Welt kein Problem mehr sein. Das Hauptproblem ist, dass eine aufgeblähte Datenbank ineffizient arbeitet. Daher kann der Zugriff auf die Datenbank länger dauern. Selbst wenn es sich um Millisekunden handelt, sollte dieser Faktor nicht außer Acht gelassen werden, da diese Ineffizienz zu der Anzahl der erforderlichen Zugriffe hinzukommt, was die Auslieferung jeder einzelnen Seite messbar verlangsamen kann.
Dieses Problem ist leicht zu lösen. Nach einer Optimierung der WordPress-Datenbank arbeitet die WordPress-Datenbank wieder effizient. Es sind verschiedene Plugins verfügbar, um eine solche Optimierung direkt vom WordPress-Administrator aus durchzuführen. Bei sehr großen Websites kann es sinnvoll sein, dies regelmäßig – vorzugsweise automatisch – zu tun. Optimieren Sie von Zeit zu Zeit die Datenbank und deaktivieren Sie das Plugin, das zu diesem Zweck verwendet wird, für den Rest der Zeit. Auf diese Weise haben Sie jedes Mal ein Plugin weniger zu starten.
Problem 2 von zu vielen WordPress PlugIns – die Anzahl der Datenbankzugriffe
Bei jedem Start von WordPress – und damit bei jedem Aufruf einer Seite – müssen Daten aus der Datenbank gelesen werden. Selbst wenn ein solcher Zugriff nur den Bruchteil einer Sekunde dauert, summiert sich die Zeit, die benötigt wird, um alle notwendigen Daten zu lesen. Dadurch verzögert sich die Auslieferung der Seite an den Browser. Jeder gesparte Datenbankzugriff bringt daher eine leichte Geschwindigkeitsverbesserung.
Insbesondere komplexe Plugins erhöhen die Anzahl der Datenbankzugriffe teilweise erheblich. Wie viele Daten ein Plugin benötigt, in diesem Fall aus der Datenbank und wie viele zusätzliche Datenbankzugriffe dies bedeutet, ist von außen nicht sichtbar. Mit den entsprechenden Instrumenten könnte dies ggf. näher analysiert werden, aber dies würde hier zu weit führen.
Durch die Verwendung eines Caching-Plugins kann die Anzahl der Datenbankzugriffe reduziert werden. Wenn die angeforderte Seite im Cache verfügbar ist, wird sie geliefert, ohne dass alle Daten erneut abgefragt werden müssen. Es können jedoch nicht alle Anrufe aus dem Cache bedient werden. Wenn eine Seite neu geladen wird, wird wieder die Gesamtzahl der Datenbankzugriffe benötigt. Daher sollte ein Caching-Plugin nur verwendet werden, um die Geschwindigkeit einer Website weiter zu erhöhen und nicht, um eine schlechte Datenbank zwischenzuspeichern.
Drittes Problem: Zusätzliche HTTP-Anfragen und erhöhter Datentransfer
Viele Plugins modifizieren die Seite, die an den Browser geliefert wird. Der zusätzliche HTML-Code erhöht die vom Server an den Browser gesendete Datenmenge. In den meisten Fällen ist diese Menge an zusätzlichen Daten gering, so dass der zusätzlich generierte HTML-Code kaum von Bedeutung ist. Darüber hinaus ist dieser Code in der Regel erwünscht und dies ist der Grund, warum das Plugin verwendet wird.
Mehr Gewicht als der HTML-Code haben in Bezug auf die Performance einer Website zusätzliche HTTP-Anfragen notwendig. Eine Webseite besteht in der Regel nicht aus einer einzigen Datei. Zusätzlich zum HTML-Dokument selbst muss der Browser weitere Dateien laden. Dies sind zum Beispiel CSS- und JavaScript-Dateien sowie Bilder.
Jede einzelne Datei muss durch den Browser vom Server angefordert werden. Die Anzahl dieser HTTP-Anfragen hat daher einen direkten Einfluss auf die Ladegeschwindigkeit einer Seite. Sie sollten daher auf die Anzahl der durch ein Plugin verursachten zusätzlichen Anfragen achten. Die Anzahl der Anfragen scheint unvermeidlich zu sein, aber es könnte ein weiteres Plugin geben, das den gleichen Zweck erfüllt und weniger zusätzliche HTTP-Anfragen erzeugt.
Es gibt noch einen weiteren Faktor zu berücksichtigen. Wenn die erforderlichen Ressourcen wie CSS- und JavaScript-Dateien in den Prozess eingebunden werden, „weiß“ WordPress in den meisten Fällen nicht, ob sie überhaupt benötigt werden. Aus diesem Grund stellen die meisten Plugins die zusätzlichen Dateien mit jeder Seite zur Verfügung und nicht nur auf den Seiten, auf denen sie benötigt werden.
Als Beispiel sei hier ein Kontaktformular-Plugin erwähnt: Vielleicht wird ein Kontaktformular nur auf einer einzigen Seite verwendet. Dennoch sind die CSS- und JavaScript-Dateien, die das Plugin zur Anzeige benötigt, auf jeder Seite enthalten. Bei der überwiegenden Mehrheit der Aufrufe sind die zusätzlichen HTTP-Anforderungen und die zusätzliche Menge an übertragenen Daten völlig unnötig. Da dies schwer zu vermeiden ist, sollten Sie sicherstellen, dass Plugins nicht viele zusätzliche HTTP-Anfragen erzeugen.
Es gibt Plugins, die die Anzahl der HTTP-Anfragen reduzieren, indem sie mehrere Dateien zusammenfassen und in einer einzigen Datei ausliefern („Join“), oder die die Datenmenge reduzieren, indem sie unnötige Daten aus den Dateien entfernen („Minify“). Normalerweise werden beide kombiniert. Es würde den Rahmen dieses Artikels sprengen, auf Einzelheiten einzugehen. Aber auch diese Plugins sollen die Ladezeit verbessern und nicht grundlegende Fehler verbergen.
Die Verwendung des HTTP-Protokolls Version 2.0 – genannt HTTP/2 – reduziert den Geschwindigkeitsnachteil von mehreren HTTP-Anfragen. Wenn Sie Ihre Website über HTTPS verschlüsseln, verwenden Sie bereits HTTP/2. Dennoch wiederhole ich hier, dass Sie darauf achten sollten, dass Ihre Website so dünn wie möglich ist. Auch wenn der Datentransfer schneller ist, werden letztlich weniger Daten übertragen.
Problem 4 – Unwirksame Plugins
Es ist offensichtlich, dass es Unterschiede in der Qualität der Plugins gibt. Wenn der Entwickler auf die Effizienz der Plugins achtet, dann werden z.B. die Daten nicht präventiv sofort beim Start der Plugins geladen, sondern erst dann, wenn sie wirklich benötigt werden. Bei jedem Start von WordPress werden alle aktiven Plugins gestartet. Sie wissen zu diesem Zeitpunkt nicht, ob sie etwas zu tun haben. Das Laden von Daten nur dann, wenn sie wirklich benötigt werden, kann unnötigen Zugriff auf die Datenbank vermeiden.
Dies ist nur ein Beispiel dafür, wie Entwickler Plugins so effizient wie möglich machen können. Auf die Effizienz eines Plugins haben wir als Anwender keinen Einfluss. Daher reicht es aus, diesen Faktor zu berücksichtigen und eventuell auf ein anderes Plugin umzuschalten, wenn ein problematisches Verhalten festgestellt wird.
Problem 5 – Inkompatibilität zwischen PlugIns
Bei der Menge der für WordPress verfügbaren Plugins ist es offensichtlich, dass es einfach unmöglich ist, sicherzustellen, dass alle Plugins miteinander kompatibel sind. Je mehr aktive Plugins es gibt, desto größer ist das Risiko von Kompatibilitätsproblemen. Leider sind inkompatible Plugins nicht immer sofort ersichtlich. Probleme können auch an unerwarteten Stellen auftreten. In diesem Fall kann nur durch intensives Testen der Website selbst geprüft werden, ob nach der Verwendung eines neuen Plugins alles wie vorher funktioniert.
Problem 6 – Sicherheitsrisiken durch PlugIns
Lücken in der Software-Sicherheit werden ständig entdeckt und geschlossen. Es ist für einen Entwickler praktisch unmöglich, absolute Sicherheit zu garantieren. Sicherheitslücken sind nicht immer offensichtlich und können selbst bei sorgfältigster Prüfung übersehen werden. Mit der Anzahl der Plugins steigt auch die Zahl der potenziellen Risiken, die ein System anfällig für Angriffe machen. Siehe auch den Artikel Warum Sie unbenutzte Plugins und Themes entfernen sollten.
Fazit
Es gibt keine allgemein gültige Aussage über die Anzahl zulässiger WordPress-Plugins. Im Allgemeinen geht es darum, so wenige Plugins wie möglich zu verwenden und nicht mehr benötigte Plugins zu entfernen – und nicht nur zu deaktivieren. Der Einsatz eines neuen Plugins sollte gut durchdacht und getestet werden. Idealerweise sollten Sie Ihr eigenes Testsystem haben. Nicht nur das neue Feature sollte getestet werden, sondern auch, ob alles andere noch wie bisher funktioniert.
Zusätzliche HTTP-Anfragen sowie die Menge der zusätzlich zu übertragenden Daten, die durch ein Plugin verursacht werden, können leicht getestet werden. Ich persönlich benutze dafür gewöhnlich Pingdom. Hier sehen Sie auf einen Blick die Anzahl der HTTP-Anfragen und die Gesamtmenge der übertragenen Daten („Page Size“). Ein einfacher Vorher/Nachher-Vergleich zeigt, wie das jeweilige Plugin das Verhalten der Website verändert. Der Test sollte auch mit aktiviertem Plugin auf einer Seite durchgeführt werden, auf der das Plugin keine Wirkung hat, um den allgemeinen Overhead sichtbar zu machen (Beispiel: Kontaktformular-Plugin auf einer Seite, auf der kein Kontaktformular enthalten ist).
Mit diesem und anderen ähnlichen Tools können Sie auch die Ladezeit messen. Dies hängt jedoch von vielen Faktoren ab und ist nicht so leicht zu beurteilen wie die Entwicklung der Anfragen und des Datenvolumens. Deshalb gibt es spezielle Tools, um Effekte direkt auf Ihrem eigenen Server zu messen. Natürlich kann Pingdom Ihnen auch einen Hinweis geben.
Plugins, die nicht ständig benötigt werden, sollten deaktiviert werden, damit Sie sie nicht jedes Mal mit WordPress ausführen müssen. Beispiel einer Datenbankoptimierung. Dies ist eines jener Plugins, die ich persönlich nur aktiviere, um von Zeit zu Zeit eine Optimierung durchzuführen. Dann deaktiviere ich das Plugin wieder.
Jedes Plugin stellt ein potentielles Risiko in Bezug auf Geschwindigkeit, Stabilität und Sicherheit dar. Es sollten nur Plugins verwendet werden, die einen echten Mehrwert bieten. Der Schwerpunkt sollte auf den Besuchern Ihrer Website liegen. Sie wollen vor allem einen schnellen und stabilen Standort.
Plugins sind kein notwendiges Übel, sondern erweitern die Funktionalität von WordPress und können sehr nützlich sein. WordPress kann auch mit einer großen Anzahl aktiver Plugins schnell, stabil und sicher laufen. Es ist mehr eine Frage der Qualität als der Quantität. Dazu gehören auch regelmäßige Updates, so dass immer die neueste Version der Plugins verwendet wird. Es nützt wenig, wenn der Entwickler einen Fehler behebt und Sie seit Jahren keine Aktualisierung erhalten haben.
Was die Qualität betrifft, werden Sie nie in die Situation kommen, dass Sie so viele Plugins im Einsatz haben, dass Sie sich fragen müssen, wie viele Plugins eigentlich zu viele sind. Jedes unnötige Plugin ist ein Plugin zu viel.