Direkt zum Inhalt

Cookie-Einstellungen

Wählen Sie, welche Arten von Cookies Sie erlauben. Sie können Ihre Auswahl jederzeit über Cookie-Einstellungen unten auf jeder Seite ändern. Datenschutzerklärung

Notwendig

Immer aktiv

Nötig zum Einloggen, für Ihren Warenkorb und um Ihre Auswahl zu speichern. Diese sind immer aktiv.

Welche Cookies?
  • weboke_sessie, weboke_klant, weboke_remember: Ihre Sitzung und eingeloggt bleiben
  • weboke_basket: Ihr Warenkorb
  • wkBtwIncl: Preise mit oder ohne MwSt. anzeigen
  • wok_cookies: Ihre Cookie-Auswahl, 12 Monate

Misst, welche Anzeige zu einem Besuch oder einer Bestellung führt, damit wir nicht für Anzeigen zahlen, die nichts bringen.

Welche Cookies?
  • Google Ads über Google Tag Manager (_gcl_au, _gcl_aw), bis zu 90 Tage
  • OpenAI Ads, Anzeigen in ChatGPT
  • wok_aff: über welchen Partner Sie zu uns kamen (Partnerprogramm), 60 Tage

4,6

Land und Sprache

Jedes Land hat seine eigene Website, mit Preisen und MwSt. dieses Landes.

Anzeigen

Modul 6 · 6.2

Deutsch

Caching

Modul 6: Geschwindigkeit · Lesezeit: 9 Minuten

Lernziel: Nach dieser Lektion können Sie erklären, welche Arten von Cache es gibt, und eine Seiten-Cache richtig einstellen und kontrollieren.

Kernbegriffe: Seiten-Cache, Browser-Cache, Cache-Control, Objekt-Cache, Redis, OPcache, CDN, Cache-Plugin, LiteSpeed Cache, Ausnahmen (eingeloggt, Warenkorb, Kasse), Cache leeren, doppelte Cache-Plugins

Cache: Arbeit nicht zweimal erledigen

Ein Cache speichert das Ergebnis von Arbeit, damit sie beim nächsten Mal nicht erneut erledigt werden muss. Bei einer WordPress-Website gibt es vier Stellen, an denen das geschieht, von groß nach klein:

ArtWas wird gespeichertWoEffekt
Seiten-CacheDas komplette HTML einer SeiteAuf dem Server (oder bei einem CDN)Der größte Gewinn: PHP, Plugins und Datenbank werden übersprungen
Browser-CacheStylesheets, Scripts, Bilder, SchriftartenIm Browser des BesuchersEine zweite Seite lädt schneller, weil die Dateien bereits vorhanden sind
Objekt-CacheErgebnisse von DatenbankabfragenIm Arbeitsspeicher des Servers (Redis, Memcached)Hilft, wo eine Seiten-Cache nicht helfen kann, etwa bei eingeloggten Nutzern und Webshops
OPcacheDer übersetzte PHP-CodeIm Arbeitsspeicher von PHPPHP muss Dateien nicht bei jeder Anfrage erneut lesen; ist bei den meisten Hostern standardmäßig aktiv

Die Seiten-Cache

Lektion 1.2 hat es gezeigt: ohne Cache erstellt WordPress bei jedem Besuch die gesamte Seite neu. Mit einer Seiten-Cache erstellt der erste Besucher sie, und die folgenden erhalten das gespeicherte HTML. Eine TTFB von einer Sekunde kann so auf ein paar Hundertstelsekunden sinken, und Ihr Paket kann deutlich mehr Besucher gleichzeitig bewältigen.

Wie Sie eine Seiten-Cache bekommen, hängt von Ihrem Webserver ab:

  • LiteSpeed (viele Shared-Hosting-Angebote, darunter WebOké): Der Webserver hat selbst eine Cache. Das kostenlose Plugin LiteSpeed Cache steuert sie von WordPress aus: welche Seiten in die Cache dürfen, wann sie geleert wird. Weil die Cache im Webserver liegt, wird PHP für eine gespeicherte Seite überhaupt nicht gestartet.
  • Apache oder nginx: ein Cache-Plugin, das das HTML als Dateien speichert, wie WP Super Cache, W3 Total Cache oder ein kostenpflichtiges Plugin wie WP Rocket. Oder eine Cache, die der Hoster auf Serverebene regelt.
  • Managed WordPress-Hosting hat oft eine eigene Cache; dort installieren Sie meist kein Cache-Plugin.

