schneckeHeute schaute ich mal wieder in eines meiner bevorzugten Jobportale, um zu sehen, was potenzielle Kunden so für Anforderungen haben. Das tue ich manchmal auch dann, wenn ich gerade keine neuen Aufträge suche, schließlich sind solche Projektangebote eine praktische Quelle für neue Ideen. So auch dieses Mal.

Der Kunde wollte gern alle seine WordPress Plugins in das Theme integriert haben, weil ihm mal jemand gesagt hatte, Plugins würden seine Website verlangsamen. Wo liegt hier der Denkfehler?

Nun, die Antwort ist ganz einfach. Natürlich macht jedes Plugin das Programm ein wenig langsamer, denn es müssen ja zusätzliche Abfragen im Programmcode durchgeführt werden. Eine Ausnahme sind vielleicht Caching-Plugins. Die können eine Site sogar schneller machen können, weil sie solche Abfragen durch Zwischenspeichern der bereits erhaltenen Ergebnisse vermeiden können.

Dennoch ist es natürlich korrekt, dass eine Site langsamer wird, wenn du zu viele Plugins benutzt. Was bringt es jedoch, den Code aus den Plugins in ein Theme zu packen? Ein Theme ist normalerweise für das Aussehen der Website zuständig. Hier werden die Schriften, Farben und alle Elemente festgelegt, die auf der Internetseite zu sehen sind.

Themes sind nur für Design gedacht.

Leider hat sich in den letzten Jahren immer mehr die Unart durchgesetzt, auch Funktionalität gleich mit in das Theme zu packen. Das führt dann häufig dazu, dass WordPress bereits hunderte von unnötigen Abfragen durchführen muss, bevor überhaupt ein Plugin zum Einsatz kommt.

Ich bin daher immer kritisch, wenn Kunden darauf bestehen, ein mit Funktionen überladenes Theme zu benutzen. Natürlich ist es praktisch, wenn der Endkunde seine Schrift oder die Farben später selbst anpassen kann. Ob das immer ästhetisch wertvoll ist, sei einmal dahingestellt. Trotzdem müssen diese Themes (und dabei handelt es sich ja auch um Programmcode) erst einmal im Hintergrund abfragen, welche Farbe und welche Schrift denn bitteschön gerade gewünscht ist.

So eine dynamische Abfrage dauert natürlich immer etwas länger, als wenn die Daten irgendwo fest hinterlegt wurden. Meist handelt es sich nur um Millisekunden, aber auch die summieren sich beim Laden einer Seite.

Und wie komme ich jetzt wieder zurück zu meinem Plugin Problem?

Wenn ich den Programmcode für ein Plugin einfach nur in ein Theme kopiere, habe ich zwar keine Plugins mehr, die in meinem WordPress Dashboard angezeigt werden. Der Effekt ist aber nur optisch und ähnelt der »Problemlösung« bei deinem Auto die Warnleuchte zu überkleben, statt den Wagen in die Werkstatt zu bringen. Der Programmcode für die Plugins, der sich nun unveränderbar im Theme befindet, muss ja weiterhin ausgeführt werden, die Site ist also am Ende genauso schnell oder langsam wie vorher.

Aber, was noch schlimmer ist: Ein im Theme eingebauter Code, gerade wenn er nachträglich eingefügt wurde, kann nicht mehr von den Plugin-Updates profitieren. Sollte also eines der Plugins in Zukunft als neue Version verfügbar sein, kann der reguläre Plugin-Nutzer diese Software bequem updaten. Er profitiert dann nicht nur von möglichen behobenen Sicherheitslücken durch den neuen Code, manchmal werden Plugins ja auch optimiert, so dass die neuen Versionen schneller laufen.

Fazit:

Lasse dir nicht erzählen, dass Plugins deine Site langsam machen. Natürlich tun sie das, so wie dein Auto mehr Sprit verbraucht, wenn du mehr geladen hast. Aber deswegen lässt du deine Schwiegermutter nicht mit dem Bus hinterherfahren, obwohl du noch Platz im Wagen hast.

Achte besser darauf, dass schon das Theme nicht mit unnötigen Funktionen überladen ist. Ich selbst empfehle meinen Kunden immer wieder, ein Theme zu verwenden, das wirklich nur das Design der Seite festlegt. Änderungen bei den Farben und Schriften lassen sich sehr performant über ein Child-Theme anpassen. Und selbst das wird mit WordPress 4.7 nicht mehr notwendig sein, weil diese Version das Überschreiben der CSS-Regeln für das aktive Theme erlauben wird.

Machen Plugins deine Website wirklich langsam?