Blog

Blog

So geht TYPO3-Performance im Jahr 2019

Dass gute Geschwindigkeit einen wichtigen Faktor für die Google-Platzierung darstellt, ist inzwischen weithin bekannt. Doch auch die Zunahme der mobilen Nutzung (schon 2016 hat die mobile Nutzung von Websites die Desktop-Nutzung überholt!) in Verbindung mit weiten Regionen, in denen LTE eben noch nicht verfügbar ist, macht eine schlanke und schnelle Website wichtiger denn je. Wir verraten, was 2019 State of the Art für TYPO3 Website Performance ist.

Hier stecken die Potenziale

Es gibt diverse Bausteine, die für eine gut funktionierende Website zu beachten sind – und viele davon greifen ineinander. Generell kann man die folgenden Bereiche unterscheiden:

  1. Infrastruktur (Hardware und Software / "Middleware")
  2. „Frontend” Programmierung, Bausteine und Browser-Aufgaben
  3. „Backend” Programmierung, TYPO3-Setup und Datenbank

Nachfolgend erklären wir wichtige neue (oder für viele Websites besonders nützliche) Entwicklungen.

1. Infrastruktur

TYPO3 verwendet drei Hauptelemente zum Ausführen einer Website: den HTTP-Server, PHP (als Teil des ersteren) und die SQL-Datenbank. Hinzu kommt das Netzwerk. Jeder dieser Bereiche verfügt über zahlreiche Möglichkeiten, die Performance zu optimieren.

Unsere besonderen Favoriten in 2019:

  • HTTP/2 mit Server Push: Die Übertragung der Komponenten über das Netzwerk passiert bisher immer dann, wenn man z.B im Browser etwas anklickt. Durch HTTP/2 inklusive „Server Push” wird dies ergänzt um eine möglichst intelligente und proaktive Übertragung der nächsten Daten bzw. der relevanten Ausschnitte davon.
  • Redis: Gerade für große Auftritte lohnt es sich, bestimmte Daten in einem gesonderten, blitzschnellen Speicher vorzuhalten und dadurch nicht nur ein herausragendes zusätzliches Caching zu haben, sondern auch die Verteilung über mehrere Server (TYPO3-Cluster) zu vereinfachen.
  • Brotli: Mit diesem neuen Verfahren können die Daten für die Übertragung zwischen Server und Browser erheblich besser komprimiert werden - 20% weniger Bytes als mit bisher verfügbaren Algorithmen! Achtung: Brotli ist noch nicht auf allen Server-Plattformen verfügbar.

Weitere Maßnahmen, hier nicht im Detail beschrieben: Static File Cache, CDN (Content Delivery Network), Datenbank-Tuning, Server-Aufrüstung (besonders einfach in virtualisierten Umgebungen), Server-Cluster, ...

2. Frontend

Vor allem in Übertragung und Darstellung (Rendering) der Daten zum bzw. durch den Browser gibt es zahlreiche Optimierungsmöglichkeiten – folgend eine Auswahl der aktuellsten Instrumente:

  • WebP: Ein optimiertes Bild-Dateiformat für erheblich besser komprimierte Bilder; kann durch TYPO3 automatisch verwendet werden und ist  somit für Redakteure gar nicht zu bemerken. WebP und wird bereits von allen wichtigen Browsern unterstützt (ansonsten wird wie bisher ein „klassisches” Grafikformat übertragen).
  • srcset: Bilder werden serverseitig automatisch in der für das Endgerät sinnvolle Größe gesendet: Warum sollte ich ein Bild in „riesiger” Desktop-Qualität übermitteln, wenn es doch nur auf einem Smartphone angezeigt wird?
  • Lazy Loading: Das Laden nicht kritischer Ressourcen wird zum Zeitpunkt des Ladens der Seite verzögert und erst im Moment des Bedarfs geladen.

Weitere Maßnahmen, hier nicht im Detail beschrieben: Ressource Hints, dynamische Inhalte in statischen Seiten nachladen, optimierte Webfont-Einbindung, JavaScript, SVG Sprites, WebPack, ...

3. Backend

Auch im Hintergrund, z.B. in der Business-Logik, ist eine Menge herauszuholen:

  • Intelligente Architektur mit Datencaching und Microservices: Wo viel Performance benötigt wird, sollte zum einen auf optimales internes Caching geachtet werden, zum anderen sollten die beteiligten Komponenten isoliert und dadurch einzeln skalierbar werden.
  • PHP Profiling: Durch die methodische Untersuchung des internen Performance-Verhaltens lassen sich z.B. langsame Datenbankabfragen oder ein nicht aktiver Cache schnell aufspüren. Auch kann generell erkannt werden, welche Teile des Codes langsam sind und einen Geschwindigkeitsschub gebrauchen könnten. Manche Profiling-Tools sammeln auch Informationen darüber, wie viel Speicher verwendet wird und welche Funktionen und Methoden ihre Speichernutzung erhöhen.

Weitere Maßnahmen, hier nicht im Detail beschrieben: TypoScript optimieren, compressionLevel, MySQL-Abfragen optimieren, Logging auf sinnvolles Minimum beschränken, keine TYPO3-Mountpoints, ...

TYPO3-Performance messen

Um den Ist-Zustand und Potenziale zu identifizieren, kann man diverse hilfreiche Tools heranziehen. Unser Favorit für einen ersten, schnellen Überblick: Google Lighthouse. Neben Performance kann dieses Werkzeug auch Barrierefreiheit, Implementierungsgrad von Progressive Web-Apps und vieles mehr untersuchen. Für die Performance-Prüfung benötigt man lediglich die URL der Seite; anschließend wird ein ausführlicher Bericht über die Leistung generiert, der auch Tipps beinhaltet, wie eventuelle Schwächen behoben werden können.

Es soll aber nicht verschwiegen werden, dass die Interpretation der Ergebnis eine Wissenschaft für sich ist: nicht nur „Was bedeutet das inhaltlich?”, sondern auch „Wie ist das in meinem Falle zu bewerten?” sowie „Wie viel Aufwand stünde hier wie viel Nutzen gegenüber?”

Viel Performance mit wenig Aufwand: Wir beraten Sie gern

Je nach Ausgangszustand lassen sich in den meisten Fällen mit überschaubarem Aufwand 20 bis 40 Prozent Geschwindigkeitszuwachs erzielen – wo echte „Schnitzer” oder Altlasten vorliegen, noch sehr viel mehr.

Wenn Sie Ihre Website-Performance auf den aktuellsten Stand bringen möchten, unterstützen wir natürlich gern. Wie wäre es mit einer kostenfreien Bestandsaufnahme und Maßnahmenvorschlägen? Sprechen Sie uns an!

Ihr Browser ist veraltet!

Bitte aktualisieren Sie Ihren Browser, um diese Website korrekt dazustellen. Den Browser jetzt aktualisieren

Diese Webseite verwendet Cookies und das Webanalyse-Tool Google Analytics. Durch die Nutzung unserer Seiten erklären Sie sich damit einverstanden.

Eine Widerspruchsmöglichkeit finden Sie in unserer Datenschutzerklärung.
Einverstanden