Veröffentlichungsdatum: 30. Dezember 2017
Änderungsdatum: 21. Dezember 2020
weblication cms performance optimierungen cache ladezeiten seitenaufbau
Dieser Artikel beschreibt Möglichkeiten, die Ihnen zur Verfügung stehen, um die Performance einer Webseite teils deutlich zu erhöhen.
Performance-Optimierungen bringen für Ihre Seitenbesucher ein besseres Benutzererlebnis durch schnelleren Seitenaufbau und Ihrer Webseite ein besseres Ranking bei Suchdiensten wie z.B. Google.
Zur Performance-Optimierung eines Web Projektes sind je nach Projekt unterschiedliche Faktoren zu berücksichtigen. Nicht jede Optimierung ist immer sinnvoll und nicht jeder Aufwand immer
gerechtfertigt. Oft lassen sich allerdings enorme Performance-Verbesserungen bei geringem Aufwand erreichen und so
Webserver, Netzwerke und Endgeräte entlasten.
Der Dev-Blog Artikel "Performance der Webseite optimieren" betrachtet die folgenden drei Bereiche der Performance-Optimierung:
Beachten Sie die aufgezeigten Möglichkeiten im o.g. Artikel, um grundlegende Performanceverbesserungen zu erreichen. Ergänzend hierzu finden Sie auch weiter unten eine Möglichkeit, den Cache bei z.B. Aufrufen von Suchmaschinen zu entlasten.
Weblication® Listen werden vom Seiten-Cache auch erfasst. In den Listenoptionen lässt sich eine Liste aber auch vom Cache ausschliessen, was im Einzelfall sinnvoll sein kann. Weiterhin lässt sich hier auch eine Gültigkeitsdauer für den Listen-Cache in Sekunden einstellen.
Ein häufiger Anwendungsfall ist, dass eine Liste mit dynamischen Inhalten sich bei eingestelltem Seiten-Cache von 24 Stunden in kürzeren Intervallen ändern soll.Um den Performancevorteil des Cache aber auch bei der Liste nutzen zu können, definieren Sie eine Gültigkeitsdauer, welche unterhalb der des Seiten-Cache liegt. Somit nutzen Sie den Cache auch bei Listen, welcher aber in anderen Abständen neu aufgebaut wird.
Auch in Seiten mit aktivem Projektcache / Seitencache können dynamische Inhalte über PHP
generiert werden. So lassen sich statische Inhalte mit personalisierten
dynamischen Daten kombinieren.
Möglichkeiten der Performance-Optimierung beschreibt dieser DevBlog-Artikel.
Weblication generiert Ihnen nun auf Wunsch automatisch Data URLs aus
Icons, um so die Anzahl der GET-Anfragen zu reduzieren. Durch die
reduzierte Anzahl der GET-Anfragen sinkt die Serverlast. Es handelt sich
bei der Generierung von Data URLs also in erster Linie um ein
Instrument zur Steigerung der Performance, welcher dieser DevBlog-Artikel beschreibt.
Die Übertragungsgeschwindigkeit lässt sich durch komprimierte CSS
Stylesheets und Javascript Dateien deutlich erhöhen.
Praktisch alle modernen Browser unterstützen die Interpretation komprimiert ausgelieferter Inhalte. Seiten werden für diese Browser von Weblication® CMS bereits standardmäßig komprimiert und Bilder sind inzwischen sowieso komprimiert. Hier können Sie in den Templates zudem den Komprimierungsgrad einstellen.
Übrig bleiben also neben Seiten und Bildern vor allem noch JS- und CSS-Dateien. Da diese nicht über PHP interpretiert werden, müssen sie vom Apache Webserver komprimiert werden. Durch die Komprimierung reduziert sich die Menge der zu übertragenden Daten um ca. 50 und 80%.
Wenn Ihr Webserver mod_deflate unterstützt können Sie die Komprimierung sehr einfach aktivieren. Dazu genügt der folgende Eintrag in der projektspezifischen .htaccess Datei.
<IfModule mod_deflate.c> <FilesMatch "\.(js|css)$"> SetOutputFilter DEFLATE </FilesMatch> </IfModule>
Ab CMS-Version 12.x ist für Redakteure in der Siteinfo über das Panel sofort
ersichtlich, ob in einer Seite zu viele große Bilder geladen werden
müssen. Dazu wird die Anzahl der Bilder und Hintergrundbilder sowie die
Summen derer Größen angezeigt.
Über die zentrale Steuerungsdatei (die pre.php) können Sie diverse Aktionen beim Generieren der Webseiten vornehmen.
// Löscht bestimmte Parameter, falls die Seite über einen Bot aufgerufen wurden
//if(wRequest::isProbablyBot()){
// wRequest::removeParameter('pageId\w*');
// ggf. Temporäre Weiterleitung
//wResponse::redirect($_SERVER['REQUEST_URI']);
//}
// ...
// Projektspezifische Funktionen einbinden
include_once($_SERVER['DOCUMENT_ROOT'].'/[IHR-LAYOUT-PROJEKT]/wGlobal/scripts/php/wMyProject.php');
// ...
// Falls spezielle Parameter bei Suchmaschinen deaktiviert werden sollen, um so u.a. den Cache zu entlasten.
//if(wRequest::isProbablyBot()){
// wRequest::removeParameter('selectedDay');
// wRequest::removeParameter('selectedMonth');
// wRequest::removeParameter('selectedYear');
//}
Seit PHP-Version 5.5 ist der OPcache bereits installiert und erreicht damit teils deutlich bessere Performance..
Erfragen Sie bei Ihrem Provider, wie der OPcache in den zur Verfügung gestellten PHP-Installationen genutzt werden kann (meist über php.ini aktivierbar).
Ist der OPcache
aktiviert, führt dies generell zu einer deutlichen Reduzierung des
benötigten Speichers. Die Skriptlaufzeit wird absolut gesehen zwar meist
unmerklich reduziert. In Verbindung mit dem Weblication-Cache, kann der
OPcache die Performance allerdings enorm verbessern, da die ohnehin
sehr geringe Skriptlaufzeit durch den Opcode Cache nochmals reduziert
wird.
Bem Provider Domainfactory besteht beim Einsatz von PHP 7.3 Stable FCGI ein Bug in Verbindung mit OPcache, weshalb die Version PHP 7.2 Stable FCGI verwendet werden sollte!