WordPress Caching ohne Plugin

WordPress Caching ohne Plugin

Wir haben lange überlegt ob wir unsere WordPress Optimierungsmethode veröffentlichen oder nicht. Wir werden es nicht tun. Aber das darf unsere Kunden nicht stören, ihr kommt in jedem Fall in den Genuss echter Performance mit WordPress.

Auslöser war eine Diskussion in einem Internet Forum zum Thema WordPress Optimierung. Seit Jahren sehen es immer noch viele Anwender als äußerst wichtig an ein Caching Plugin zu benutzen. Sicherlich die erste Wahl für viele Anwender um die Performance zu steigern. Doch es ist nicht mehr unbedingt die Beste. In den letzten Jahren haben wir mit nginx und nginx serverbasiertem Caching eine mächtige Hilfe bekommen. Und dies gilt es umzusetzen. Unsere Meinung das man mittlerweile ein echtes Caching Plugin für WP nicht mehr benötigt und sich diesen Overhead sparen kann wurde leider nicht gern geteilt. Praktisch wollten einige WordPress Gurus davon nichts wissen uns weiter verfahren wie bisher. Sollen sie. Die Experten sind sich längst einig das die Plattform viel wichtiger ist auf der WP läuft.

In den letzten Monaten haben wir viel erledigt und unsere Hosting Plattform auf Vordermann gebracht. Zu dem neuen Betriebssystem Debian 9 ist auch der SSD Boost hinzugekommen. Alle Webhosting Systeme sind neu konfiguriert. Somit unterstützen wir die wichtigsten Punkte für ein schnelles WordPress Hosting:

  • HTTP/2 Protokoll
  • GZIP Kompression
  • Browser Caching / Expires Caching
  • Serverbasiertes nginx Caching
  • php 7.3 FPM mit opcache

Wir haben bei unseren WordPress Instanzen nach den Testphasen die Caching Plugins komplett entfernt. Wir setzen auf die neuen Techniken die vor allem damit auskommen den Apache als Webserver in die ewigen Jagdgründe zu verfrachten und dafür auf nginx zu setzen. Dies wird belohnt! Für die restlichen Dinge die dann an WP noch zu optmieren sind: JavaScript, Minify, HTML Cleanup etc, gibt es einfachere Methoden, ohne die Last eines Caching Plugin mitzuschleppen.

Unsere Hosting Umgebung ist vorbereitet und steht unseren Kunden zur Verfügung. Da das ganze aber nicht ohne etwas Optimierung in WordPress auskommt reicht alleine die Hosting Plattform für den Speed Boost nicht aus. Einige kleine Dinge sind in WordPress notwendig. Vor allem das „Caching Plugin“ muss verschwinden. Um Code Optimierungen an HTML, JS, etc. zu machen gibt es andere Lösungen.
Wenn ihr Kunde bei uns seid und auch euere WordPress Seite schneller werden soll so wendet euch an unseren Support.

Warum ohne Caching Plugin

Webserver, im besonderen nginx, können mit Caching besser und vor allem schneller umgehen als php oder WordPress. Mit nginx Caching werden fertige Seiten im Cache des Webservers abgelegt und abgerufen wenn jemand die Seite benötigt. Ganz ohne den WordPress und php Overhead überhaupt anfassen zu müssen. Ein Caching Plugin in WP macht das zwar ähnlich, aber hier erfolgt das ausliefern der zwischengespeicherten Version viel später, hier muss noch nach der Cache Version als Datei etc. gesucht werden, geprüft werden ob diese noch gültig ist etc.
Wenn kein Cache Dokument existiert muss die Seite neu in WordPress generiert werden, so oder so. Ohne Caching Plugin wird auch hier der Caching Part in WP eingespart.

PageSpeed

Ja, es ist möglich mit dieser Variante eine Seite auf PageSpeed = A zu optimieren. Sogar äußerst einfach. Nach der Optimierung sind die meisten Seiten zumindes auf PageSpeed Grade B. Oft hindern dann nur noch zu große oder unoptimierte Bilder das A Rating. Oder Plugins die zu unbedacht mit Javascript oder anderen Komponenten umgehen haben einen Einfluss auf eine bessere Bewertung. Das ist aber dann meist auch lösbar. Am Ende aber wird die Seite merklich schneller funktionieren für den Besucher, und das ist worauf es ankommt.
Wir hätte, wie andere das auch machen, schnell mal eben eine WordPress Demo Seite aufsetzen können die mit PageSpeed A bewertet wird. Das halten wir aber für unsinnig, niemand stellt eine eigene Demo Seite ins Netz sondern will seine „echte“ Webseite präsentieren. Und bei Seiten mit echten Inhalten ist es eben oft schwerer eine Optimierung zu A zu machen als mit Demo Seiten.
Trotzdem, hier findet ihr ein Beispiel für eine optimierte Seite nach oben beschriebener Methode: https://powie.de

WordPress auf nginx

WordPress auf nginx

Eine häufige Anfrage an unseren Support: Wie kann ich mit meiner WordPress Installation Apache deaktivieren und den Betrieb über nginx alleine bewerkstelligen. Der Vorteil ist oft die bessere Performance mit php-fpm und dem nginx Caching etc.
Ihr solltet aber wissen: Teilweise können vor allem Caching Plugins wie SP Super Cache nicht mit nginx funktionieren. Bei der Umkonfiguration landet eure Seite ggf. auf einem HTTP 500 Fehler. Wer sich bzgl. seiner Plugins also unsicher ist aktiviert vor Umstellung den WP Debug Modus.
Die Anleitung ist passend für Kunden mit be-webspace Webhosting Paketen mit Plesk und der WordPress Toolbox.

WP Debug Mode aktivieren

Das geht ganz einfach mit einer Zeile in der wp-config.php:

define( 'WP_DEBUG', true );

In unserer WordPress Toolbox könnt ihr das Debugging ganz simpel aktivieren über den Schalter in der Konfiguration der WordPress Instanz:

wp-debug

PHP FPM aktivieren

Geht auf die Konfiguration eurer Domain und wählt den Punkt PHP-Einstellungen aus.

1.  Umstellen auf php-fpm mit nginx. Wählt php 7.x. aus und stellt zum ausführen ein: FPM-Anwendung von nginx bedient.

php-fpm mit nginx

Apache deaktivieren

Geht zu euer Domain uns wählt den Punkt Einstellungen für Apache & nginx. Hier deaktivieren wir den Proxy Modus!. Das schaltet den Indianer aus.

plesk-proxy-nginx-off

Permalink Support

In der Regel benutzt ihr Permalinks auf eurer WP Installation, da .htaccess bei nginx nicht funktioniert müssen wir die Permalinks für nginx konfigurieren. Dies geht auf der Seite der Apache & nginx Einstellungen am Ende unter dem Punkt Zusätzliche nginx Anweisungen. Hier fügt ihr den folgenden Code ein:

# !!! WordPress Permalinks
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?q=$1 last;
}

Ergebnis:

plesk nginx wordpress permalinks

Nun sollte eure WP Seite rein über nginx gehostet sein. Ihr könnt das unter anderem unter dem Prunkt Protokolle sehen. Sollten Probleme auftreten oder die Seite Fehler produzieren so müsst ihr euch mit dem Debugging beschäftigen und in der Regel das inkompatible Plugin herausfinden.

Finale

Wenn alles funktioniert vergesst nicht den Debug Modus wieder zu deaktivieren!

define( 'WP_DEBUG', false );