Performance-Optimierung einer TYPO3-Seite – ein Zwischenstand

Ich bin wieder einen Schritt weiter in der Performance-Optimierung einer TYPO3-Seite.

Am meisten genutzt hat dabei die Aktivierung von Expires-Header, die den Browser anleiten bestimmte Elemente (Bilder, Javascript, usw.) zu Cachen. Falls nicht bereits für den Webserver global aktiviert kann man die Einstellungen in der .htaccess-Datei vornehmen. Ein Beispiel gibt es auf snipplr.com.

Weiterhin gilt es unnötigen Code zu entfernen. Das gilt für CSS, Javascript, aber auch nicht benötigte TYPO3-Extension sollte man deaktivieren.

Die Website sollte möglichst aus Cache-baren Elementen bestehen, wenn möglich sollte man in TYPO3 auf USER_INT, COA_INT usw. verzichten.

Für Cache-bare Resourcen wie Bilder kann man eine “statische” Subdomain einrichten, etwa static.meinedomain.com. Für diese Anfragen werden keine Cookie-Daten mitgesendet.

Durch diese Punkte hat sich das Ergebnis in YSlow, einer Firefox-Erweiterung, von Note D oder E auf B verbessert.

Nun habe ich die TYPO3-Extension scriptmerger aktiviert. Je nach Konfiguration muss vor der Aktivierung die .htaccess-Datei erneut erweitert werden (siehe Doku). scriptmerger kann jeweils alle Javascript und alle CSS-Dateien verkleinern, zusammenfassen und komprimieren. Unter Umständen muss man einige Funktionen deaktivieren, wenn diese nicht vom Server unterstützt werden oder den Code anpassen. Mehr zu scriptmerger gibt es z.B. auf typo3blogger.de.
Die Ergänzung verbessert die YSlow-Note auf A. Die Methode musste aber auf vereinzelten größeren Seiten abgeschwächt werden, da sonst die PHP-Speichergrenze erreicht wird (PHP-Fehler, Script-Abbruch).

Dies muss jedoch nicht das Ende der Performance-Verbesserung sein. Hier mal ein paar mögliche weitere Schritte:

  • Quelltext-Optimierung
  • Sprites einsetzen: mehrere Hintergrund-Grafiken zusammenfassen
  • Auslieferung von statischen Webseiten
  • CDN verwenden
  • MySQL-/Datenbank-Optimierung

iPhone-User simulieren im Browser

Heutzutage bieten schon einige Websites spezielle Layouts für mobile Geräte an. Dabei ist natürlich auch das iPhone nicht unwichtig. Für einige System, z.B. WordPress, gibt es Erweiterungen, die eine Ansicht für iPhone-Benutzer generieren.

Bei meinen Tests habe ich herausgefunden, dass die Darstellung oft vor allem vom User-Agent abhängt. Das ist im Grunde eine Info, die Browser und weitere Programme dem Server mitsenden.

Für die Entwicklung und das erste Testen kann man bei vielen Browsern den User-Agent ändern. In Safari muss man das Entwickler-Menü einblenden und den gewünschten “Browser-Typ” wählen, in Firefox kann man über Eingabe about:config die Einstellung general.extra.useragent.firefox um “iPhone” erweitern (ohne Anführungszeichen). Dabei ist i.A. auf Groß-/Kleinschreibung zu achten, d.h. “IPHONE” funktioniert nicht überall.

Für viele Websites reicht das schon, um auf die iPhone-Darstellung zu wechseln. Das Testen in einer richtigen Testumgebung oder gleich im iPhone erspart man sich dadurch noch nicht.

Übrigens verwende ich hier das WordPress-Plugin WPtouch iPhone Theme, die mobile Fassung von www.bekomedia.com ist derzeit in Arbeit bzw. wird überarbeitet und erweitert.

T fehlt – mal anders

Es heißt Lichterkette und nicht Licherkette!

Badesalz in “Guter Wille”, Album: Diwodaso

Letzte Woche hab ich mich an den Badesalz-Track erinnert. Nur bei mir war es andersherum. Es fehlte nicht ein T, sondern ich habe ein kleines T zu viel geschrieben. Dies führte dazu, dass der Befehl bzw. die Konfiguration falsch wurde und das Linux-System nicht mehr normal gestartet werden konnte. Erstaunlich, was ein einzelner Buchstabe auslösen kann. Da hat sich das Prinzip mal wieder bewährt, Änderungen zuerst an einem Testsystem vorzunehmen.

Power on by Keyboard

Ich habe gerade im BIOS die Einstellung “Power On By Keyboard” aktiviert. Nun wird der Computer mit einem Tastendruck gestartet. Das ist jetzt natürlich keine wichtige Änderung, aber ganz nützlich. Zum Starten muss ich mich nicht mehr bücken (interessant im Krankheitsfall). Außerdem muss man im Dunkeln nicht den Schalter suchen – irgendeine Taste auf der Tastatur wird man auch so finden…

Das ganze funktioniert selbstverständlich nur, wenn das Netzteil Strom erhält. Außerdem muss das Netzteil so eine Funktion durch ausreichend Ampére unterstützen.