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 );

WordPress und php Version 7

WordPress und php Version 7

Auf allen Webhosting Systemen steht mittlerweile php7 zur Verfügung. Ihr könnt sowohl die Version 7.0 wie auch 7.1 verwenden.

Die Umstellung der php Version könnt ihr in Plesk vornehmen unter dem Punkt PHP-Einstellungen. Bei bereits länger bestehenden Verträgen ist es möglich das die Auswahl der php Version gesperrt ist. In dem Fall meldet euch via Support bei uns.

WordPress

Besonders für WordPress bietet php 7 große Performance Vorteile. Wir finden jedoch häufig Probleme bei der Umstellung auf php7 im Zusammenhang mit älteren Plugins oder Themes die nicht mit php7 funktionieren. WordPress selbst funktioniert problemlos mit den neusten php Interpretern. Sollte nach der Umstellung euer WordPress Setup Probleme bereiten seht ihr in er Regel nur eine Fehler Seite mit Code 500. Um einen Hinweis auf das nicht funktionierende Plugin oder Theme zu erhalten geht in Plesk zu Protokolle und schaut euch das Logfile zu Apache-Fehler an. In der Regel findet ihr hier einen Verweis auf ein bestimmes Plugin oder Script. Dieses könnt hr dann über die WordPress Toolbox in Plesk einfach deaktivieren.

Fragen oder Probleme? Wir helfen gern.

http/2 Support

http/2 Support

Ab sofort unterstützen alle optimierten Webspace WordPress Pakete von be-webspace.de auch das http/2 Protokoll welches vor allem bei WordPress einen optimalen Performance Schub erzeugt.

Wenn ihr sicher gehen wollt das dies bei euch korrekt eingerichtet ist und funktioniert könnt ihr euch gern bei unserem Support melden. Wichtig ist WordPress mit SSL abgesichert zu betreiben (https)! Bei Umstellung / Einrichtung beraten wir euch gern!

Weitere Informationen:

WordPress Security Guide

WordPress Security Guide

Da wir auch in den letzten Wochen immer wieder bei Kunden mit gehackten WordPress Installationen tätig werden mussten möchten wir noch einmal einen kleinen Guide veröffentlichen der helfen soll nicht in solche Probleme zu gelangen. Alleine gestern haben wir wieder einen Kunden Account sperren müssen mit 10 infizierten WordPress Installationen. Das muss nicht sein, vor allem mit Plesk und der WordPress Toolbox stellen wir gute Werkzeuge zur Verfügung.

Angriffsszenarien

Auch wenn es sicher viele unterschiedliche Varianten gibt wie WordPress Installationen geknackt werden, so kann man diese in 3 Kategorie unterteilen:

  1. Angriff auf WordPress Accounts: Über verschiedenste Varianten kann es möglich sein das der Zugriff zu einem Benutzerkonto erfolgen kann, sei es durch zu einfach Passwörter, Viren auf lokalen PCs oder andere Quellen die zum Erfolg führen.
  2. Unsichere Themes oder Plugins: Es gibt eine Vielzahl von Plugins mit bekannten Sicherheitslücken. Kaum jemand hat die Möglichkeit sich über alle diese Fälle zu informieren und zu reagieren. Teilweise ermöglichen auch Kombinationen verschiedener Plugins erst die Angriffszenarien.
  3. Veraltete WordPress Versionen und Plugins: Vor allem WordPress liefert regelmäßig Security Updates für das Kernsystem, aber auch viele Plugin Updates beheben Schwachstellen. Wer einige Wochen lang keine Update durchgeführt hat läuft Gefahr zum Opfer zu werden!

Im folgenden zeigen wir drei grundlegende Dinge auf die helfen WordPress sicher zu halten.

Plesk – Auto Updates

Die WordPress Toolbox in Plesk bietet verschiedenste Möglichkeiten um WordPress Installationen zu managen. Das wichtigste Feature hier aber ist die Auto Update Funktion für WordPress. Diese funktioniert ohne die Notwendigkeit etwas in WordPress selbst zu konfigurieren. Aktiviert die Auto Update Funktion für die WordPress Installation sowie alle Themes und Plugins!
In eurem Plesk Account findet ihr rechts oben einen Link zur WordPress Toolbox für eure Installationen, egal ob diese über Plesk oder manuell installiert wurden.

Über den Punkt Auto-Updates aktiviert ihr die durch Plesk durchgeführten automatischen Updates für eure WordPress Instanzen. Somit wird eine Aktualisierung auch immer dann sicher durchgeführt auch wenn WordPress nicht benutzt wird und kein wp-cron eingerichtet ist.

Passwort Sicherheit

Sowohl Plesk als auch WordPress helfen euch mit der Sicherheit von Passwörtern. Ignoriert nicht die Anzeige der Passwortstärke. Nutzt ggf. wirklich eines der generierten Passwörter. Wenn ihr mehrere Installationen habt nutzt nicht das gleiche Passswort, auch wenn es aufwändiger ist sich mehrere merken zu müssen.

