- Offizieller Beitrag
Hier nun mal ein Ansatz, einen xt:Commerce oder commerce:SEO mit mehr als 10.000 Artikeln auf die Sprünge zu helfen (bei weniger hilft das aber auch), wenn man nicht gerade eine eigene und gut dimensionierte Power-Maschine sein Eigen nennt.
Was ist die Idee:
Der integrierte Cache ist ja mitunter nicht 100% so, wie man es gern haben möchte und er erzeugt auch eine riesen Menge an Dateien im cache Ordner. Alle Produkte einzeln zu cachen macht eigentlich auch nicht viel Sinn, da ja oft Änderungen an diesen vorgenommen werden. Was sich hingegen kaum ändert, sind die Kategorien, Bestseller und die Content-Verlinkungen. Man mag es kaum glauben, aber die Bestsellers-Box bremst bei so einem Shop erheblich die Performance aus, da hier doch sehr komplexe Datenbank Abfragen gemacht werden. Man kann diese zwar generell abschalten, aber viele wollen eben genau das nicht.
Wie kann mal also den Cache trotzdem sinnvoll nutzen?
Der Lösungsansatz:
Man cached nur einen Teil des Shops und nur die Boxen, die Sinn machen.
Die Erfahrung:
Wir haben bereits bei mehreren Kunden diesen Ansatz umgesetzt und erhebliche Performance-Verbesserungen festgestellt.
Vorbereitung: BACKUP der Dateien!!!
Die Umsetzung:
Schritt 1:
Im Template Ordner gehen wir als 1. in die Datei:
/templates/TEMPLATENAME/source/boxes.php
und fügen dort vor der Zeile:
folgendes hinzu:
Damit wird der Cache generell erst mal eingeschaltet für die Boxen. Nun müssen wir den einzelnen Boxen aber noch mitteilen, das diese cachen sollen.
Schritt 2:
Box Bestsellers:
/templates/TEMPLATENAME/source/boxes/best_sellers.php
Folgende Zeile suchen:
Und ERSETZEN mit:
Schritt 3:
Box Categories:
/templates/TEMPLATENAME/source/boxes/categories.php
Folgende Zeile suchen:
Und ERSETZEN mit:
if (!CacheCheck() !FORCE_CACHE) {
[/code]
Schritt 4:
Box Informaton:
/templates/TEMPLATENAME/source/boxes/information.php
Folgende Zeile suchen:
Und ERSETZEN mit:
Schritt 5:
Box Content:
/templates/TEMPLATENAME/source/boxes/content.php
Folgende Zeile suchen:
Und ERSETZEN mit:
So und jetzt mal testen. Hier sollte man nun eine deutliche Verbesserung der Performance feststellen.
Zusammenfassung:
Was haben wir also getan? Wir haben den Cache generell für die Boxen eingeschaltet, aber nur den Boxen Bestsellers, Categories, Information und Content den Cache auch wirklich verpasst. Die anderen Boxen machen wenig Sinn, da diese doch sehr dynamisch sind und bleiben sollten. Kategorien, Content und die Bestsellers ändern sich hingegen kaum. Worauf greien wir dabei zurück? Hier wird auf die Shopeinstellung für den Cache zurück gegriffen, aber nur die Lebenszeit des Cache (Standard = 3600 Sekunden). Das muss man an der Stelle im Hinterkopf behalten, da bei Änderungen in den Boxen erst nach 3600 Sekunden die entsprechende Box neu geladen wird, sofern es Änderungen gibt.
Hinweis: Wir haben Die Idee übernommen und weiter ausgebaut.