Cache generieren im Gambio-Modul zur Ladezeitoptimierung

Caching ist der Hauptfaktor, mit das Modul Ihren Gambio-Shop beschleunigt. Über die manuelle Generierung des Caches via Button-Klick im Admin-Menü hinaus stehen zwei CronJob-Varianten zur Verfügung. Dieses Tutorial unterstützt Sie bei der Einrichtung des geeigneten CronJobs, erläutert mögliche Parameter und gibt Tipps für die Praxis.

Cache manuell generieren

Wenn Sie die kostenlose Testversion des Moduls zur Ladezeitoptimierung nutzen oder das Modul gerade erst installiert haben, ist ein unkomplizierter Vorher-Nachher-Vergleich bestimmt der interessanteste Aspekt. Bevor Sie den CronJob einrichten, sollten Sie sich von der rapide gesunkenen Ladezeit und dem gestiegenen PageSpeed-Score überzeugen.

Ein einfacher Klick auf den Button Cache jetzt generieren tut genau das, was der Button-Titel verspricht. Je nach Anzahl zu speichernder Seiten kann der Vorgang einige Minuten dauern. Mit Hilfe der Fortschrittsanzeige können Sie den Verlauf des Cachings live verfolgen.

RewriteRules in .htaccess-Datei schreiben, um das Laden der Seiten aus dem Cache zu aktivieren

Sofern Sie es nicht schon vor Generierung des Caches getan haben, klicken Sie bitte im Anschluss den Button namens In .htaccess-Datei schreiben in der Zeile RewriteRules. Während der eine Button-Klick die Erstellung des Caches bewirkt, sorgt der andere dafür, dass die Dateien aus dem Cache geladen werden.

Angemeldeten Nutzern werden maximal die Optimierungen, jedoch nicht die Dateien aus dem Cache zuteil. Daher müssen Sie zum Testen entweder einen anderen Browser verwenden oder ein neues Fenster im privaten Modus öffnen. Wenn Sie nicht vor Installation des Moduls schon umfangreiche Schritte zur Ladezeitoptimierung unternommen haben, ist der Performancegewinn nicht nur messbar. Sie können ihn beim Surfen durch Ihren Shop direkt „spüren“.

CronJob (CLI)

Dies ist der empfohlene Weg, den Cache im dauerhaften Betrieb des Optimierungs-Moduls auf dem aktuellen Stand zu halten. Sofern Sie die Möglichkeit haben, sollten Sie auf jeden Fall einen CronJob anlegen, der einen Befehl bzw. ein PHP-Script ausführt. Das Modul schlägt Ihnen hierfür einen Befehl vor, der ähnlich diesem aussieht:

php /var/www/vhosts/meinshop.de/httpdocs/GXModules/Werbe-Markt/Ladezeitoptimierung/Cache.php 912ec803b2ce49e4a541068d495ab570

Beispiel Plesk

Betrachten wir das Anlegen des CronJobs am konkreten Beispiel Plesk. In der im deutschen Sprachraum gegenüber cPanel weitaus populäreren Server-Verwaltungssoftware heißen CronJobs Geplante Aufgaben.

Beispiel Plesk: So legen Sie den CronJob an.

Auf dem Screenshot sehen Sie, wie das Anlegen eines solchen CronJobs in Plesk aussieht. Da Sie in Plesk PHP-Skript ausführen eigens auswählen können, erübrigt sich die Angabe des auszuführenden Programms. Das heißt, Sie kopieren nicht den im Admin-Menü angezeigten Befehl php /var/www/vhosts/... in das Eingabefeld nach Skriptpfad, sondern eben nur den Pfad /var/www/vhosts/... ohne php.

Als Argument geben Sie mindestens die 32stellige Zeichenkette an, die Ihnen das Modul in der oben zitierten Zeile anzeigt. Diese dient der Authentifizierung und dem Schutz vor Aufrufen des Caching-Scripts durch andere Nutzer.

Beispiel cPanel

Caching-CronJob in cPanel hinzufügen

cPanel nennt CronJobs bei ihrem Namen, schreibt sie allerdings schön abwechselnd mit und ohne Bindestrich. So können Sie im Menüpunkt Cron-Jobs einen Neuen Cronjob hinzufügen.

Wie schon Plesk beitet auch cPanel verschiedene häufig verwendete Einstellungen zum Ausführungsintervall zur Auswahl, so dass die manuelle Eingabe im Crontab-Format nicht erforderlich sein sollte.

Den Pfad zur PHP-Binary können Sie einfach aus den von cPanel vorgegebenen Beispielen kopieren. Statt des im Admin-Menü angezeigten Befehls zur Ausführung via CronJob könnte der Befehl dann in etwa so aussehen:

/usr/local/bin/php /home/meinshop/domain_path/GXModules/Werbe-Markt/Ladezeitoptimierung/Cache.php 912ec803b2ce49e4a541068d495ab570

Aktualisierung erzwingen

Standardmäßig aktualisiert das Caching-Script nur Dateien, wenn diese gemäß Änderungsfrequenz in der Sitemap abgelaufen sind. Wenn Sie also beispielsweise Änderungen an einer Seite vornehmen, die gemäß Einstellung nur wöchentlich geändert wird, kann es bis zu einer Woche dauern, bis die Datei im Cache aktualisiert und ausgegeben wird. Das gilt im Übrigen auch für Preise und deren Darstellung in Kategorien und Artikelseiten.

