Viele Website-Betreiber und TYPO3-Administratoren sind mit Ladezeit und Performance der eigenen TYPO3 Internetseite nicht zufrieden. Aus diesem Grund lohnt es sich ein wenig Zeit zu investieren und sich näher mit dem Thema Performance-Optimierung für TYPO3 auseinanderzusetzen.
Warum müssen TYPO3 Webseiten optimiert werden?
Studien belegen, dass über 53 % der mobilen Nutzer eine Website verlassen, wenn die Ladezeit mehr als drei Sekunden beansprucht. Braucht Ihre Seite länger, gehen Ihnen durch eine erhöhte Absprungrate unter Umständen wertvolle Leads oder Umsätze verloren. Source
Darüber hinaus sind für Google die sogenannten Core Web Vitals ein bestätigter Ranking-Faktor. Seit März 2024 hat Google die Metrik FID (First Input Delay) durch INP (Interaction to Next Paint) ersetzt. Die drei aktuellen Core Web Vitals sind:
- Largest Contentful Paint (LCP): Ladeperformance – Zielwert unter 2,5 Sekunden
- Interaction to Next Paint (INP): Reaktionsfähigkeit – Zielwert unter 200 Millisekunden
- Cumulative Layout Shift (CLS): Visuelle Stabilität – Zielwert unter 0,1
Webseiten, die diese Schwellenwerte nicht erreichen, werden in den Suchergebnissen benachteiligt. Google nutzt Core Web Vitals als „Tie-Breaker" zwischen Seiten mit ähnlicher Inhaltsqualität – wer bessere Werte hat, rankt höher. Source Source
Die Analyse Ihrer TYPO3 Anwendung
Um eine Website effektiv optimieren zu können, muss zunächst konkret festgestellt werden, wie die betreffende Website performt und wo Schwachstellen vorliegen. Das geht am besten mit speziellen Tools:
- Google PageSpeed Insights: Das bekannteste Tool von Google, das direkt Core Web Vitals-Daten aus dem Chrome User Experience Report (CrUX) einbezieht.
- WebPageTest: Detaillierte Wasserfall-Analysen mit Standortauswahl weltweit.
- GTmetrix: Kombiniert Lighthouse-Daten mit eigenen Performance-Metriken.
- Pingdom Tools: Schnelle Übersicht über Ladezeiten und Requests.
Achten Sie bei allen Tools auf den Standort der Testserver. Wählen Sie einen Server, der Ihnen und Ihren Website-Besuchern am nächsten liegt, um realistische Ergebnisse zu erhalten.
Alternativ können Sie die Entwickler-Werkzeuge der Browser (insbesondere den Lighthouse-Tab in Chrome DevTools) nutzen. Dort finden Sie auch detaillierte Core Web Vitals-Auswertungen.
So optimieren Sie die Performance Ihrer TYPO3 Webseite
TYPO3 Konfiguration
Tipp 1: TYPO3-Cache aktivieren
Ein einfacher Tipp, der zu einer schnelleren Ladezeit beiträgt, ist die Aktivierung des internen Caching-Systems von TYPO3. Die gesamte Webseite wird zwischengespeichert und bei unverändertem Inhalt schnell aus dem Cache ausgeliefert.
Achten Sie darauf, dass unerfahrene Entwickler es gelegentlich versäumen, den Cache nach der Fertigstellung der TYPO3 Website wieder zu aktivieren.
config.no_cache = 0
Wichtig: Halten Sie die Anzahl von _INT-Objekten (COA_INT, USER_INT) auf ein absolutes Minimum. Diese verhindern das vollständige Caching einer Seite und zwingen TYPO3 in eine zweite Rendering-Runde. Seiten mit dynamischen Elementen wie Kontaktformularen oder Warenkörben sollten explizit vom Cache ausgenommen werden. Source
Tipp 2: Optimieren des TYPO3-Caches
TYPO3 wird mit mehreren Caching-Backends ausgeliefert. Die Hauptunterscheidung besteht darin, wo die Daten zwischengespeichert werden: im Dateisystem, in der Datenbank oder auf einem separaten Caching-Server. Die schnellsten Caching-Systeme speichern Daten im RAM.
Standardmäßig nutzt TYPO3 Datei- und Datenbank-basiertes Caching. Für deutlich bessere Performance empfehlen wir den Einsatz von Redis oder Memcached:
- Redis ist ein Hybrid: Es speichert Daten im RAM und optional zusätzlich im Dateisystem. Nach einem Server-Neustart können die Daten so direkt wieder ausgeliefert werden.
- Memcached speichert ausschließlich im RAM und ist nach einem Neustart leer.
Wird ein datenbankbasiertes Cache-System eingesetzt, sollten Sie einen Scheduler-Task einrichten, der die Caching-Tabellen regelmäßig von alten Einträgen bereinigt. Standardmäßig werden alle Caching-Datensätze unbegrenzt aufbewahrt, was die Datenbankperformance mit der Zeit verschlechtert. Source
Tipp 3: Statisches Datei-Caching
Neben dem internen TYPO3-Cache lohnt der Blick auf die Extension staticfilecache (aktuell Version 15.x, kompatibel mit TYPO3 v12 und v13). Diese Extension erstellt statische HTML-Dateien aus gecachten Seiten und leitet Besucher direkt auf diese Dateien um – ohne TYPO3 überhaupt zu laden. Der Performance-Gewinn kann laut Hersteller den Faktor 230 erreichen.
Alternativ kann für hochfrequentierte Seiten auch Varnish als HTTP-Accelerator eingesetzt werden, der als Reverse Proxy vor dem Webserver arbeitet. Source Source
Tipp 4: Bildoptimierung
Bilder sind nach wie vor eine der Hauptursachen für langsame Webseiten. Mit TYPO3 v13 LTS stehen Ihnen jetzt deutlich bessere Möglichkeiten zur Verfügung:
Moderne Bildformate nutzen:
- WebP wird seit TYPO3 v13 nativ unterstützt – alle modernen Browser unterstützen WebP vollständig. Ein Polyfill für ältere Browser ist nicht mehr nötig.
- AVIF wird in TYPO3 v13.3+ für GIFBUILDER-generierte Bilder unterstützt und bietet eine noch bessere Komprimierungsrate als WebP.
- JPG bleibt als Fallback relevant, PNG sollte nur bei Transparenzen verwendet werden. Source Source
Lazy Loading aktivieren:
Seit TYPO3 v10 unterstützt TYPO3 natives Browser-Lazy-Loading. Bei Fluid Styled Content ist loading="lazy" standardmäßig aktiviert. Stellen Sie sicher, dass auch Ihre eigenen Templates dieses Attribut nutzen:
<f:image image="{file}" width="800" loading="lazy" />
``` [Source](https://docs.typo3.org/c/typo3/cms-core/main/en-us/Changelog/10.3/Feature-90426-Browser-nativeLazyLoadingForImages.html)
**Bilder zuschneiden und responsive ausliefern:**
Nutzen Sie den Image ViewHelper mit Breiten- und Höhenangaben sowie dem „c" für Crop:
```html
<f:image src="fileadmin/user_upload/bild.jpg" alt="Alt-Text" width="250c" height="250c" />
Nutzen Sie cropVariants für responsive Bilder und integrieren Sie diese in <picture>-Elemente oder srcset-Attribute.
Bildqualität konfigurieren: Über die System-Einstellungen (Settings > Configuration) können Sie die Bildqualität anpassen:
[GFX][jpg_quality] = 70
[GFX][gif_compress] = true
Alle Bilder sollten vor dem Upload mit Tools wie ImageOptim, Squoosh oder TinyPNG optimiert werden.
Tipp 5: CSS- und JavaScript-Dateien bündeln und optimieren
Wichtige Änderung: Die TYPO3-internen TypoScript-Optionen
config.concatenateJs,config.concatenateCss,config.compressJsundconfig.compressCsssind in TYPO3 v14 entfernt worden und gelten bereits als veraltete Praxis. Der Grund: Mit HTTP/2 und HTTP/3 ist serverseitiges Zusammenführen von Assets überflüssig geworden, da moderne Protokolle Multiplexing unterstützen und mehrere Ressourcen parallel über eine einzige Verbindung laden können. Source
Empfohlene Alternativen:
- Vite (empfohlen): Das moderne Build-Tool ist deutlich schneller als Webpack und bietet native ES-Module-Unterstützung. Für TYPO3 gibt es die Extension vite-asset-collector mit einem dedizierten Vite-Plugin.
- Webpack: Weiterhin nutzbar, aber Vite hat sich als modernere und performantere Alternative etabliert.
- HTTP/2 bzw. HTTP/3 aktivieren: Stellen Sie sicher, dass Ihr Webserver HTTP/2 oder besser HTTP/3 unterstützt. Damit entfällt die Notwendigkeit, Assets serverseitig zusammenzuführen. Source
# Für TYPO3 v12/v13 noch verfügbar, aber nicht mehr empfohlen:
# config.concatenateJs = 1
# config.concatenateCss = 1
# Stattdessen: Nutzen Sie einen modernen Bundler wie Vite
# und binden Sie die kompilierten Assets direkt ein.
Tipp 6: SVG-Sprites statt CSS-Sprites
Aktualisierung: Klassische CSS-Sprites (Rastergrafiken) haben mit HTTP/2 an Bedeutung verloren, da der Browser nun viele kleine Dateien parallel laden kann. Für Icons und vektorbasierte Grafiken empfehlen wir heute ausschließlich SVG-Sprites:
<!-- SVG-Sprite-Datei einbinden -->
<svg xmlns="http://www.w3.org/2000/svg" style="display:none">
<symbol id="icon-home" viewBox="0 0 24 24">
<path d="M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z"/>
</symbol>
</svg>
<!-- Icon referenzieren -->
<svg class="icon"><use href="#icon-home"></use></svg>
SVGs sind vektorbasiert, skalieren verlustfrei auf allen Bildschirmauflösungen und können per CSS eingefärbt werden. Icon-Fonts sollten vermieden werden, da sie zu FOIT (Flash of Invisible Text) führen können. Source
Tipp 7: Deprecation-Logging deaktivieren
In TYPO3 v13 ist das Deprecation-Logging standardmäßig deaktiviert. Dies ist eine Verbesserung gegenüber älteren Versionen, in denen das Log unkontrolliert wachsen konnte.
Stellen Sie sicher, dass auf Ihrem Produktivsystem das Deprecation-Log deaktiviert bleibt. Die Konfiguration erfolgt über die Datei config/system/settings.php:
'LOG' => [
'TYPO3' => [
'CMS' => [
'deprecations' => [
'writerConfiguration' => [
\Psr\Log\LogLevel::NOTICE => [
\TYPO3\CMS\Core\Log\Writer\FileWriter::class => [
'disabled' => true,
],
],
],
],
],
],
],
Alternativ können Sie im Backend unter System > Settings > Configuration Presets das Preset „Live" aktivieren. Source
Tipp 8: Automatisierte Wartung über den TYPO3-Scheduler
Die Datenbanktabellen sys_log und sys_history können die Performance negativ beeinflussen, wenn sie unkontrolliert wachsen. Richten Sie Scheduler-Tasks ein, die diese Tabellen regelmäßig bereinigen:
- Erstellen Sie einen Cronjob, der den TYPO3-Scheduler minütlich aufruft
- Konfigurieren Sie Tasks für die Bereinigung von
sys_log,sys_historyund den Caching-Tabellen - Definieren Sie einen sinnvollen Aufbewahrungszeitraum (z. B. 30 oder 90 Tage)
Tipp 9: Kompression von TYPO3 Front- und Backend
Hinweis: Die TYPO3-interne HTTP-Response-Kompression über [BE][compressionLevel] und [FE][compressionLevel] wurde in TYPO3 v14 entfernt. Für TYPO3 v12/v13 ist sie noch verfügbar, sollte aber nicht mehr genutzt werden.
Empfohlene Alternative: Konfigurieren Sie die Kompression direkt auf dem Webserver. Moderne Webserver unterstützen neben Gzip auch Brotli und Zstandard, die deutlich bessere Kompressionsraten erzielen:
Apache:
# Brotli aktivieren (mod_brotli erforderlich)
<IfModule mod_brotli.c>
AddOutputFilterByType BROTLI_COMPRESS text/html text/css application/javascript application/json
</IfModule>
# Gzip als Fallback
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/css application/javascript application/json
</IfModule>
Nginx:
brotli on;
brotli_types text/html text/css application/javascript application/json;
gzip on;
gzip_types text/html text/css application/javascript application/json;
Brotli erreicht im Vergleich zu Gzip bis zu 15–25 % bessere Kompressionsraten bei vergleichbarer Geschwindigkeit. Source
Tipp 10: TYPO3 und Extensions regelmäßig aktualisieren
Die aktuelle LTS-Version ist TYPO3 v13.4 LTS (veröffentlicht am 15. Oktober 2024). Sie erhält kostenlose Bugfixes bis Juni 2026 und Sicherheitsupdates bis Dezember 2027. TYPO3 v14 befindet sich in der Entwicklung und wird voraussichtlich im April 2026 erscheinen.
Systemanforderungen für TYPO3 v13 LTS:
- PHP 8.2 oder höher (PHP 8.3/8.4 empfohlen)
- MySQL 8.0.17+ oder MariaDB 10.4.3+
- PostgreSQL 10.0+ oder SQLite 3.8.3+
Sorgen Sie für aktuelle Backups und sichern Sie Dateisystem sowie Datenbank, bevor Sie Updates einspielen. Wir empfehlen die Installation und Wartung von TYPO3 über Composer – dies ist mittlerweile der Standard und wird für alle neuen Projekte vorausgesetzt. Nutzen Sie eine Versionsverwaltung wie Git und idealerweise eine CI/CD-Pipeline für automatisierte Deployments. Source Source
Tipp 11: TypoScript Code-Optimierung
Halten Sie TypoScript so einfach wie möglich und befolgen Sie aktuelle Konventionen:
- Vermeiden Sie übermäßige
if-Bedingungen – sie erhöhen die Rendering-Zeit und den Cache-Bedarf exponentiell. - Minimieren Sie
COA_INTundUSER_INT– diese nicht-gecachten Objekte verhindern statisches Datei-Caching und erzwingen eine zweite Rendering-Runde. - Nutzen Sie
@importstatt<INCLUDE_TYPOSCRIPT>– die alte Syntax ist in TYPO3 v13 deprecated und wird in v14 entfernt. - Wo möglich, verlagern Sie Bedingungen wie
PIDinRootlineoderTreeLevelin die Datenbank statt in TypoScript.
# Veraltet – nicht mehr verwenden:
# <INCLUDE_TYPOSCRIPT: source="FILE:EXT:site_package/Configuration/TypoScript/setup.typoscript">
# Korrekt in TYPO3 v13:
@import 'EXT:site_package/Configuration/TypoScript/setup.typoscript'
Allgemeine Konfiguration
Tipp 12: HTTP/2 und HTTP/3 nutzen
Aktualisierung: Der ursprüngliche Tipp zur Reduzierung von HTTP-Requests durch Zusammenführen von Dateien ist mit HTTP/2 und HTTP/3 weitgehend überholt. Moderne Protokolle unterstützen Multiplexing – mehrere Anfragen werden parallel über eine einzige Verbindung abgearbeitet.
Empfehlung:
- Stellen Sie sicher, dass Ihr Webserver HTTP/2 (mindestens) oder besser HTTP/3 unterstützt
- HTTPS ist Voraussetzung für HTTP/2 und HTTP/3
- Nutzen Sie TYPO3 v13.3+ mit der neuen TypoScript-Option
config.sendCacheHeadersForSharedCaches = autofür optimiertes Proxy- und CDN-Caching
Trotz Multiplexing bleibt es sinnvoll, die Gesamtzahl der Assets überschaubar zu halten und Expire-Header korrekt zu setzen. Google empfiehlt für statische Ressourcen wie Grafiken einen Cache-Zeitraum von einem Jahr. Source
Tipp 13: Prefetch, Preconnect und Preload
Resource Hints helfen dem Browser, Ressourcen frühzeitig vorzubereiten:
<!-- DNS-Prefetch: Domainname vorab auflösen -->
<link rel="dns-prefetch" href="//fonts.googleapis.com">
<!-- Preconnect: Verbindung vorab aufbauen (z.B. für CDN) -->
<link rel="preconnect" href="//cdn.beispiel-domain.de" crossorigin>
<!-- Preload: Kritische Ressource sofort laden -->
<link rel="preload" href="/fonts/custom-font.woff2" as="font" type="font/woff2" crossorigin>
Hinweis zu Google Fonts: Aus Datenschutzgründen (DSGVO) empfehlen wir, Google Fonts lokal einzubinden statt über die Google-Server zu laden. Laden Sie die Font-Dateien herunter, hosten Sie diese auf Ihrem eigenen Server und binden Sie sie per @font-face ein. Das vermeidet nicht nur Datenschutzprobleme, sondern verbessert auch die Performance, da keine externe Verbindung aufgebaut werden muss.
Fetchpriority für LCP-Elemente:
Für das größte sichtbare Element (LCP) können Sie mit dem fetchpriority-Attribut die Ladepriorität erhöhen:
<img src="hero-image.webp" alt="Hero" fetchpriority="high" loading="eager">
Tipp 14: CSS an den Anfang und JavaScript in den Footer
JavaScript-Dateien sollten am Ende der Seite geladen werden:
config.moveJsFromHeaderToFooter = 1
page = PAGE
page.includeJSFooter {
main = EXT:site_package/Resources/Public/JavaScript/main.js
}
Wichtig: Nach der Umstellung sollte ein umfassender Funktionstest durchgeführt werden. Wurde im Inhaltsbereich ein Script verwendet, das erst im Footer eingebunden wird, kann dies zu JavaScript-Fehlern führen.
Infrastruktur Konfiguration
Tipp 15: Wählen Sie einen guten Hosting Service
Die Wahl eines guten Hosting-Anbieters ist essenziell. Achten Sie auf folgende Leistungsbestandteile:
- SSH-Zugang (Shell-Zugriff) oder zumindest SFTP
- Kostenloses SSL-Zertifikat (z. B. Let's Encrypt)
- Aktuelle PHP-Version (mindestens PHP 8.2, empfohlen PHP 8.3 oder 8.4)
- MySQL 8.0+ oder MariaDB 10.4+
- HTTP/2 oder HTTP/3 Unterstützung
- Einfluss auf PHP-Konfiguration (php.ini)
- OPcache und Redis verfügbar
- Brotli-Kompression auf Webserver-Ebene
Sparen Sie nicht am falschen Ende – Einsteigerpakete sind nicht für performante TYPO3-Websites ausgelegt. Wir empfehlen spezialisierte TYPO3-Hoster oder Cloud-Lösungen. Source
Tipp 16: Verwenden Sie ein Content Delivery Network (CDN)
CDNs verteilen Ihre statischen Dateien auf weltweit verteilte Edge-Server und reduzieren die Latenz für Ihre Besucher erheblich. Empfehlenswerte Anbieter:
- Cloudflare – kostenloser Einstiegstarif mit HTTP/3, Brotli und Edge-Caching
- Amazon CloudFront (AWS)
- Google Cloud CDN
- Microsoft Azure CDN
- Bunny CDN – europäischer Anbieter mit gutem Preis-Leistungs-Verhältnis
TYPO3 v13.3 bietet mit config.sendCacheHeadersForSharedCaches = auto eine verbesserte CDN-Integration, die Cache-Header für Reverse Proxies und CDNs optimiert.
Tipp 17: Vermeiden Sie TYPO3-Mountpoints
Mountpoints stellen im TYPO3-Kontext einen Seitentyp dar, der einen kompletten Seitenbaum unterhalb einer anderen Seite „mountet". Bei der Darstellung eines Mega-Menüs kann dies zu mehreren tausend zusätzlichen SQL-Queries und erheblichen Performance-Problemen führen. Verzichten Sie wenn möglich auf den Einsatz von Mountpoints.
Tipp 18: Vermeiden Sie unnötige Weiterleitungen
Vermeiden Sie unnötige 30x-Weiterleitungen und verkettete Umleitungen. Testen Sie verschiedene URL-Kombinationen Ihrer Domain:
http://beispiel-domain.de
https://beispiel-domain.de
https://www.beispiel-domain.de
https://www.beispiel-domain.de/
Alle Aufrufe sollten keine oder maximal eine Weiterleitung aufweisen. Bei mehreren Weiterleitungen liegt höchstwahrscheinlich eine nicht optimale Webserver-Konfiguration vor.
Vermeiden Sie Shortcuts als Startseite: Der Seitentyp „Verweis" (Shortcut) erzeugt einen Status-Code 307 (temporäre Weiterleitung), was aus SEO-Sicht problematisch ist. Permanente Weiterleitungen sollten immer den Status-Code 301 verwenden. Nutzen Sie stattdessen den Seiten-Einstieg (Weltkugel-Symbol) direkt als Startseite.
Tipp 19: Kompression auf Webserver-Ebene
Aktualisierung: Neben Gzip empfehlen wir heute Brotli als primären Kompressionsalgorithmus. Brotli erreicht bis zu 15–25 % bessere Kompressionsraten und wird von allen modernen Browsern unterstützt.
Aktivieren Sie Brotli und Gzip (als Fallback) in Ihrer Webserver-Konfiguration. Mit Kompression können bis zu 75–80 % der ursprünglichen Dateigröße eingespart werden.
Tipp 20: Browser-Caching konfigurieren
Der entsprechende Code ist in aktuellen TYPO3-Versionen standardmäßig in der .htaccess-Datei hinterlegt. Stellen Sie sicher, dass die relevanten Abschnitte aktiviert (Kommentarsyntax entfernt) sind. Setzen Sie lange Cache-Zeiten für statische Assets (CSS, JS, Bilder) und kürzere für HTML-Dokumente.
Tipp 21: Core Web Vitals im Blick behalten
Aktualisierung: Die Messpunkte haben sich seit dem ursprünglichen Artikel verändert. Die aktuellen Core Web Vitals und diagnostischen Metriken sind:
| Metrik | Typ | Zielwert | Beschreibung |
|---|---|---|---|
| LCP | Core Web Vital | < 2,5s | Ladezeit des größten sichtbaren Elements |
| INP | Core Web Vital | < 200ms | Reaktionszeit auf Nutzerinteraktionen (ersetzt FID seit März 2024) |
| CLS | Core Web Vital | < 0,1 | Visuelle Stabilität beim Laden |
| TTFB | Diagnostisch | < 800ms | Zeit bis zum ersten Byte vom Server |
| FCP | Diagnostisch | < 1,8s | Erstes sichtbares Element im Browser |
Der TTFB ist für TYPO3-Optimierung besonders relevant, da er direkt von Server-Performance, Caching und Datenbankabfragen beeinflusst wird. Kontrollieren Sie diesen Wert regelmäßig. Source
Tipp 22: Unterbinden Sie Hotlinking
Damit das direkte Einbinden Ihrer Grafiken von externen Webseiten unterbunden wird:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?beispiel-domain.de [NC]
RewriteRule \.(webp|avif|svg|jpg|jpeg|png|gif|zip|pdf|js)$ - [F]
Tipp 23: Reverse Proxies
Reverse Proxys reduzieren die Last des Webservers durch Zwischenspeichern von dynamisch generiertem Inhalt. Empfehlenswerte Lösungen:
- Nginx als Reverse Proxy vor Apache
- Varnish als dedizierter HTTP-Accelerator
- Cloudflare als Cloud-basierter Reverse Proxy mit integriertem CDN
Tipp 24: Webserver und PHP optimieren
Folgende PHP-Einstellungen sollten mindestens konfiguriert sein:
memory_limit = 256M
max_execution_time = 240
max_input_vars = 1500
post_max_size = 50M
upload_max_filesize = 50M
OPcache ist Pflicht für jede TYPO3-Produktivinstallation. Die empfohlene Konfiguration:
opcache.enable = 1
opcache.memory_consumption = 256
opcache.interned_strings_buffer = 16
opcache.max_accelerated_files = 10000
opcache.revalidate_freq = 0
opcache.validate_timestamps = 0
opcache.save_comments = 1
opcache.fast_shutdown = 1
Hinweis: In TYPO3 v13 muss
opcache.save_commentsauf1gesetzt sein, da TYPO3 PHP-Annotations/Attributes nutzt, die ohne gespeicherte Kommentare nicht funktionieren. Die Einstellungopcache.validate_timestamps = 0bedeutet, dass der OPcache nur manuell geleert wird – denken Sie daran, den OPcache in Ihrem Deployment-Skript zu erneuern.
Die Einstellung opcache.max_accelerated_files sollte der Anzahl der PHP-Dateien in Ihrem Projekt entsprechen. Ermitteln Sie diese mit:
find . -type f -name "*.php" | wc -l
Tipp 25: Datenbankserver optimieren
Wenn Sie Zugriff auf die MySQL/MariaDB-Konfiguration haben, lohnt ein Blick auf folgende Einstellungen:
innodb_buffer_pool_size: Eine der wichtigsten Konfigurationen für MySQL/MariaDB InnoDB. Diese Einstellung regelt die Größe des Zwischenspeichers für Daten und Indizes im RAM. Bei einem dedizierten Datenbankserver können Sie sich an der „80 %-Regel" orientieren:
| Gesamter Server RAM | Buffer Pool (80 %) | Frei verfügbarer RAM |
|---|---|---|
| 2 GB | 1,6 GB | 400 MB |
| 4 GB | 3,2 GB | 800 MB |
| 8 GB | 6,4 GB | 1,6 GB |
| 16 GB | 13 GB | 3 GB |
| 32 GB | 26 GB | 6 GB |
| 64 GB | 51 GB | 13 GB |
Bei ausreichend RAM kann dieser Wert auch auf 90–95 % erhöht werden. Stellen Sie sicher, dass genügend RAM für das Betriebssystem und sonstige Prozesse verbleibt.
innodb_log_file_size: Definiert die Größe der Redo-Log-Dateien. Starten Sie mit 512 MB pro Datei. Bei ausreichend Speicherplatz kann dieser Wert auf 1–4 GB erhöht werden.
max_connections: Regelt die Anzahl paralleler Datenbankverbindungen. Kleine bis mittlere Websites kommen mit 100–200 Verbindungen aus. Für größere Projekte empfehlen wir 400–1.000. Stellen Sie sicher, dass open_files_limit entsprechend angepasst wird (Richtwert: 8.192 oder höher).
query_cache_size: Seit MySQL 8.0 ist der Query Cache vollständig entfernt worden. Falls Sie noch MariaDB nutzen, empfehlen wir den Wert auf 0 zu setzen, da der Query Cache bei moderater Parallelität zum Engpass wird.
log_bin: Nur aktivieren, wenn die Datenbank als Replikationsmaster verwendet wird. Andernfalls deaktivieren, da es zu deutlichem Performance-Verlust führt.
Tipp 26: Datenbankverbindungen optimieren
Hinweis: Die Einstellung
[SYS][no_pconnect]wurde bereits in TYPO3 v9 entfernt. In aktuellen TYPO3-Versionen wird die Datenbankverbindung über Doctrine DBAL verwaltet. Die Konfiguration erfolgt über die Dateiconfig/system/settings.phpbzw.config/system/additional.php.
Für TYPO3 v13 können Sie die Datenbankverbindung über die Doctrine-DBAL-Konfiguration optimieren:
$GLOBALS['TYPO3_CONF_VARS']['DB']['Connections']['Default'] = [
'driver' => 'mysqli',
'host' => 'localhost',
'port' => 3306,
'dbname' => 'typo3_db',
'user' => 'db_user',
'password' => 'db_password',
'charset' => 'utf8mb4',
'tableoptions' => [
'charset' => 'utf8mb4',
'collate' => 'utf8mb4_unicode_ci',
],
];
Bei hoher Last kann ein Connection Pooling über Tools wie ProxySQL oder PgBouncer (PostgreSQL) sinnvoll sein.
Tipp 27: Cluster-Architektur
Um auch bei sehr hohen Zugriffszahlen performant zu bleiben, empfiehlt sich eine Multi-Server-Architektur. Ein modernes Basis-Setup könnte wie folgt aussehen:
- 1x Reverse Proxy / Load Balancer (Nginx oder Cloudflare)
- 1x oder mehrere TYPO3 Webserver (Nginx + PHP-FPM oder Apache)
- 1x Datenbank-Server (MySQL/MariaDB)
- 1x Cache-Server (Redis)
- Optional: CDN für statische Assets
Mit Infrastructure-as-Code-Tools wie Ansible, Terraform oder Kubernetes lassen sich bei Besucher-Peaks weitere Server automatisiert hinzuschalten. Container-basierte Deployments mit Docker und Orchestrierung über Kubernetes oder Docker Swarm sind heute der Standard für skalierbare TYPO3-Installationen.
Tipp 28: Reduzieren Sie die Anzahl der TYPO3-Extensions
Deaktivieren und entfernen Sie alle TYPO3-Erweiterungen, die nicht benötigt werden. Dies verbessert nicht nur die Performance, sondern schließt auch potenzielle Sicherheitslücken.
Best Practices:
- Verwenden Sie nur Extensions, die aktiv gepflegt werden und TYPO3 v13 unterstützen
- Prüfen Sie vor der Installation, ob die Funktionalität nicht bereits im TYPO3 Core enthalten ist (viele Features wurden in den letzten Versionen in den Core übernommen)
- Nutzen Sie den System > Reports-Bereich im Backend, um den Gesundheitszustand Ihres Systems zu prüfen
- Entfernen Sie Extensions sauber über Composer:
composer remove vendor/extension-name
Tipp 29: 404-Fehlerseiten richtig konfigurieren
Nutzen Sie für die Konfiguration von Fehlerseiten das Site Handling (verfügbar seit TYPO3 v9, Standard in v13). Die Konfiguration erfolgt über die Datei config/sites/<site-identifier>/config.yaml:
errorHandling:
- errorCode: 404
errorHandler: Page
errorContentSource: 't3://page?uid=145'
- errorCode: 403
errorHandler: Page
errorContentSource: 't3://page?uid=146'
Hinweis: Die alte Konfiguration über
[FE][pageNotFound_handling]im Install Tool ist veraltet und sollte nicht mehr verwendet werden. Nutzen Sie ausschließlich das Site Handling.
Erstellen Sie eine gut strukturierte und für den Nutzer hilfreiche 404-Fehlerseite mit Suchfunktion und Links zu wichtigen Bereichen Ihrer Website. Source
Tipp 30: Defer oder Async für JavaScript
JavaScript-Dateien können mit den Attributen async oder defer geladen werden, um das Rendering nicht zu blockieren:
<!-- Async: Wird im Hintergrund geladen und sofort ausgeführt -->
<script src="analytics.js" async></script>
<!-- Defer: Wird im Hintergrund geladen, aber erst nach dem Parsen ausgeführt -->
<script src="main.js" defer></script>
Empfehlung: Verwenden Sie defer für die meisten Scripts, da die Ausführungsreihenfolge beibehalten wird. async eignet sich für unabhängige Scripts wie Analytics oder Tracking.
Hinweis: Beide Attribute sind nur relevant, wenn Script-Tags im
<head>oder im Inhaltsbereich eingebunden werden. Bei Scripts am Ende des<body>haben sie keine zusätzliche Wirkung.
In TYPO3 v13 können Sie über den AssetCollector oder die Fluid ViewHelper f:asset.script das defer-Attribut direkt setzen.
Bonus Tipp: Weitere Webserver-Optimierungen
Das GitHub-Projekt HTML5 Boilerplate bietet weiterhin eine hervorragende Sammlung an Webserver-Konfigurationen:
- Apache: .htaccess-Konfiguration
- Nginx: Server-Konfiguration
Zusätzliche Empfehlungen für 2026:
- Brotli-Kompression aktivieren (bessere Kompressionsrate als Gzip)
- HTTP/3 (QUIC) aktivieren, sofern vom Hoster unterstützt
- TLS 1.3 als Mindeststandard setzen
- HSTS-Header (HTTP Strict Transport Security) konfigurieren
- Security Headers setzen (Content-Security-Policy, X-Frame-Options etc.)
Fazit
Die Performance-Optimierung von TYPO3 hat sich in den letzten Jahren deutlich weiterentwickelt. Mit TYPO3 v13 LTS stehen Ihnen native Unterstützung für moderne Bildformate (WebP, AVIF), verbessertes Caching, optimierte HTTP-Header und eine zukunftssichere Architektur zur Verfügung.
Die wichtigsten Maßnahmen auf einen Blick:
- Caching aktivieren und
_INT-Objekte minimieren - Redis als Cache-Backend einsetzen
- StaticFileCache oder Varnish für statische Seiten nutzen
- WebP/AVIF als Bildformate verwenden und Lazy Loading aktivieren
- Vite als Build-Tool statt TYPO3-interner Asset-Komprimierung nutzen
- HTTP/2 oder HTTP/3 mit Brotli-Kompression auf dem Webserver aktivieren
- OPcache korrekt konfigurieren
- Core Web Vitals regelmäßig überwachen (LCP, INP, CLS)
- TYPO3 und Extensions aktuell halten (Composer-basiert)
- Scheduler-Tasks für automatisierte Datenbankwartung einrichten
Wir empfehlen sowohl eine einmalige Analyse als auch die Einrichtung von Performance-KPIs und regelmäßigen Checkups – idealerweise automatisiert über CI/CD-Pipelines.
Wenn Sie Unterstützung bei der Performance-Optimierung für Ihre TYPO3 Website suchen, sind wir als TYPO3 Agentur genau der richtige Ansprechpartner.