Performance-Optimierungen
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.
- Skript-Laufzeit, Webserver-Anfragen und Datenmenge
- Listen-Cache nutzen
- Dynamische Inhalte und Cache kombinieren
- Data URLs automatisch generieren
- Komprimierte CSS und JS Dateien
- Entpacken im Browser
- CSS und JS komprimieren
- Komprimieren über Apache mod_deflate
- Große Bilder auffinden
- Cache-Entlastung bei Suchmaschinenaufrufen
- OPcache nutzen
Skript-Laufzeit, Webserver-Anfragen und Datenmenge
Der Dev-Blog Artikel "Performance der Webseite optimieren" betrachtet die folgenden drei Bereiche der Performance-Optimierung:
- Reduzierung der Skriptlaufzeit
- Reduzierung der Anfragen
- Reduzierung der zu übertragenden Datenmenge
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.
Listen-Cache nutzen
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.
Dynamische Inhalte und Cache kombinieren
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.
Data URLs automatisch generieren
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.
Komprimierte CSS und JS Dateien
Die Übertragungsgeschwindigkeit lässt sich durch komprimierte CSS
Stylesheets und Javascript Dateien deutlich erhöhen.
Performance-Optimierungen einrichten
Große Bilder auffinden
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.
Cache-Entlastung bei Suchmaschinenaufrufen
Über die zentrale Steuerungsdatei (die pre.php) können Sie diverse Aktionen beim Generieren der Webseiten vornehmen.
Auszug aus der pre.php mit beispielhaften Aktionen zur Cache-Entlastung
// 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');
//}OPcache nutzen
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!
FAQs
- Warum sind Performance-Optimierungen wichtig?
- Performance-Optimierungen verbessern das Benutzererlebnis durch einen schnelleren Seitenaufbau und können das Ranking bei Suchdiensten wie z.B. Google positiv beeinflussen.
- Welche grundlegenden Bereiche werden zur Performance-Optimierung betrachtet?
- Der Artikel betrachtet drei Bereiche: 1) Reduzierung der Skriptlaufzeit, 2) Reduzierung der Anzahl der Anfragen (Requests), 3) Reduzierung der zu übertragenden Datenmenge.
- Wie kann ich den Listen-Cache in Weblication nutzen?
- Weblication® Listen werden vom Seiten-Cache erfasst. In den Listenoptionen kann eine Liste vom Cache ausgeschlossen werden (sinnvoll in Einzelfällen) und eine Gültigkeitsdauer für den Listen-Cache in Sekunden festgelegt werden.
- Was ist ein häufiger Anwendungsfall für Listen-Cache mit dynamischen Inhalten?
- Wenn eine Liste mit dynamischen Inhalten bei einem Seiten-Cache von z.B. 24 Stunden in kürzeren Intervallen aktualisiert werden soll, sollte die Gültigkeitsdauer des Listen-Cache unterhalb der Seiten-Cache-Gültigkeit liegen. So profitiert man trotzdem vom Cache, aber mit kürzeren Aktualisierungsabständen.
- Wie kann ich dynamische Inhalte trotz aktivem Projekt-/Seitencache einbinden?
- Auch bei aktiviertem Projektcache/Seitencache können dynamische Inhalte über PHP generiert werden. So lassen sich statische Inhalte mit personalisierten dynamischen Daten kombinieren.
- Wie helfen Data URLs dabei, die Performance zu steigern?
- Weblication kann auf Wunsch automatisch Data URLs aus Icons generieren. Dadurch sinkt die Anzahl der GET-Anfragen, was die Serverlast reduziert. Die Generierung ist vor allem ein Performance-Instrument durch weniger Anfragen.
- Welche Wirkung haben komprimierte CSS- und JS-Dateien?
- Komprimierte CSS-Stylesheets und Javascript Dateien erhöhen die Übertragungsgeschwindigkeit. Durch Komprimierung reduziert sich die Datenmenge der verbleibenden JS- und CSS-Dateien um ca. 50 bis 80%.
- Was bedeutet „Entpacken im Browser“ in diesem Kontext?
- Moderne Browser unterstützen die Interpretation komprimierter Inhalte. Weblication® CMS liefert Seiten standardmäßig komprimiert aus, und Bilder sind ohnehin komprimiert. In Templates kann der Komprimierungsgrad eingestellt werden.
- Wie kann ich CSS- und JS-Dateien über Apache mod_deflate komprimieren?
- Wenn der Webserver mod_deflate unterstützt, kann die Komprimierung über die projektspezifische .htaccess aktiviert werden, z.B. mit einem Eintrag, der DEFLATE für Dateien mit den Endungen .js und .css nutzt (siehe Beispiel im Artikel).
- Wie finde ich große Bilder in einer Seite heraus?
- Ab CMS-Version 12.x ist in der Siteinfo (über das Panel) sofort ersichtlich, ob eine Seite zu viele große Bilder lädt. Angezeigt werden Anzahl der Bilder sowie Hintergrundbilder und die jeweiligen Summen ihrer Größen.
- Wie kann Cache-Entlastung speziell bei Suchmaschinenaufrufen erfolgen?
- Über eine zentrale Steuerungsdatei (pre.php) lassen sich beim Generieren der Webseiten Aktionen durchführen, z.B. Parameter bei Bot-Aufrufen entfernen oder spezielle Parameter bei Suchmaschinen deaktivieren, um den Cache zu entlasten.
- Was macht OPcache und wie hilft er bei der Performance?
- OPcache ist seit PHP 5.5 bereits installiert und verbessert die Performance. Wenn OPcache aktiviert ist, sinkt der benötigte Speicher und die Skriptlaufzeit wird (oft) zwar nur gering reduziert. In Kombination mit dem Weblication-Cache kann OPcache die Performance jedoch deutlich erhöhen, da die sehr geringe Skriptlaufzeit zusätzlich durch den Opcode Cache reduziert wird.
- Sollte ich OPcache über meinen Provider aktivieren lassen?
- Ja. Der Artikel empfiehlt, beim Provider zu erfragen, wie OPcache in den verwendeten PHP-Installationen genutzt wird (meist über php.ini aktivierbar). Falls OPcache aktiviert ist, kann dies die Performance in Verbindung mit dem Weblication-Cache verbessern.
- Gibt es Hinweise/Probleme bei OPcache mit bestimmten PHP-Setups (Domainfactory)?
- Ja. Beim Provider Domainfactory besteht beim Einsatz von PHP 7.3 Stable FCGI ein Bug in Verbindung mit OPcache. In dem Fall sollte stattdessen PHP 7.2 Stable FCGI verwendet werden.