Sie wissen selbst am besten, wie oft und an welchen Tagen oder zu welchen Uhrzeiten Änderungen vorkommen, die eine Aktualisierung des Caches erfordern. Mit den Auswahlmöglichkeiten zur Änderungsfrequenz sind Sie bereits relativ flexibel:

  • Immer
  • Stündlich
  • Täglich

Dennoch bieten wir als weitere Möglichkeit ein zweites Argument für das Caching-Script. Geben Sie den Befehl wie nachfolgend an, um eine Aktualisierung aller Dateien im Cache zu erzwingen, unabhängig von ihrem Erstellungsdatum und der Änderungsfrequenz:

php /var/www/vhosts/meinshop.de/httpdocs/GXModules/Werbe-Markt/Ladezeitoptimierung/Cache.php 912ec803b2ce49e4a541068d495ab570 force

Gehen Sie mit dieser Option behutsam um und messen Sie die Auslastung von CPU und Arbeitsspeicher. Alle 5 Minuten einen Cache mit 200.000 Seiten vollständig neu aufzubauen ist bestimmt keine gute Idee. Ggf. genügt die tägliche Ausführung nachts oder Sie kommen ganz ohne den force-Parameter aus.

Alte Dateien löschen

Der force-Parameter erzwingt lediglich die Aktualisierung noch benötigter Dateien. Haben Sie jedoch beispielsweise Artikel gelöscht, genügt kein Update des Caches, sondern bedarf es einer Aufräumen-Funktion.

Dieses Aufräumen, das heißt das Löschen nicht mehr benötigter Dateien, übernimmt der cleanup-Parameter. Diesen verwenden Sie ganz ähnlich dem force-Parameter und können die beiden auch kombinieren. Auf diese Weise bringen Sie den Cache beispielsweise einmal täglich in den frühen Morgenstunden auf den neuesten Stand:

php /var/www/vhosts/meinshop.de/httpdocs/GXModules/Werbe-Markt/Ladezeitoptimierung/Cache.php 912ec803b2ce49e4a541068d495ab570 force cleanup

Ausführungsintervall

Wie schon der force-Parameter im vorangegangenen Abschnitt, ist auch das Ausführungsintervall schlichtweg von der Häufigkeit von Änderungen in Ihrem Shop sowie den Einstellungen zur Änderungsfrequenz in der Sitemap abhängig.

Wenn Sie beispielsweise Artikel via Zufallsprinzip auf der Startseite einblenden und die Startseite zugleich die einzige Seite mit Änderungsfrequenz Immer ist, spricht nichts gegen eine minütliche Ausführung des CronJobs.

Ist es eher so, dass Sie Ihren Shop ins Web gestellt, Ihre komplette Produktpalette eingepflegt haben und höchstens wöchentlich Aktualisierungen vornehmen, sollte die tägliche Ausführung des CronJobs genügen.

CronJob (HTTP)

Dies ist die Ausweichlösung, wenn Ihnen die Ausführung von PHP-Skripten oder Befehlen via CronJob nicht zur Verfügung steht. Das Modul zeigt Ihnen die via HTTP aufzurufende URL, die ähnlich aussieht wie diese:

https://ihrshop.de/GXModules/Werbe-Markt/Ladezeitoptimierung/Cache.php?cacheToken=912ec803b2ce49e4a541068d495ab570

Äquivalent zur direkten Ausführung des PHP-Scripts steht Ihnen auch bei der HTTP-Variante der force-Parameter zur Verfügung. Der Aufruf mit force-Parameter erfolgt gemäß diesem Schema:

https://ihrshop.de/GXModules/Werbe-Markt/Ladezeitoptimierung/Cache.php?cacheToken=912ec803b2ce49e4a541068d495ab570&force=1

Selbiges gilt für den cleanup-Parameter zum Löschen nicht mehr benötigter Dateien. Genau wie bei der Ausführung via CLI können Sie diesen statt des cleaup-Parameters nutzen oder in Kombination mit diesem. Letzteres sähe z.B. so aus, wobei die Reihenfolge der Parameter irrelevant ist:

https://ihrshop.de/GXModules/Werbe-Markt/Ladezeitoptimierung/Cache.php?cacheToken=912ec803b2ce49e4a541068d495ab570&force=1&cleanup=1

Von der Art der Ausführung abgesehen gibt es keine weiteren Unterschiede. Es handelt sich um dasselbe Caching-Script, das dieselbe Aufgabe erfüllt. Es gilt lediglich zu beachten, dass für die Ausführung via HTTP strengere Limits gelten können als bei der Ausführung via CLI. So sind schlimmstenfalls mehrere HTTP-Aufrufe erforderlich, um den gesamten Cache zu generieren. Wir haben jedoch erstens auf eine Schonung der Ressourcen geachtet und zweitens darauf, dass auch bei Erreichen der maximalen Ausführzeit Ihr Onlineshop ohne funktionelle Störungen weiter läuft.

Best Practice (Video)