Sorgenfrei mit automatischen Plugin-Updates für WordPress. Geht das?

8 Min.
auto plugin updates
Zuletzt aktualisiert am 16/07/2020

Die automatischen Updates bei Minor-Versionen von WordPress haben sich seit Jahren bewährt. Aber funktioniert das auch mit Plugins? Dieser Frage ist WordPress-Entwickler Florian Simeth nachgegangen und hat in seiner Analyse auch hilfreiche Tipps von dem Sicherheits- und Wartungsexperten Marc Nilius im Gepäck.

Wer WordPress schon länger im Betrieb hat, der weiß: Die automatischen Updates der Kern-Software funktionieren ganz gut und meist ohne Probleme. Wären da nicht die Plugins. Typischerweise stellen sich beim Gedanken an automatische Plugin-Updates bei den meisten Betreuern einer Website die Nackenhaare auf. Wer schon einmal die Zähne zusammengebissen hat, bevor er auf den Update-Button geklickt hat, der weiß, wovon ich spreche.

Man hat eigentlich nie Gewissheit, ob die Updates richtig durchgehen. Selbst dann nicht, wenn das Update an sich gar nicht fehlschlägt, sondern die Fehler irgendwo – nicht ersichtlich – im Untergrund lauern. Die meisten der von mir befragten Kollegen würden keine automatischen Plugin-Updates durchführen, zumindest nicht bei allen Plugins. Aber warum ist das eigentlich so?

Wann automatische Plugin-Updates Risiken mitbringen

An Version 5.3 von WordPress haben 658 Freiwillige mitgewirkt. Diese Man- (und Woman-) Power hat nicht jedes Plugin-Projekt. Der überwiegend größere Teil der kostenlosen Plugins im WordPress-Plugin-Verzeichnis wird nur von einem Menschen (oder vielleicht einem kleinen Team) weiterentwickelt. Das heißt nicht, dass diese Plugins per se schlecht sind. Aus der Vergangenheit wissen wir jedoch, dass es meist die Plugins sind, die Sicherheitslücken öffnen und die eigene WordPress-Instanz dadurch zur Angriffsfläche für Hacker wird.

Es lässt sich also vermuten, dass die Code-Qualität leidet oder zu wenig getestet wird. Warum das so ist, will ich an dieser Stelle gar nicht länger erläutern. Es erklärt aber, warum wir bei bekannten Plugins wie YoastSEO schnell mal auf den Update-Button klicken und bei anderen eher nicht.

“Grundsätzlich erkennt man Problemfälle natürlich dadurch, dass schon einmal etwas schief gelaufen ist“, schrieb mir Marc Nilius im E-Mail-Interview. Er wartet nach eigenen Angaben aktuell ca. 200 WordPress-Instanzen und kennt seine „Pappenheimer“ nur zu gut. Jetzt hat Yoast sicherlich ein großes Team hinter dem eigenen, kostenlosen YoastSEO-Plugin, welches auf über fünf Millionen WordPress-Seiten aktiv ist. Für das Aushängeschild des Unternehmens tut es alles, damit nichts schief geht. Das ist mit Aufwand verbunden. Ein Aufwand, den ein Entwickler allein vielleicht gar nicht stemmen kann oder will. Was also tun?

Möglichkeiten, um Risiken durch Plugins zu minimieren

1. Keine alten Plugins nutzen

“Democratizing Publishing“ ist ein spitze Leitsatz für WordPress. Dass jedermann einfach schnell eine WordPress-Seite aufsetzen kann, ist eine geniale Sache, führt aber automatisch dazu, dass diese Leute irgendwann die Seite erweitern wollen. Und zwar mit Plugins. Da sie in der Regel selbst nicht programmieren können, suchen sie im ewigen WorldWideWeb nach Abhilfe. Und die gibt es zuhauf. 

Aktuell befinden sich allein im Plugin-Verzeichnis knapp 55.000 Erweiterungen. Verwendet wird, was funktioniert. Ohne, dass darauf geachtet wird, ob das Plugin weiterentwickelt wird oder ob es mit der aktuellen WordPress-Version kompatibel ist. Das ist nicht immer richtig und führt letztlich oft dazu, dass man sich ein gesundes Misstrauen gegenüber Updates aneignet. Denn oft tendieren solche Plugins irgendwann dazu, nicht mehr zu funktionieren. Auch wenn dabei ein paare Jahre ins Land gehen können.