Wählen Sie eines. Zwei Cache-Plugins gleichzeitig (zum Beispiel LiteSpeed Cache und WP Rocket) behindern sich gegenseitig: doppelte Arbeit, Seiten, die nicht geleert werden, merkwürdige Fehler. Auf einem LiteSpeed-Server arbeitet LiteSpeed Cache mit der Cache des Webservers zusammen; ein anderes Cache-Plugin kann das nicht.

Was nicht in die Cache darf

Eine Seiten-Cache gibt jedem dasselbe HTML. Das geht schief bei Seiten, die sich je nach Besucher unterscheiden:

  • eingeloggte Nutzer (die Admin-Leiste, „Willkommen, Lisa“);
  • der Warenkorb, die Kasse und Mein Konto bei einem Webshop;
  • Seiten mit einem Formular mit einem einmaligen Code (Nonce), der nach einer Weile abläuft;
  • Seiten, die je nach Standort, Sprache oder einem Cookie etwas anderes anzeigen.

Gute Cache-Plugins überspringen eingeloggte Nutzer und die bekannten WooCommerce-Seiten automatisch. Bei anderen Plugins (ein Mitgliederbereich, ein Buchungssystem) müssen Sie selbst Ausnahmen einstellen. Das Zeichen, dass es schiefgeht: ein Besucher sieht den Warenkorb von jemand anderem, oder ein Formular meldet „abgelaufen“ oder „ungültige Anfrage“.

Leeren: wann ist die Cache veraltet?

Passen Sie eine Seite an, muss die gespeicherte Version weg. Cache-Plugins leeren beim Speichern eines Beitrags meist diese Seite, die Startseite und die Archive. Bei einer Änderung am Menü, am Theme oder an einem Widget muss oft die gesamte Cache geleert werden. Sehen Sie nach einer Änderung noch die alte Version, leeren Sie die Cache (in der Admin-Leiste des Cache-Plugins) und kontrollieren Sie es in einem privaten Fenster, damit Ihr eigener Browser-Cache nicht dazwischenfunkt.

Die Browser-Cache

Der Server teilt dem Browser über Header mit, wie lange er eine Datei aufbewahren darf:

cache-control: public, max-age=31536000

Das bedeutet: diese Datei ein Jahr lang aufbewahren. Für Stylesheets, Scripts, Schriftarten und Bilder ist eine lange Zeit unproblematisch, weil WordPress bei einer neuen Version ein anderes ?ver= hinter die Adresse setzt und der Browser es dann als neue Datei betrachtet. Für das HTML selbst ist eine kurze Zeit (oder keine) üblich, damit Besucher Änderungen schnell sehen.

Viele Hoster und Cache-Plugins regeln das. In der Aufgabe dieser Lektion kontrollieren Sie es.

Objekt-Cache und Redis

Eine Seiten-Cache hilft nicht bei eingeloggten Nutzern und nicht beim Warenkorb. Dort hilft ein Objekt-Cache: WordPress speichert das Ergebnis von Datenbankabfragen im Arbeitsspeicher, in einem Programm wie Redis oder Memcached. Kommt die nächste Mal dieselbe Abfrage, holt WordPress die Antwort aus dem Arbeitsspeicher statt aus der Datenbank.

Das ist vor allem nützlich für Webshops, Mitgliederseiten und Websites mit vielen eingeloggten Redakteuren. Für eine gewöhnliche Informationsseite mit Seiten-Cache ist der Unterschied gering. Ein Objekt-Cache setzt voraus, dass Ihr Hoster Redis oder Memcached anbietet; danach schalten Sie es mit einem Plugin ein (LiteSpeed Cache kann das, es gibt auch eigenständige Plugins).

Ein CDN

Ein CDN (Content Delivery Network) ist ein Netzwerk von Servern an vielen Orten der Welt, die Kopien Ihrer Dateien (und manchmal Ihrer ganzen Seiten) speichern. Ein Besucher erhält sie vom nächstgelegenen Server. Das hilft vor allem bei weit entfernten Besuchern und bei viel Datenverkehr. Für eine europäische Website mit europäischen Besuchern auf einem europäischen Server ist der Gewinn gering. Ein CDN mit Proxy (wie Cloudflare) ändert auch Ihr DNS und Ihr Zertifikat (DNS-Kurs Lektion 7.5); tun Sie das nicht, ohne zu verstehen, was es bewirkt.

