Wenn dein Produkt oder Konzept plötzlich starke Aufmerksamkeit bekommt, beispielsweise durch einen TV Auftritt bei „Die Höhle der Löwen“, die Empfehlung eines Influencers oder eine groß angelegte Marketingkampagne, bedeutet das eines: viel Traffic auf dem Server! Für manche Websites und Server leider ein wenig zu viel. Dieses Thema werde ich dir heute näher vorstellen und vertiefen.
Was passiert, wenn bei einer Rudermannschaft ein Teammitglied schwächelt? Das gesamte Team verliert an Leistung und muss die fehlende Kraft ausgleichen. Passiert das Ganze während einer Meisterschaft, ist das fatal und führt mit höchster Sicherheit zu einer Niederlage. Dasselbe gilt für deine WordPress Website während hoher Last. Wenn dein Server, dein Theme, deine Plugins, deine Datenbank und Co. kein eingespieltes Team sind, wird deine Website unter Lastspitzen zusammenbrechen – dabei wird natürlich Potenzial verschwendet.
Wenn deine WordPress Website einem plötzlichen Ansturm nicht standhält, ist das Ergebnis immer dasselbe: Deine Website ist nicht erreichbar, und du verlierst indirekt Geld. Was musst du also tun, damit dies nicht passiert?
Wir haben uns Gedanken gemacht, welche Maßnahmen du beispielsweise vor einer Ausstrahlung von „Die Höhle der Löwen“ ergreifen solltest, um deine WordPress Website für hohe Last zu wappnen. Die Grundlage für den Best Practice Optimierungsprozess sind folgende Schritte:
- Planung
- Infrastruktur optimieren
- Backend
- Frontend
- Offsite
- Tests & Reporting
- Liveschaltung
Basierend auf diesem Prozess und unserer jahrelangen Erfahrung, haben wir dir einen konkreten 13 Punkte Plan erstellt, der dir hilft, deine WordPress Website für hohe Last fit zu machen.
Hinweis
#1 Planung
1.1 Zeit
Die Zeit, die dir für die Umsetzung zur Verfügung steht, ist leider oft ein unterschätzter Faktor bei der Planung, aber mitunter der Wichtigste.
Du brauchst Zeit, damit du und dein Team deine WordPress Website und deinen Shop optimieren und testen können. Gegebenenfalls brauchst du (oder dein Webhoster) auch Zeit, um deine Website oder Domain umzuziehen oder den Server zu skalieren.
Auch brauchst du Zeit, um Konzepte zu überdenken und eventuell Drittanbieter oder Plugins zu wechseln.
„*“ zeigt erforderliche Felder an
1.2 Konzepte überdenken
Plugins, Widget und Ressourcen
Alle ressourcenfressenden Plugins, Widgets und Funktionen, die du nicht in deinem Dashboard oder auf deiner Website zwingend brauchst, solltest du entfernen. Brauchst du wirklich deine Monitoring Tools wie Matomo oder Google Analytics in deinem WordPress Dashboard?
Versuche dich auf das absolute Minimum zu beschränken, wenn es dir darum geht, dass deine Website auch unter höchster Last online bleibt. Selbst kleinste Dinge wie ein Social Media Button können gerne mal das doppelte an Ladezeit ausmachen. In folgendem Beispiel sogar 12 Skripte mit insgesamt 462,7 kB – nur zum Anzeigen eines Social Media Buttons.
Werbeanzeigen
Zu viele Anzeigen auf deiner Website verlangsamen nicht nur deinen Server, sondern sorgt auch dafür, dass deine Website schneller verlassen wird. Folglich gehen dir dadurch Werbeeinnahmen verloren. Beschränke dich auf wenige und qualitativ hochwertige Anzeigen, um möglichst schnell und effizient deinen „Return of Investment“ (ROI) zu steigern.
E-Mails
Deine Website ist deine Onlinepräsenz – deine E-Mails gehören nicht von dieser aus gesteuert. Der Server beansprucht eine Menge Load und das geht gerade zu hohen Lastspitzen ganz schön auf deine Kosten.
Wir unterscheiden hier zwischen zwei Arten von E-Mails:
- Marketing (Newsletter)
- Verwaltung
Marketing Mails, wie zum Beispiel deinen Newsletter, solltest du grundsätzlich auslagern. DSGVO konforme, deutsche Anbieter sind hier beispielsweise Cleverreach oder Newsletter2Go. Natürlich gibt es auch internationale Provider wie beispielsweise Mailchimp oder ActiveCampaign, die auch eine super Sache machen.
Merke: Marketing Mails solltest du grundsätzlich nicht über deine Website versenden.
Verwaltungsmails, wie beispielsweise Rechnungen, Passwort Resets, E-Mails zur Kontoerstellung o.ä. kannst du ebenfalls super auslagern. Gerade, wenn es bei hohen Besucherzahlen zu vielen Bestellungen kommt, solltest du dies in Erwägung ziehen.
Hier gibt es auch etliche Provider, die du einfach als Drittpartei SMTP Server verwenden kannst: Mailgun ist hier mein Favorit. Es gibt dazu auch ein einfach einzurichtendes WordPress Plugin.
#2 Hosting
Der wichtigste direkt umsetzbare Punkt, auf den du deine Aufmerksamkeit legen solltest, ist in der Tat das Hosting. In erster Linie ist es hierbei wichtig, einen Hoster zu wählen, der keine Limitierung bezüglich des Traffics hat. Denn: Übersteigt dein Traffic dieses Limit, kann dein Hoster deine Website sperren und die ganze Mühe wäre dahin.
Hostingtarife auf Basis von Shared Hosting sind ebenfalls gänzlich ungeeignet für einen hohen Lastzuwachs, da du dir die CPU Zeit mit weiteren Nutzern (Websites) teilst. In den meisten Fällen sind diese außerdem nicht leistungsstark genug, um solche Traffic Anstürme wie zum Beispiel bei „Die Höhle der Löwen“ auszuhalten.
Ein auf WordPress und WooCommerce spezialisierter Hoster ist in den allermeisten Fällen die beste Wahl, wenn du dich nicht gerade selbst minutiös um das Aufsetzen, die Wartung, Performance Optimierungen und Sicherheit deiner Website kümmern möchtest. Welche vier Faktoren du beim WooCommerce Webhosting besonders beachten musst, kannst du in unserem Artikel nachlesen.
Eventuell macht auch eine kurzfristige Skalierung deines Servers Sinn. Das bedeutet, dass du für einen Zeitraum deinen Server hochskalierst (mehr CPU/RAM etc) und dann nach der Trafficspitze wieder zum regulären Tarif zurückkehrst, um Kosten zu sparen.
Im optimalen Fall sprichst du schon am Anfang der Planung mit deinem Webhoster. Dieser kann dich am Besten beraten und dir Empfehlungen aussprechen.
#3 Backups
Backups sind ein absolutes Muss, nicht nur für Lastspitzen, sondern grundsätzlich. Deine Website sollte nächtlich automatisch gesichert werden und zusätzlich solltest du die Möglichkeit haben, manuelle Backups anzulegen. Dies gibt dir gerade in Phasen wie beispielsweise Umstrukturierungen deiner Website ein weiteres Sicherheitsnetz.
Auch kannst du auf diese Weise große Milestones als Versionen absichern.
Beispielsweise:
- Backup 1: Ausgangszustand
- Backup 2: Caching Plugin installiert und konfiguriert
- Backup 3: Datenbank aufgeräumt
- …
So kannst du jederzeit zu bestimmten Punkten deiner Anpassungen zurückspringen, falls etwas schiefgeht.
Ich empfehle dir, dies auch wirklich zu nutzen, während du dich durch dieses Dokument durcharbeitest.
3.1 Backup Systeme
Backup bei Managed WordPress Webhostern (empfohlen):
Bei den meisten spezialisierten Hostern kannst du dich auf eine nächtliche automatische Sicherung deiner Website verlassen. Darüber hinaus gibt es in der Regel die Möglichkeit, mit einem Klick manuelle Backups anzulegen und wieder einzuspielen. Da diese Backups keinen Umstand für dich bedeuten und auch keinen Speicherplatz von dir wegnehmen, geht die Empfehlung klar in diese Richtung.
Backup via WordPress Plugin:
Plugins wie BackWPup, Updraft, BackUpWordPress und ähnliche können deine gesamte WordPress Website, inklusive Medien und Datenbank, auf deinem Server sichern.
Je nach Plugin und Version (kostenfrei oder Bezahlvariante) kannst du dein Backup zusätzlich noch in der Cloud* speichern oder herunterladen.
BackWPup ist von Inpsyde geschrieben und wird gut supportet. Daher ist dies unsere Empfehlung für dich, falls du keine Backup Lösung in deinem Hostingpaket hast. BackWPup bietet zeitgesteuerte Sicherungen, Speicherung auf Cloud Services* wie Dropbox oder Microsoft Azure oder einem anderen FTP Server.
In der Kaufversion kannst du noch weitere Cloud Dienste als Speicherplatz angeben und deine Backups verschlüsseln.
*Bei der Speicherung von Backups in der Cloud sollte man sich in Zeiten der DSGVO gut überlegen, welchen Anbieter man nutzt, da deine Backups ja auch Kundendaten wie Namen, Adressen und E-Mails enthalten.
#4 Caching & Minifying
Der Faktor Nummer eins, wenn es darum geht, Websites schnell und mit möglichst wenig Serverlast auszuliefern, ist klar das Caching.
Beim Caching minimierst du die Requests auf deinen Server, welcher dann statische Dateien anstatt dynamischen Content ausliefert, wie beispielsweise deine Bilder oder das HTML deiner Websites. Das bringt dir neben einer enormen Geschwindigkeitsverbesserung auch noch eine deutlich geringere Last, da der Server denselben Content nicht wieder und wieder laden muss. Stell dir das so vor als würde deine Mutter dich immer und immer wieder zum Milch holen schicken. Statt immer wieder erneut loszulaufen, füllst du den Kühlschrank einfach mit mehreren Flaschen. Das reduziert die Last auf deinen Beinen und den Stress mit deiner Mutter, weil du nicht schnell genug warst.
Hier unterscheiden wir zwischen dem serverseitigem Cache und dem Caching durch Plugins. Eine ausführliche Übersicht zum Cache und die Unterschiede dieser Cache Möglichkeiten haben wir in unserem Caching Grundlagen Artikel für dich zusammengestellt.
Das Minifizieren von CSS und JS kann dir auch einen Performancevorteil bringen. Hierbei werden die Inhalte der jeweiligen Stylesheets und JavaScript Dateien um Kommentare und Leerzeichen erleichtert und zu einem langen String zusammengeführt. Wir empfehlen dafür zum Beispiel das Plugin „Merge + Minify + Refresh“.
#5 Medienoptimierung (Bilder skalieren, Videos auslagern)
5.1 Bilder
Große Medien sind natürlich der Killer in Sachen Last und Performance. Wenn deine Shop Unterseite 25 Produktbilder in Vollauflösung beinhaltet, obwohl diese nur in 200px x 250px angezeigt werden, dann geht die Website schnell mal in die Knie.
Ganz besonders vorsichtig solltest du bei Bildern im Warenkorb oder Kassenbereich sein, denn diese Bereiche sind ungecacht. Wenn du dort 300dpi Bilder auf 2000px einlädst, obwohl nur ein Pictogramm gebraucht wird, kannst du dir sicher sein, dass bei Volllast niemand etwas kaufen kann.
Mit welchen WordPress Plugins du deine Bilder automatisiert aufbereiten kannst, erklären wir in unserem Bildoptimierungsplugin Vergleich.
5.2 Videos
Videos gehören auf Videoportale und werden dann auf deiner Website eingebunden! Zumindest, wenn es dir rein um die Performance geht. Es gibt kaum einen Grund, Videos selbst zu hosten (in manchen Fällen vielleicht die DSGVO, aber lassen wir das hier mal beiseite).
Wenn du Videos unbedingt selbst hosten willst, mach es auf einem dedizierten Server und binde sie dann bei dir ein. Ansonsten lade sie bei YouTube, Vimeo, 3q oder Brightcove hoch.
#6 Datenbank aufräumen
Jetzt gehen wir einmal in die Tiefe der WordPress IT: die Datenbank.
Ganz wichtig: Mache zunächst vorher ein Backup!
WordPress speichert Beiträge, Kommentare, Seiten und andere Arten von textuellen Daten in einer einzigen Datenbank (Bilder und Videos ausgeschlossen, denn die befinden sich im “wp-content/**” Ordner). Nach einer Weile wird diese Datenbank natürlich etwas voller und „zugemüllt“.
Müll bedeutet hier unter anderem:
- Kommentare im Spambereich
- Revisionen von Beiträgen und Seiten
- Dinge im Papierkorb
- Beitrags- und Kommentarmetadaten wie Validierungen, die lange abgelaufen sind
Das ist alles Altlast, die du in der Regel nicht mehr brauchst und welcher deinen Server runterzieht.
Wie wird man diesen Kram los?
TL;DR & für alle, die es etwas einfacher haben möchten: Installiert euch WP-Optimize und lasst es laufen!
6.1 Revisionen
Revisionen sind Zwischenstände deiner Beiträge, Seiten und Entwürfe.
Meist kann man diese enorm reduzieren, zum Beispiel auf maximal 8 bis 10 Revisionen. In manchen Fällen macht es sogar Sinn, sie ganz abzuschalten.
In deine wp-config.php schreibst du dazu:
Ganz abschalten:
define( 'WP_POST_REVISIONS', false );
Revisionen limitieren:
define( 'WP_POST_REVISIONS', 10 ); // Max 10 Revisionen
6.2 Die wp_options optimieren
Die wp_options Tabelle ist eine der wichtigsten und zugleich oft übergangenen Tabellen in WordPress, wenn es um Lastenoptimierung geht. Die wp_options enthält neben Dingen wie der Site URL, Home URL, Zeitformaten und Admindaten auch Einstellungen für Plugins, Themes, WP Cronjobs und Cachedaten.
Um diese zu optimieren, müssen wir erst einmal verstehen, was die einzelnen Tabellenspalten bedeuten. Die wp_options hat folgende Spalten:
- option_id
- option_name
- option_value
- autoload
Schauen wir uns mal die autoload Spalte an. Diese steuert aus, welche Optionen und Einstellungen über die Funktion wp_load_alloptions() geladen werden. Das bedeutet: Ist in einer Zeile der Eintrag auf ‘yes’ wird auf jeder Seite deiner Website diese Funktion geladen.
Bei vielen Plugins steckt die Einstellung dahinter, dass dieses so verdammt wichtig ist, dass es auf jeder Seite zu laden hat – Obwohl das Plugin eigentlich nur auf einer Seite verwendet wird (beispielsweise ein Rechner oder Kontaktformular).
Das müllt natürlich deine Website zu und verursacht enormen Extra Load. Wie behebt man dies?
Letztendlich ist dies eine Planungsfrage. Wie schon in Punkt 1.2 „Konzepte überdenken“ angemerkt, solltest du dir die Frage stellen: „Brauche ich dieses Plugin?“. Falls du es mit einer anderen Möglichkeit ersetzen kannst, tu es.
So kannst du beispielsweise Google Analytics nicht im WordPress Dashboard laden, sondern extern. Oder anstatt ein Redirect Plugin zu verwenden, könntest du bei deinem Webhoster schauen, ob der nicht schon solche Dinge integriert hat.
Um herauszufinden, welche Plugins große Ladezeiten verursachen, habe ich dir hier mal einen SQL Query geschrieben:
SELECT option_name, length(option_value) AS option_value_length FROM wp_options WHERE autoload ='yes' ORDER BY option_value_length DESC
Nachdem du diesen Query ausgeführt hast, bekommst du eine Liste zurück die dir anzeigt, welche Funktionen den meisten Load verursachen.
In diesem Fall kommt es von dem Plugin “Rewrite Rules”. Wenn du bei Raidboxes hostest, kannst du dich der Rewrite Regeln im Raidboxes Dashboard bedienen, für diese Box einfach die Rewrite Regeln übernehmen und das Plugin löschen.
Alten „Plugin Müll“ aus der wp_options entfernen
Gelöschte Plugins hinterlassen gerne noch Reste in der wp_options und dazu auch noch auf autoload = yes. Das ist natürlich sehr schlecht, da die Funktionen dahinter nicht einmal mehr existieren und die Rechenzeit des Servers somit total verschwendet wird.
Was ich immer gerne mache, ist mir von gelöschten Plugins die Namen in der wp_options nachzuschlagen und zu entfernen.
Gehen wir mal davon aus, dass wir das “Rewrite Rules” Plugin von oben nicht mehr benötigen, so lasse ich diesen SQL Query laufen:
SELECT * FROM `wp_options` WHERE `autoload` = 'yes'AND `option_name` LIKE %rewrite_rules%'
Wichtig
Es kann sein, dass dein Datenbankprefix ein anderes ist, daher musst du diese Query an der Stelle „wp_options“ eventuell anpassen in „deinprefix_options“.
Ich bekomme dann eine ganze Reihe von nicht mehr benötigten Funktionen zurück, die alle noch auf autoload = yes stehen, aber völlig unnütz sind. Diese lösche ich einfach. Backups hatte ich ja schon erwähnt, oder? 😉
Dieses Prozedere gehe ich für alle Plugins durch. Schon ist die wp_options eine ganze Ecke leichter.
6.3 Alte Transients löschen
Update
Seit WordPress Ver. 4.9.9 ist dies nicht mehr nötig, da WordPress diese Aufgabe selbst übernimmt.
Für WordPress Versionen vor 4.9.9:
Transients sind nichts anderes als temporäre Optionen, die für kurze Zeit in der Datenbank gespeichert werden. Sobald diese abgelaufen sind und nicht mehr benötigt werden, werden diese gelöscht. Als Beispiel: “site_transient_update_plugins” beinhaltet einfach die Info, welche Plugins ein Update haben und welche nicht. Sobald man diese Plugins updated oder eine erneute Update Überprüfung anwirft, wird dieser Transient gelöscht.
Leider ist das aber nicht immer der Fall, denn manche Transients bleiben für immer in der Datenbank hängen und machen einem die Queries schwer. Die sollten natürlich weg.
Benutzt dafür am besten den Transient Cleaner, denn dies manuell zu machen ist ein riesiger Aufwand. Nachdem du dieses Plugin erfolgreich verwendet hast, kannst du es danach wieder getrost entfernen. Der Transient Cleaner entfernt nur die abgelaufenen Transients und nichts weiter – ein tolles Tool!
6.4 WordPress Sessions
Sessions sind dazu da, um User Login Sitzungen zu steuern, zu protokollieren, überprüfen und ablaufen zu lassen. Nach einer Weile löscht ein WP Cronjob diese Sessions aus der Datenbank. So sollte es zumindest sein.
Leider hängen sich Cronjobs auf oder sie werden von Plugins deaktiviert – Dann hast du im Nu sehr viele Sessions in der Datenbank.
Um zu schauen, ob du davon betroffen bist, habe ich einen weiteren SQL Query für dich:
SELECT * FROM `wp_options` WHERE `option_name` LIKE '_wp_session_%'
Wichtig
Es kann sein, dass dein Datenbankprefix ein anderes ist, daher musst du diese Query an der Stelle „wp_options“ eventuell anpassen in „deinprefix_options“.
Wenn du feststellen solltest, dass da abertausende Einträge sind, verwende folgenden SQL Query, um diese zu löschen:
DELETE FROM `wp_options` WHERE `option_name` LIKE '_wp_session_%'
Bei Raidboxes haben wir dazu einen eigenen, serverseitigen Cronjob, den du nach Intervallen aussteuern kannst. Diesen findest du unter deinen Box Einstellungen unter WP Session Eraser.
6.5 Einen Index zum autoload hinzufügen
Ok, jetzt wird’s tricky! Aber wenn du es schaffst, für deine WordPress Website diesen Trick von 10up anzuwenden, hast du sehr viel gewonnen.
Was er prinzipiell macht:
Es wird ein Index zum autoload Feld in der wp_options hinzugefügt. Dadurch wird die Abfragezeit erheblich reduziert und sogar auf ein konstantes, sehr niedriges “maximum” gebracht.
Das Ergebnis liegt klar auf der Hand:
Das Schöne ist: Bei den meisten Websites funktioniert unser Plugin Add Index To Autoload wunderbar. Wie immer, denke an das Backup zuvor!
Manuell würde es mit diesem SQL Query hier gehen:
ALTER TABLE `wp_options` ADD INDEX (`autoload`);
Wichtig
Es kann sein, dass dein Datenbankprefix ein anderes ist, daher musst du diese Query an der Stelle „wp_options“ eventuell anpassen in „deinprefix_options“.
#7 Halte alles up to date!
Ein sehr effektiver Weg, um hohem Traffic standzuhalten, ist deine Software up to date zu halten. Nicht nur dein WordPress selbst, sondern auch dein aktives Theme, deine Plugins und ganz vorne weg: deine PHP Version.
7.1 PHP
PHP ist der “Software Motor” von WordPress. Das bedeutet auch: Je performanter der Motor, desto schneller ist deine Website. PHP 7.0 kann bereits mehr als doppelt so viele Requests pro Sekunde ausführen wie PHP 5.6 – und das in der Hälfte der Latenzzeit. Mit PHP 7.1 und 7.2 wurde das Ganze nochmal etwas schneller.
Hinweis
Der offizielle Support für PHP Versionen vor PHP 8.0 ist bereits ausgelaufen. Du solltest also am besten jetzt zumindest auf PHP 8 updaten, um die Sicherheit deiner WordPress Website nicht zu gefährden.
Insgesamt ist es mehr als sinnvoll, die PHP Version zu benutzen, die dir die beste Performance bringt. Aber Achtung: nicht alle Plugins und Themes sind mit den neuesten Versionen schon kompatibel! Hier hilft entweder die Dokumentation der Plugins und Themes oder einfaches Ausprobieren weiter.
7.2 WordPress Version
Um die maximale Performance herauszuholen, sollte auch deine WordPress Version up to date sein. Wenn du dein WordPress schon länger nicht aktualisiert hast, solltest du nicht direkt von einer major Version in die nächste springen (Bsp: 4.3 auf 4.4) sondern dich in minor Versionen nach vorne tasten (beispielsweise von Version 4.3.3 auf 4.3.4).
Prüfe zwischen den Updates immer wieder die gesamte Funktionalität deiner Website. Prinzipiell ist zu empfehlen, immer wieder einzelne Backups deiner Website anzulegen. Das gilt ganz besonders vor größeren Versionssprüngen!
Grundsätzlich empfiehlt sich auch hier ein Managed WordPress Webhoster, welcher die WordPress Updates für dich übernimmt.
7.3 Plugins und Themes
Genau wie deine WordPress Version, solltest du auch deine Plugins und Themes auf den neuesten Stand bringen. Sicherheit und Performance sind die Hauptgründe. Unsichere Plugins und Themes können dir deine gesamte Arbeit zunichtemachen. Eine Übersicht über aktuell bekannte Sicherheitslücken zu WordPress, Themes und Plugins findest du in der “WPScan Vulnerability Database” vom Sicherheitsanbieter Sucuri.
Plugin- und Theme Updates bringen außerdem die Möglichkeit, auf eine höhere PHP Version zu upgraden und somit einen deutlichen Performance Boost zu erreichen. Nebenbei fallen Bugs weg und du hast mehr Features zur Verfügung.
Auch hier gilt bei größeren Updates: Mache vorher ein Backup deiner Website oder teste die neue Version in einer Staging Umgebung. Überprüfe die Funktionalität deiner Website, bevor du die Änderungen live schaltest.
Welche Konsequenzen es haben kann, wenn du mit deinen Plugin Updates hinterherhinkst, hat sich zum Beispiel bei der Sicherheitslücke eines DSGVO Plugins gezeigt.
#8 Broken Links
Ein ganz einfacher Punkt, der zwar nicht zwangsweise deine Website Performance herunterzieht, dich aber Seitenaufrufe kosten kann, sind kaputte Links. Die Überprüfung deiner Website kannst du ganz einfach über den Online Broken Link Checker erledigen.
Ich empfehle dir, diese Website statt eines WordPress Plugins für den Check zu verwenden, da Plugins die Performance deiner Website runterziehen – auch wenn du sie gerade nicht im Einsatz hast. Es gibt aber noch viele weitere Tools und Methoden, um Broken Links zu finden. Welche das sind, erfährst du in diesem Beitrag.
#9 Lazy Loading
Update
Seit der WordPress Version 5.5 benötigst du kein Lazy Loading Plugin mehr, da WordPress diese Aufgabe selbst übernimmt.
Beim Lazy Load werden ausschließlich die Inhalte angezeigt, die der User in seinem sichtbaren Browserbereich hat. Der Rest wird dynamisch geladen, wenn der User weiter herunterscrollt.
Um den Load deiner Website zu verringern, werden nur die Anfragen erfüllt, die tatsächlich unmittelbar erfüllt werden müssen. Darunter fallen zum Beispiel Bilder, Videos und Texte sowie Skripte und weitere Dinge. Ein wahres Machtwerkzeug – Quasi Thors Hammer, um Ressourcen zu sparen.
Es funktioniert so:
Der Browser lädt schon den gesamten textlichen Inhalt (den DOM), bedient sich jedoch an Javascript, um nur die Bilder/Video/Skript Ressourcen zu laden, die der User auch gerade braucht. Scrollt der User tiefer, werden die Dinge nachgeladen, die in sein Sichtfeld kommen.
Viele moderne Themes, gerade für Shops, haben Lazy Loading bereits implementiert. Leider ist es nicht immer ganz einfach, Lazy Loading nachträglich hinzuzufügen.
But, there is a Plugin for that! Es gibt viele Lazy Loading Plugins auf dem Markt. Eines gefällt mir jedoch besonders gut: a3 Lazy Load. A3 Lazy Load funktioniert in sehr vielen Fällen und kann zusätzlich zu Bildern auch Videos und iFrames lazy loaden. Darüber hinaus unterstützt es WordPress AMP, WooCommerce und Advanced Custom Fields.
#10 Bezahlvorgang optimieren
Gerade wenn du ein oder mehrere Produkte verkaufen willst, ist es unabdingbar, den Bezahlvorgang genau zu optimieren. Wie oben schon erwähnt, sind Dinge wie der Warenkorb oder die Kasse nicht cachbar. Daher sollte man die Serverlast genau hier enorm reduzieren, da jeder Request eine völlig neue und ressourcenintensive Anfrage an den Server bedeutet.
Schau dir über deine Browser Tools (in Chrome zum Beispiel über den Reiter „Network“) an, wie viele Requests bei einem Checkout generiert werden und eben welche. Wenn du siehst, dass du 400 Request alleine beim Aufrufen des Warenkorbs generierst, läuft irgendwas falsch.
Untersuche, welches Plugin oder welche Ressource viele dieser Requests generiert und versuche diese zu reduzieren. Das bedeutet, dass du dich gegebenenfalls von Plugins, die du nicht zwingend benötigst, trennen musst.
Was wir hier oft sehen, sind Schriften, die von externen Quellen geladen und gerendert, aber noch nicht einmal auf der Warenkorb- oder Kassenseite eingesetzt werden.
Stell dir auch die Frage, ob du in der Kassenanzeige wirklich noch einmal alle Produkte mit Bildern in Vollauflösung auflisten musst oder ob eine textliche Anzeige hier ausreicht.
Zahlungsmöglichkeiten über Gateways
Auch ist eventuell ein Wechsel deines Bezahlgateways notwendig. Wenn bspw. dein PayPal Plugin sehr lange braucht, um Anfragen zu verarbeiten, kannst du hier Abschlüsse verlieren.
Wenn du möglichst viele Bezahlmöglichkeiten und eine für dich sichere Abwicklung bieten möchtest, schau dir Stripe an. Stripe bietet eine einfache WordPress Integration und schnelle Zahlungsvorgänge bei einer hohen Anzahl an Zahlungsmöglichkeiten.
#11 CDN
On page ist nun alles optimiert? Server schnell? Super! Dann kommt die nächste Stufe, um die Last so gering wie möglich zu halten: Ein Content Delivery Network (CDN).
Ein CDN ist quasi eine Kopie deiner gecachten Website, die auf verschiedenen Servern an verschiedenen Standorten auf der Welt verteilt ist. So kommen die Endgeräte, die an einem dieser Orte sind, schneller an die Daten. Quasi – um das Milchbeispiel von oben noch einmal aufzugreifen – ein Kühlschrank voller Milch in jedem Raum. Zusätzlich wird das CDN auch deinen Server von Last befreien, da es Teile deiner Website gecacht von dessen Server ausliefert.
Wir empfehlen als CDN Partner Cloudflare. Hier hast du in manchen CDN Plänen sogar eine Firewall und einen Image Optimizer mit drin. Wie du Cloudflare bei Raidboxes mit deiner Box verbindest, erklären wir dir hier:
In Cloudflare:
- Du gibst deine Domain unter „Add Website“ ein und klickst auf „Scan DNS Records“.
- Nun scannt CF automatisch nach deinen Records – hier einfach abwarten, bis er durch ist.
- Im Anschluss wird dir CF Vorschläge machen (meistens zwei für A Records). Und das ist auch ok so. Klicke auf „Continue“.
- Wähle im nächsten Schritt deinen Plan aus und klick wiederum auf „Continue“.
- Hier hast du nun Nameserver, die du anpassen musst.
- Cloudflare zeigt dir unsere an und in welche du sie ändern kannst. (Das gilt natürlich nur für Domains, die du bei uns hast. Solltest du die Domains noch woanders haben, musst du da nachschauen).
- Diese Nameserver (5) musst du dann in der Domainverwaltung als Nameserver eintragen. Wenn du deine Domains bei uns verwaltest, kannst du diese hier anpassen. Dort klickst du bei der jeweiligen Domain auf „DNS“ und änderst die Nameserver in die von Cloudflare. Falls du deine Domains bei einem anderen Anbieter hast, musst du da nachschauen.
Fertig!
Noch wichtig: Solltest du die Fehlermeldung: “Too many Redirects” erhalten, musst du in Cloudflare bei den SSL Einstellungen „Full Strict“ aktivieren.
#12 Reporting
Du kannst nicht immer und überall auf deine Website aufpassen, daher ist ein Monitoring und Uptime Reporting Tool sehr wichtig. Diese meist kostenfreien Tools überwachen den Status deiner Website. Sie checken in kurzen Abständen, ob deine Website erreichbar ist. Wir empfehlen dazu die kostenfreien Pläne von Pingdom oder UptimeRobot.
Achtung bei den Check Intervallen
Stell diesen Check nicht zu kurz ein, dies bedeutet nämlich auch eine Last auf deinen Webserver. Daher sollten die Check Intervalle nicht kürzer als 5 Minuten sein.
#13 Finales Backup
Alles läuft? Zufrieden? Super! Jetzt solltest du nur noch ein abschließendes Backup machen. Bei der nächsten Lastspitze durch die Höhle der Löwen und Co. dürfte deine Website jetzt nicht mehr in die Knie gehen.
Fazit
Ich hoffe, dass dir meine Schritt für Schritt Anleitung helfen wird, deine WordPress Website für hohe Last fit zu machen. Wenn es an den technisch anspruchsvolleren Stellen noch hakt, empfehlen wir dir, einen WordPress Profi hinzuzuziehen. Du hast noch weitere Fragen oder Anmerkungen zur Vorbereitung auf hohe Last? Dann lass mir gern einen Kommentar da!
Moin Moin, vielen Dank für die super coolen und hilfreiche 13 Punkte 👍.
Von einigen Sachen hatte ich vorher nie gehört. Aber je mehr ich mich damit beschäftige, desto verständlicher wird das alles. Bin gespannt wie gut ich einige Punkte davon gut umsetzen kann.
Wie kann ich denn z.B. herausfinden, welche Plugins ich gelöscht hatte, wenn das löschen schon ein paar Monate her ist… und ich den Namen nicht mehr weiß?
Immer richtig „Sehr gute Inhalte“ im Raidbox Blog! Auch bei diesem hier lernt man wieder viel.
Quality Content – Danke Schön! #isgebookmarked
Hallo Matthias,
ich bin nicht sicher, daher die Frage: Ist Rewrite_Rules nicht die Permanent-Link-Standardfunktion in WordPress? Das ist m.E. gar kein Plugin, welches man löschen könnte? Du schlägst es in Kapitel 6.2 vor, ich glaube aber, das wäre gefährlich…
Viele Grüße
JWH
Hey Matthias,
das Plugin „Index Autoload“, dass Du in Kapitel 6.5 beschreibst, ist nicht mehr verfügbar. Wäre bestimmt hilfreich, wenn Du den Text entsprechend anpassen würdest….
LG,
Dirk
Hi Dirk,
sorry für die späte Antwort, jedoch haben wir kurzerhand beschlossen ein eigenes Plugin zu entwickeln, dieses findest du hier: Add Index To Autoload.
Viele Grüße aus Münster,
Matthias
Betreffend dem Plugin Transient Cleaner: WordPress gibt die Meldung aus, das ‚Transient Housekeeping ab 4.9.x Teil des Cores ist‘, und man es daher entfernen möge.
Hallo Marcus,
vielen Dank für den Hinweis – ich habe den Artikel ergänzt. Zum Zeitpunkt des Verfassens war dies noch nötig 😉
Danke und Grüße,
Matthias