Natürlich gibt es auch positive Beispiele. Hinter WooSidebars steht zum Beispiel eine riesiges Unternehmen. Trotzdem erhielt das Plugin seit einem Jahr keine Updates mehr. Es wurde nicht mit den aktuellsten WordPress-Versionen getestet, funktioniert aber trotzdem in vielen Fällen einwandfrei. Wie lange noch? Die ersten Kommentare im Support-Bereich deuten bereits auf ein Ende hin. Der Nutzer bekommt davon aber nichts mit. Bei der Installation zeigt diesen Missstand nur eine kleiner, unauffälliger Hinweis an. Eine gefährliche Sache.

woosidebars

Natürlich ist es so, dass man am Anfang seiner Blogger-Karriere häufig kein Geld für individuelle Entwicklungen hat. Für diese Leute gibt es keine andere Alternative. Trotzdem sollte man im Hinterkopf behalten, dass – aufgrund der oben genannten Sicherheitsrisiken – so wenig (alte) Plugins wie möglich verwendet werden sollten.

2. Plugins nicht selbst anpassen

Um Entwicklungszeit zu sparen, werden offizielle sowie inoffizielle Plugins häufig einfach durch eigene Entwickler angepasst. Wenn die Versionsnummer oder der Name des Plugins nicht verändert wird, bietet WordPress ein Update an, obwohl dieses nicht durchgeführt werden darf, weil es die eigenen Änderungen sonst überschreiben würde.

“Dazu hängen angepasste Plugins oft zu sehr an Theme-Funktionalitäten“, weiß auch Marc. Ändert sich etwas im Theme, läuft auch das Plugin nicht mehr richtig. Probleme gibt es also viele. Von Grund auf alles selbst zu machen, sprich, nur eigene Entwicklungen zu nutzen, ist aber auch hier keine echte Alternative.

3. Keine schlechten Plugins nutzen

Was ist ein „schlechtes“ Plugin? Diese Frage ist nicht einfach zu beantworten. Schon gar nicht für den Laien. Freilich könnte man bei den Betreibern nachfragen, ob automatisierte Tests neuer Versionen durchgeführt werden. Aber wer macht das schon? Viele WordPress-Nutzer wissen gar nicht, dass so etwas möglich ist. Dazu kommt, dass solche Tests (wenn sie denn durchgeführt werden) häufig nichts mit Live-Situationen zu tun haben. Was aus Sicht des Entwicklers auch nachvollziehbar ist. Wer testet schon jedes Plugin mit jedem Theme? Oder jedes Plugin mit jedem anderen Plugin? Das geht nicht. Das kann man den Entwicklern auch nicht zutrauen.

Auch hier gilt also: „Schlechte“ Plugins nicht zu nutzen ist auch keine echte Alternative. Obwohl die Qualitätsbewertung für viele Nutzer bereits die erste Hürde darstellt, sollte man neue Plugins zumindest aktiv selbst testen, bevor man sie auf einer Live-Seite einbindet. Aber dazu gleich mehr. 

free dev blog lightblue

Warum Auto-Updates fehlschlagen

Fakt ist: Man kann WordPress-Plugins nicht einfach nicht-nutzen. Die oben genannten Problematiken werden immer existieren. Es muss also eine andere Lösung gefunden werden. Die Frage, die man sich stellen muss, ist also: „Wie kann man – trotz aller Probleme – trotzdem automatische Updates für WordPress-Plugins durchführen?“. Und diese Frage führt unweigerlich zur nächsten: „Was könnte denn alles schief laufen?“

Hier einige Möglichkeiten:

  1. PHP-Fatal-Error: Die Website funktioniert wegen eines schwerwiegenden Fehlers gar nicht mehr.
  2. Das Plugin arbeitet nicht (mehr) mit anderen Plugins und/oder dem Theme. Das äußerst sich in verschiedenen Dingen:
          a) Funktionen sind nicht mehr verfügbar oder
          b) das Layout ändert sich im Frontend.
  3. Nicht vorhandene Rückwärtskompatibilität erschwert ein Rollback.
  4. Die Datenbank ist so groß, dass ein Backup einzuspielen sehr lange dauern würde.

