Hallo zusammen,
ich bin kürzlich von XTC auf den JTL Shop umgestiegen. Da der Shop auf dem alten Server eine viel zu hohe Serverresponsetime hatte, habe ich mir einen richtig kräftigen Root-Server gemietet mit 12 Kernen, 48 GB RAM, Raid 10, 500 MBit Bandbreite, etc. Hat den Shop aber kaum beschleunigt. Dann habe ich verschiedene Tools versucht, wie den eAccelerator, der PHP Scripts fertig kompiliert im Speicher behalten soll - keine Besserung. Nun habe ich nginx versucht, dass sich als eine Art Proxy vor den Apache schaltet, um die Zugriffszeit zu verbessern. Brachte eine minimale Verbesserung. Am hilfreichsten war es noch, so viele Plugins wie möglich abzuschalten. Aber nach wie vor habe ich eine Responsetime zwischen 500 - 900 ms bei der Startseite. Von den Produktlisting-Seiten wollen wir gar nicht erst sprechen - hier liegt die Zeit immer über 1,2 Sekunden.
Es ist wohl kein Geheimnis, dass die Antwortzeit einer Seite einer der Rankingfaktoren bei Google ist. Braucht eine Seite zu lange für eine Antwort, geht Google davon aus, dass die User-Experience Mist ist und rankt die Seite entsprechend schlechter.
Hier muss also dringend am Shop gearbeitet werden, denn wer einen Shop betreibt ist auf ein gutes Ranking angewiesen.
Bei meinem XTC Shop habe ich den Shop komplett angepasst, damit er mit Smarty 3 lief - das brachte einen enormen Geschwindigkeitszuwachs. Ich habe das auch beim JTL Shop versucht, aber das ist nicht mal eben erledigt und ich befürchte, dass man hier auch massiv in die Systemdateien eingreifen muss.
Mit dem Smarty Debugger habe ich mir mal angeschaut, was da so an Variablen gefüllt wird und bin fast umgefallen. Besonders die Zahlungsplugins (die nunmal leider aktiviert sein müssen, um diese Zahlungsarten anzubieten) füllen hunderte Variablen, die auf jeder Shopseite wieder bereit gestellt werden. Das muss meiner Meinung doch gar nicht sein. Warum werden diese Plugins nicht erst dann geladen, wenn es wirklich um die Zahlung geht? In meinem Fall sind die Plugins von Heidelpay und klarna.
Außerdem bin ich mir sicher, dass im Hintergrund des Shops vieles läuft, was Rechenzeit benötigt und nicht zwingend gebraucht wird. Hier wäre bspw. ein "Turbo-Knopf" im Backend schön, um alles überflüssige, wie Statistiken, Zugriffe, etc abschalten zu können.
Bei XTC war es zudem so, dass es zwei Cache-Verzeichnisse für Smarty gab. Einmal für die Templatedateien und ein zweites für fertig berechnete Seitenteile, die sich nicht ändern und daher nicht bei jedem Aufruf neu berechnet werden. Ich denke, auch hier ist ein großes Potential, um da noch Geschwindigkeit raus zu holen. Es müssen ja nicht jedes mal die Kategorien neu aus der Datenbank gelesen werden oder die Inhaltsseiten, oder, oder, oder. Im Grunde ändert sich doch recht wenig im Shop und kann daher statisch hinterlegt werden.
Ich halte es daher für sehr wichtig, dass JTL hier dringend an der Performance des Shops arbeitet, um wettbewerbsfähig zu sein. Ich habe Bekannte, die ebenfalls einen Shop bereiben, gerne auf JTL umsteigen würden, aber auf Grund der nicht vorhandenen Performance des Shops dies nicht tun.
Daher wäre dies meiner Meinung nach die ToDo-Liste:
- Caching besser nutzen
- Smarty-Update von 2 auf 3
- unnütze / überflüssige Funktionen abschalten können
- bessere Einbindung von Plugins, so dass diese nur dann geladen werden, wenn die Daten daraus auf der aktuellen Seite auch tatsächlich benötigt werden
Keine Ahnung, ob sowas überhaupt geht, aber vielleicht kann man zumindest schon mal einen Header rausschicken, wenn eine Seite aufgerufen wird, noch bevor die Seite berechnet wird, damit der Client weiß: ah, da kommt was und die Responsetime damit minimal ist.
Was sagt ihr dazu? Habt ihr noch Vorschläge, wie man die Performance verbessern kann?
ich bin kürzlich von XTC auf den JTL Shop umgestiegen. Da der Shop auf dem alten Server eine viel zu hohe Serverresponsetime hatte, habe ich mir einen richtig kräftigen Root-Server gemietet mit 12 Kernen, 48 GB RAM, Raid 10, 500 MBit Bandbreite, etc. Hat den Shop aber kaum beschleunigt. Dann habe ich verschiedene Tools versucht, wie den eAccelerator, der PHP Scripts fertig kompiliert im Speicher behalten soll - keine Besserung. Nun habe ich nginx versucht, dass sich als eine Art Proxy vor den Apache schaltet, um die Zugriffszeit zu verbessern. Brachte eine minimale Verbesserung. Am hilfreichsten war es noch, so viele Plugins wie möglich abzuschalten. Aber nach wie vor habe ich eine Responsetime zwischen 500 - 900 ms bei der Startseite. Von den Produktlisting-Seiten wollen wir gar nicht erst sprechen - hier liegt die Zeit immer über 1,2 Sekunden.
Es ist wohl kein Geheimnis, dass die Antwortzeit einer Seite einer der Rankingfaktoren bei Google ist. Braucht eine Seite zu lange für eine Antwort, geht Google davon aus, dass die User-Experience Mist ist und rankt die Seite entsprechend schlechter.
Hier muss also dringend am Shop gearbeitet werden, denn wer einen Shop betreibt ist auf ein gutes Ranking angewiesen.
Bei meinem XTC Shop habe ich den Shop komplett angepasst, damit er mit Smarty 3 lief - das brachte einen enormen Geschwindigkeitszuwachs. Ich habe das auch beim JTL Shop versucht, aber das ist nicht mal eben erledigt und ich befürchte, dass man hier auch massiv in die Systemdateien eingreifen muss.
Mit dem Smarty Debugger habe ich mir mal angeschaut, was da so an Variablen gefüllt wird und bin fast umgefallen. Besonders die Zahlungsplugins (die nunmal leider aktiviert sein müssen, um diese Zahlungsarten anzubieten) füllen hunderte Variablen, die auf jeder Shopseite wieder bereit gestellt werden. Das muss meiner Meinung doch gar nicht sein. Warum werden diese Plugins nicht erst dann geladen, wenn es wirklich um die Zahlung geht? In meinem Fall sind die Plugins von Heidelpay und klarna.
Außerdem bin ich mir sicher, dass im Hintergrund des Shops vieles läuft, was Rechenzeit benötigt und nicht zwingend gebraucht wird. Hier wäre bspw. ein "Turbo-Knopf" im Backend schön, um alles überflüssige, wie Statistiken, Zugriffe, etc abschalten zu können.
Bei XTC war es zudem so, dass es zwei Cache-Verzeichnisse für Smarty gab. Einmal für die Templatedateien und ein zweites für fertig berechnete Seitenteile, die sich nicht ändern und daher nicht bei jedem Aufruf neu berechnet werden. Ich denke, auch hier ist ein großes Potential, um da noch Geschwindigkeit raus zu holen. Es müssen ja nicht jedes mal die Kategorien neu aus der Datenbank gelesen werden oder die Inhaltsseiten, oder, oder, oder. Im Grunde ändert sich doch recht wenig im Shop und kann daher statisch hinterlegt werden.
Ich halte es daher für sehr wichtig, dass JTL hier dringend an der Performance des Shops arbeitet, um wettbewerbsfähig zu sein. Ich habe Bekannte, die ebenfalls einen Shop bereiben, gerne auf JTL umsteigen würden, aber auf Grund der nicht vorhandenen Performance des Shops dies nicht tun.
Daher wäre dies meiner Meinung nach die ToDo-Liste:
- Caching besser nutzen
- Smarty-Update von 2 auf 3
- unnütze / überflüssige Funktionen abschalten können
- bessere Einbindung von Plugins, so dass diese nur dann geladen werden, wenn die Daten daraus auf der aktuellen Seite auch tatsächlich benötigt werden
Keine Ahnung, ob sowas überhaupt geht, aber vielleicht kann man zumindest schon mal einen Header rausschicken, wenn eine Seite aufgerufen wird, noch bevor die Seite berechnet wird, damit der Client weiß: ah, da kommt was und die Responsetime damit minimal ist.
Was sagt ihr dazu? Habt ihr noch Vorschläge, wie man die Performance verbessern kann?