In der Praxis: so sieht es in einem Panel aus

Als Beispiel verwenden wir LiteSpeed Cache auf einem LiteSpeed-Server. Andere Cache-Plugins haben vergleichbare Einstellungen unter anderen Namen.

  1. Installieren und aktivieren Sie LiteSpeed Cache unter Plugins > Installieren.
  2. Öffnen Sie LiteSpeed Cache > Cache: „Cache aktivieren“ ist eingeschaltet, „Eingeloggte Nutzer cachen“ ausgeschaltet (außer Sie wissen, was Sie tun).
  3. Bei einem Webshop: kontrollieren Sie unter Ausschließen, dass Warenkorb, Kasse und Mein Konto eingetragen sind (bei WooCommerce geschieht das automatisch).
  4. Lassen Sie die übrigen Bestandteile (Optimierung von CSS und JavaScript, Bilder) zunächst ausgeschaltet. Schalten Sie sie einzeln ein und testen Sie nach jedem Schritt: gerade diese Bestandteile bringen manchmal ein Theme durcheinander.
  5. Kontrollieren Sie in einem privaten Fenster mit den Entwicklertools (F12, Netzwerk, erste Anfrage): beim zweiten Laden sollte x-litespeed-cache: hit erscheinen.

Zusammenfassung

  • Es gibt vier Arten von Cache: Seite (der größte Gewinn), Browser, Objekt und OPcache.
  • Auf einem LiteSpeed-Server steuert LiteSpeed Cache die Cache des Webservers; auf Apache oder nginx verwenden Sie ein anderes Cache-Plugin. Wählen Sie eines.
  • Eingeloggte Nutzer, Warenkorb, Kasse und persönliche Seiten gehören nicht in die Seiten-Cache.
  • Leeren Sie die Cache nach Änderungen am Menü oder Theme und kontrollieren Sie es in einem privaten Fenster.
  • Ein Objekt-Cache (Redis) hilft bei Webshops und eingeloggten Nutzern; ein CDN vor allem bei weiter Entfernung und viel Datenverkehr.

Quiz

1. Welche Cache bringt bei einer gewöhnlichen Informationsseite meist den größten Geschwindigkeitsgewinn?



2. Ein Kunde sieht in seinem Warenkorb die Produkte von jemand anderem. Was ist wahrscheinlich das Problem?



3. Warum installiert man nicht zwei Cache-Plugins gleichzeitig?



4. Wem hilft ein Objekt-Cache wie Redis am meisten?



Aufgabe

Aufgabe A6.2: Funktioniert Ihre Seiten-Cache? Geben Sie die Adresse Ihrer Website ein. Das Programm ruft die Startseite zweimal kurz hintereinander auf, ohne Cookies, und prüft beim zweiten Mal die Header, die einen Cache-Treffer anzeigen (x-litespeed-cache: hit, x-cache: HIT, cf-cache-status: HIT, ein age größer als 0, oder der Header einer anderen bekannten Cache). Danach ruft es ein Stylesheet aus der Startseite ab und prüft, ob der Browser es mindestens sieben Tage aufbewahren darf (cache-control: max-age oder expires). Notieren Sie, welche Cache Sie verwenden.

Aufgabe A6.2: Funktioniert Ihr Seiten-Cache?



Was Sie eingeben und was wir finden, speichern wir nicht. Ihr Browser merkt sich Ihre Antworten und ob Sie die Aufgabe bestanden haben. Sind Sie angemeldet, speichern wir in Meine Kurse nur, dass Sie die Aufgabe (fast) richtig hatten; auch das können Sie dort löschen.

Weiterführende Informationen

Diese Artikel beschreiben die Schritte in den Panels von WebOké; in anderen Panels funktionieren sie ähnlich.

Einen Moment bitte…

Richten Sie Ihre Domains ein

Legen Sie für jede Domain die Nameserver, die Verknüpfung mit Ihrem Hosting und den künftigen Inhaber fest.

Ihre Domains werden geladen…