Lösungsansätze für erfolgreiche Plugin-Updates

Schlechte Plugins erkennen

Fangen wir beim Benutzer an. Wie könnte dieser ein „schlechtes“ Plugin erkennen? Da der Laie nicht prüfen kann, ob die Code-Qualität gut ist, müsste ein System geschaffen werden, welches das kann. Die Frage ist: Würde so etwas funktionieren? Und die Antwort ist ganz klar: Ja!

Das schöne dabei: Ein kleines WordPress-Team arbeitet bereits an so einem System. Es nennt sich Tide. Tides Vision ist es, automatisierte Qualitätstests für alle WordPress-Plugins und -Themes durchzuführen und diese Testergebnisse sowohl für die Autoren als auch für die Endbenutzer dieser Plugins und Themes sichtbar zu machen.

Es ist noch nicht fertig, aber in der Zukunft wird Tide dazu beitragen, dass Laien besser erkennen können, welche Art von Plugins sie sich installieren. Bis es soweit ist, muss man sich an die Plugin-Metadaten halten, die auf wordpress.org im Plugin-Verzeichnis bei jedem einzelnen Plugin angezeigt werden:

plugin meta
  1. Das Datum des letzten Updates. Ein häufiges Updaten kann auf einen aktiven Entwicklungsprozess schließen lassen. In den meisten Fällen kümmern sich die Entwickler dann auch um die Behebungen von Fehlern.
  2. Anzahl der Installationen. Eine sehr hohe Zahl deutet nicht nur auf die Beliebtheit hin, sondern kann auch ein Hinweis darauf sein, dass die Autoren mit dem Plugin Geld verdienen (z.B. über eine Pro-Version). Das erzeugt einen gewissen Druck seitens des Herstellers. Er hat sicher ein Interesse daran, dass auch das kostenlose Plugin fehlerfrei funktioniert.
  3. Getestet bis. Auch das ist nur eine Versionsnummer, die jederzeit vom Entwickler angepasst werden kann, ohne dass dies durch einen Dritten belegt werden würde. Jedoch ist eine aktuelle Versionsnummer ein Hinweis darauf, dass die Autoren das Plugin regelmäßig aktualisieren.
  4. PHP-Version. Es ist zwar schön, dass Entwickler niedrige Versionsnummern von PHP weiterhin unterstützen, sicherer wäre allerdings eine höhere Version. Die PHP-Version 5.6.x erhält seit Ende 2018 keine Sicherheitsupdates mehr. Derzeit ist 7.4 die aktuelle Version. Sie erhält bis Dezember 2022 Sicherheitsupdates.
Gute & sichere Plugins erkennen

Für weitere Hilfestellung, wie du die Qualität von WordPress-Plugins bewerten kannst, schau dir einfach unseren Artikel “13 Tipps zur richtigen Plugin-Auswahl” von Torsten Landsiedel an.

Automatisierte Browsertests

Nun wird es schon etwas schwieriger. Vor allem für den WordPress-Nutzer, der keinerlei Programmierkenntnisse hat. Wer auf wichtige Funktionen angewiesen ist, der sollte diese regelmäßig – am besten natürlich automatisiert – testen.

Puppeteer ist eine NodeJS-Bibliothek, die eine High-Level-API zur Steuerung des Chrome-Browsers über das DevTools-Protokoll bereitstellt. Puppeteer läuft standardmäßig headless, kann aber so konfiguriert werden, dass der Browser geöffnet wird und man dadurch zusehen kann, was alles passiert.

Funktionstests

Anwendungsfälle für solche Tests gibt es viele. Shopbetreiber können so prüfen, ob Produkte noch in den Warenkorb gelegt werden können. Oder ob sich Formulare noch absenden lassen.

Freilich lassen sich nicht alle Fälle abdecken. Ein kleiner automatischer Test ist in den meisten Fällen jedoch wirkungsvoller als die einfache Sichtprüfung. Immerhin kann man nicht immer alle Funktionen einer Seite nach jedem kleinen Update testen. Gerade, wenn diese sehr umfangreich ist.

Visuelle Regressionstests

