Shop - Ladezeit beschleunigen - TIP - CDN

[quote=“tschersich”][quote=“klausm”]Hallo ! (…) Der Browser kann ja maximal 2 Verbindungen gleichzeitg zu einer Domain aufbauen. (…) lg klaus[/quote] i.d.R. sind es bei modernen Browsern je nach Typ zwischen 4 und 8 gleichzeitigen Requests pro Subdomain, aber auch das kann mächtig aufhalten. Der IE6 kann bei HTTP 1.1 nur zwei gleichzeitige Verbindungen, bei HTTP 1.0 vier. Das Auslagern der CSS und JS ist nur bei der ersten geladenen Seite effektiv, wenn man Server-Caching (siehe Tutorial Caching Zeiten) angeschaltet hat. Danach bedient sich der Browser aus dem eigenen Cache, bis die Cache-Zeit abgelaufen ist (expires:…) und somit fallen diese Dateien nicht mehr ins Gewicht. Effektiv ist das mit den Subdomains tatsächlich bei den Produktbildern, wenn man diese auf mehrere Subdomains verteilen kann, denn diese sind fast die einzigen Seitenelemente, die auf jeder Seite anders sind und damit bei einem Besuch nur selten mehrfach aufgerufen werden, um aus dem Cache bedient werden zu können.[/quote] Waren es beim IE6 und 7 nur zwei parallele Verbindungen, sind es bei FF 3.6 sechs Verbindungen und bei Opera und Safari acht Verbindungen. Grundsätzlich ist der CDN-Betrieb wunderbar. Aus Erfahrung ist es (zwar in diesem Beispiel nicht geannt, dennoch wissenswert) nützlich, wenn die Daten nicht Random von einem Space geladen werden. Dies verzögert die Auslieferung eher bei jedem Aufruf, als das es etwas beschleunigt (Optimiertes CDN gegen Random CDN; unsecured level). Es macht Sinn, JS, CSS sowie eben innerhalb jeder Größe verschiedene Bilder via CDN zu laden. Doch genau da liegt eben der Haken. Die Bilder sollten immer vom gleichen CDN kommen, was derzeit eben nicht einfach mit Shopware lösbar ist. Okay, das außen vor gelassen, ist es definitiv sinnvoll die JS-Dateien, die CSS und andere statische Inhalte auf verschiedenen Subs zu verteilen. Jedoch sollten Dateien, die zum Rank bzw. vom Rank der Hauptdomain etwas erben sollen, unbedingt mit auf der Hauptdomain liegen. Bei JS- oder CSS-Dateien ist dies bekanntlich irrelevant. Bei den wichtigen und eben großen Produktbildern ist es schon bedeutender. Doch davon werden auf einer Detailsseite bekanntlich wenige gleichzeutig geladen. Dass die Dateien nach einmaligem Aufruf sowieso im Zwischenspeicher liegen ist natürlich richtig, zumindest solange es um eine unverschlüsselte Verbindung geht. Eben so ist es wictig, dass alle zum CDN gehörenden Subs ebenfalls über eine bestehende Verschlüsselung verfügen. Wird ansonsten auf einer eigentlich verschlüsselten Verbindung ein unverschlüsselter Inhalt geladen gibt’s nette Meldungen und für den Benutzer ist die sichere Verbindung augenscheinlich für die Katz. Über die Google App Engine lässt sich dazu ebenfalls ein CDN aufbauen (auch secured), wenn eben das Budget da ist - oder es sich rechnet lieber dort zu spiegeln, anstatt bzw. über einen eigenen Balancer etc. Muss man für sich selbst berechnen, vor allem auch was die wirklich Belastung des Servers angeht. (Kleiner Tipp noch: Für die Google App-Engine wird eine Sub benötigt, via CNAME mag man nicht mehr.) CDN definitiv sinnvoll, zuerst jedoch erst einmal Minification und den Server optimieren. Aus eigener Erfahrung bringt’s da auch nicht unbedingt der PageSpeed-Mod für den Apachen, neben ACP. Spätestens im Backend funktioniert der Mod mit Standard-Konfig leider nur noch bedingt, im Frontend bringt er nicht immer Erfolg - den sollte man jedoch ebenfalls erst optimieren bzw. nutzen, wenn der Rest schon optimiert wurde. EDIT: Ein Eingriff in Shopware mit dem bspw. auch CDN innerhalb einer Bildergröße möglich wäre, die jedoch auf jedem Sub nur einzeln liegen und nicht bspw. via rsync auf allen Subs und Random mit jedem Aufruf ausgegeben werden, wäre, dass man die Bilder beim Upload in explizite Unterordner oÄ. aufteilt, die man dann je Sub einzeln verteilt. Alternativ über einen Index der Session-Abhängig und nicht Request-Abhängig ist. Hauptbilder (Max-Size) sollten dennoch auf der Stammadresse (Folder, nicht Sub) liegen - aus SEO-Sicht. Aber aus SEO-Sicht wäre der Bildname durch Upload im Backend (nicht WaWi) noch wichtiger. :wink: Viele Grüße