Denkt daran, es gibt mehrere Angriffspunkte, die folgenden Passwörter habt sicher gesetzt:

  • Plesk Controlpanel Passwort (Kundenaccount)
  • FTP Passwort für den Zugang zum Webspace
  • WordPress Admin Account Passwörter
  • Passwörter für E-Mail Adressen (Webmail)
  • Passwörter für die Web-Statistiken

Wordfence Security

Benutzt das Plugin Wordfence Security, wir können dieses ausnahmslos empfehlen! Und mit der wichtigste Punkt: Habt eine E-Mail Adresse eingestellt an die euch Wordfence Security auch Benachrichtigungen senden kann wenn etwas nicht stimmt. Ihr findet dies unter den Wordfence – Options unter dem Punkt „Where to email alerts“.

Wordfence Security hat einige bärenstarke Sicherheitsfunktionen die helfen Angreifer fern zu halten:

  1. Wordfence blockt Angreifer die versuchen Passwörter auszuprobieren, nach Fehlversuchen werden die IP Adressen geblockt.
  2. Wordfence kennt diverse Sicherheitslücken in Plugins und versucht über den eigenen Firewall Zugriffe auf diese Schwachstellen zu verhindern.
  3. Wordfence Security kann die Dateien in der lokalen WP Installation mit denen der originalen Versionen auf den WordPress Servern vergleichen und erkennt sofort wenn Dateien unerlaubt verändert wurden.

Zusammenfassung

Diese drei wichtigen Punkte werden enorm zur Sicherheit von WordPress beitragen wenn sie beachten werden. Des weiteren noch ein paar wichtige Anregungen:

  1. Befasst euch mit euren Log-Files! Diese könnt ihr entweder in Plesk unter dem Punkt „Protokolle“ live einsehen oder aber auf eurem Webspace im Ordner /logs finden. Ganz wichtig ist auch der error_log, allein dieser kann ausreichend Hinweise enthalten auf fehlerhafte WordPress Plugins. Oft findet ihr hier Log Einträge von php zu Fehlern in Plugins die ihr auf keinen anderen Weg zu Gesicht bekommt. Im xfer_log findet ihr Aktionen von Übertragungen die über ftp durchgeführt werden. Im access_log findet man ganz leicht Massenzugriffe von Bots die man nicht möchte.
  2. Haltet euer WordPress wirklich aktuell und befasst euch regelmäßig mit eurer Seite, kontrolliert den Spam Filter für Kommentare, schaut in den Wordfence Scan und kontrolliert die Inhalte eurer Seite und der Medien Datenbank. Ein WordPress welches nicht aktiv als Produktionsseite benutzt wird und euch zum Testen dient sichert einfach mit einem Web Passwort, der Punkt in Plesk:
  3. Weniger ist oft mehr, das gilt vor allem beim Einsatz von Erweiterungen und Themes in WordPress. Deinstalliert Themes die ihr nicht benutzt. Benutzt nur Plugins die ihr „wirklich“ braucht! Wenn ihr merkt das ein bestimmtes Plugin die WordPress Installation besonders stark ausbremst verzichtet auf dieses! In der Regel gibt es auch alternativen.

Mein WordPress wurde gehackt

Wenn ihr feststellt das eure WordPress Installation möglicherweise infiziert ist so sperrt euren Account sofort und informiert uns über unser Ticket System.
Es genügt keinesfalls nur einen Passwortschutz zu installieren! Somit kommt zwar niemand mehr von außen an die WordPress Installation heran, aber eure WordPress Instanz kann trotzdem nach außen hin agieren. Zudem beschränkt sich der Zugriff von eventuellen Backdoors nicht auf die WordPress Instanz selber, Bots / Tools / Viren / Trojaner / Hacks haben Zugriff auf ALLE eure Daten! Ist eine Backdoor aktiv und ihr loggt euch in das WordPress Dashboard ein so kann dieser Schädling in diesem Moment ggf. euer Passwort im Klartext mitlesen und weiter senden!!!
Eure Domains könnt ihr auf der Domain Startseite in Plesk über den Menu Punkt „Sperren“ komplett vom Netz nehmen!

Bitte habt Verständnis dafür das wir bei der Menge an WordPress Installationen auf unseren Servern nicht in der Lage sind uns um jede einzelne zu kümmern. Teilweise werden wir auf Probleme aufmerksam wenn sich einzelne Kunden Domain auffällig benehmen oder ungewöhnliche Ressourcen verwenden. Für die Sicherheit eurer Web-Anwendungen seid in jedem Fall nur ihr allein zuständig!
Solltet ihr Hilfe benötigen bei der Säuberung einer infizierten Webseite so können wir euch dafür keinen Preis nennen. Wir sind gezwungen diese Arbeiten „nach Aufwand und Stunden“ zu berechnen. Die Aufwände dazu sind teilweise enorm und es gibt keine Garantie dafür das sich eine Seite auch säubern lässt. Insbesondere wenn während der Analyse der Angriffspunkt nicht feststellbar wird über welchen die Infektion durchgeführt wurde bleibt oft nur die Löschung der betroffenen Daten.
Backups sind in der Regel wertlos da selten der Zeitpunkt festgestellt werden kann wann eine Infektion stattgefunden hat und unbekannt ist ob die Backups nicht auch die gleiche Sicherheitslücke beinhalten.

Weiterführende Links