Auch eine „Sichtprüfung“ könnte man mit heutigen Mitteln bereits automatisieren. Das funktioniert relativ easy zum Beispiel mit BackstopJS. Die Konfiguration ist schnell über eine JSON-Datei geschehen. Ein backstop test in der Konsole genügt, um den Vergleich zu starten. Zum Schluss öffnet das Tool ein Browserfenster und zeigt die Unterschiede an:

visuelle regressionstests

Visueller Regressionstest mit BackstopJS: Der Kaufbutton ist nach einem Plugin-Update auf meiner Seite verschwunden.

Da BackstopJS auch einen detaillierten, von Maschinen lesbaren Report mit einem Unterscheidungswert in Prozent angibt, könnte man sich z. B. per E-Mail darüber informieren lassen, wenn es zu einer deutlichen Veränderung im Layout kam.

Rollback

Nehmen wir an, alle Updates wurden durchgeführt und die automatischen Tests schlugen fehl. Was tun? Selbstverständlich lassen sich Backups auch automatisch einspielen. Aber das klappt nur in drei Fällen: 

  1. Wenn der Hoster eine Schnittstelle hat, durch diese sich ein Rollback automatisch anstoßen lässt.
  2. Oder wenn man einen SSH-Zugang hat.
  3. Und wenn das Backup klein genug ist. Sonst dauert das Zurückspielen im schlechtesten Fall mehrere Stunden.

Viele Entwickler wissen nur zu gut, dass das meiste davon oft nicht möglich ist. Entweder ist ein SSH-Zugang erst gar nicht vorhanden oder aber es gibt Timeouts wegen fehlender Ressourcen auf dem Server.

Die Vorteile von Auto-Updates

Auto-Updates bringen auch nennenswerte Vorteile mit sich. Besonders, wer mehrere WordPress-Seiten verwaltet, spart dadurch ordentlich Zeit. Ein weiteres Plus: Bei Sicherheitslücken wird dein Plugin automatisch aktualisiert, sobald ein sicheres Update verfügbar ist. Weitere Vorteile von Auto-Updates kannst du in unserem neuen E-Book nachlesen.

Andere Lösungen?

Freilich ist meine Sicht nur eine von vielen. Es gibt noch andere, meist teurere Lösungen. Zum Beispiel lässt sich, anstatt hinterher ein Backup einzuspielen, vorher eine Kopie der Seite machen (Staging-Konzept) und damit alle möglichen Updates und Tests durchführen. Falls beim Test alles positiv verläuft, lassen sich die Updates schließlich auf der Live-Seite ebenfalls einspielen. Dann natürlich (meist) komplett automatisch und ohne aufgestellte Nackenhaare.

Eine andere Idee wäre, einfach statische Seiten von WordPress erstellen zu lassen. Dann wäre die Seite etwas unabhängiger vom eigentlichen Kern. Plugins für diesen Zweck existieren schon seit acht Jahren: Zum Beispiel WPStatic. Aber auch hier gilt: Das funktioniert nicht für jeden. Schon gar nicht für hoch dynamische Seiten wie Onlineshops.

Fazit

Wie man es macht, macht man es falsch, oder? Nein! Letztlich kommt es auf die eigene Website, auf die eigenen Wünsche und natürlich auf den Geldbeutel an. Wer keine kritischen Seiten betreibt und es mal okay ist, dass eine Website Fehler wirft, der installiert sich ein Auto-Update-Plugin

Auch bei RAIDBOXES hast du mit dem Fully Managed Add-On die Möglichkeit, automatische Plugin- und Theme-Updates zu aktivieren. In den Einstellungen deiner BOX kannst du außerdem einzelne Plugins und Themes, mit denen du bereits Probleme hattest, von den Auto-Updates ausschließen

Wahrscheinlich gehen automatische Plugin-Updates für die meisten, kleinen Seiten aber ohnehin relativ problemlos vonstatten. Wer größere Seiten hat, der hat vielleicht auch den größeren Geldbeutel um entsprechende Maßnahmen zu ergreifen. Alle dazwischen müssen ihre eigene Lösung finden.

Florian Simeth ist Diplom-Ingenieur (FH) für Medientechnik und -informatik und seit 2012 als leidenschaftlicher WordPress-Entwickler tätig. Neben der Betreuung seiner WordPress-Plugins schreibt er online und offline für Medien wie das PHP- und WordPress-Magazin.

Ähnliche Artikel

Kommentare zu diesem Artikel

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.