Knowledge
Die TYPO3-Version läuft aus dem Support, oder die Website soll neue Funktionen bekommen und die Basis ist dafür zu alt. So oder so steht ein Upgrade an. Wie aufwendig es wird, hängt weniger an der Versionsnummer als an dem, was über die Jahre dazugekommen ist: Extensions, eigener Code und die Art, wie Seiten und Inhalte aufgebaut sind.
Stand Oktober 2026
Etwa alle anderthalb Jahre erscheint eine TYPO3-Version mit Langzeitunterstützung, kurz LTS. Für die Planung zählen nur diese Versionen.
Das Ziel eines Upgrades ist damit TYPO3 14. ELTS verschafft Zeit, das Upgrade in Ruhe vorzubereiten. Was ELTS abdeckt und wann es sich als Überbrückung eignet, erkläre ich in einem eigenen Artikel.
Zuerst hole ich mir eine Kopie der Website in meine Entwicklungsumgebung. Dort sehe ich mir an:
Daraus entsteht ein Plan: welche Extensions bleiben und welche ersetzt werden, welcher Weg über die Versionen führt und wo Inhalte migriert werden. Soll die Website außerdem erweitert oder umgebaut werden, gehört das gleich mit hinein. Neue Funktionen entwickle ich dann direkt für die neue Version.
Der offizielle Weg führt von LTS zu LTS. Vor jedem Sprung laufen alle Upgrade-Wizards der aktuellen Version durch. Das sind kleine Migrationen, die TYPO3 nach einem Upgrade anbietet. Sie bringen die Daten in der Datenbank auf den Stand der neuen Version. Jeder Wizard gehört zu einer bestimmten Version und steht in späteren Versionen nicht mehr zur Verfügung. Von TYPO3 9 auf 12 geht es deshalb in der Regel über 10 und 11 als Zwischenschritte.
Zu jedem Sprung gehört die passende PHP-Version. Jede TYPO3-Version läuft mit mindestens zwei PHP-Versionen, die sich mit der nächsten überschneiden. Die TYPO3-Dokumentation empfiehlt, zuerst PHP auf die höchste Version anzuheben, die die bisherige TYPO3-Version unterstützt, und erst danach TYPO3 selbst. So bleibt bei jedem Fehler klar, ob er von PHP oder vom Core kommt.
Bei sehr alten Installationen werden die Zwischenschritte aufwendig: Jede Zwischenversion braucht passende Extensions und eine passende Server-Umgebung, nur damit die Wizards einmal laufen. Dann ist es oft sinnvoller, direkt auf die Zielversion zu gehen und die Datenmigrationen der übersprungenen Versionen gezielt nachzuholen. Die Extension Core Upgrader stellt dafür ältere Upgrade-Wizards gesammelt bereit, in ihrer aktuellen Version für TYPO3 13.
Bei einem aktuellen Umzug von TYPO3 8 auf 14 habe ich diese Migration als eigenen Befehl geschrieben, zugeschnitten auf die Daten der Website. Er überführt die Seitenübersetzungen in die Struktur, die TYPO3 seit Version 9 verwendet, übernimmt die sprechenden URLs aus RealURL als Slugs und ordnet die Inhalte aus dem alten Rastersystem den neuen Spalten zu.
Der Extension Scanner im Backend unter System › Upgrade durchsucht Extensions nach TYPO3-Funktionen, die veraltet oder entfernt sind, und verlinkt zu jedem Treffer den passenden Eintrag im Changelog mit Hinweisen zur Umstellung. Weil er mit statischer Codeanalyse arbeitet, ist das Ergebnis eine gute Arbeitsliste, aber keine vollständige. Ergänzend zeichnet das Deprecation-Log im laufenden Betrieb auf, welche veralteten Funktionen tatsächlich aufgerufen werden.
Wie viel sich zwischen zwei Versionen ändert, zeigt der Changelog. Vor
jedem Sprung lese ich mindestens die Abschnitte Breaking Changes und
Important. Im Backend lässt er sich filtern und Eintrag für Eintrag
abhaken. Für TYPO3 14 betrifft das zum Beispiel alle Extensions, die
noch auf das globale Objekt $GLOBALS['TSFE'] zugreifen: Es
ist in Version 14 entfernt.
Die Upgrade-Wizards und der Datenbankabgleich laufen nach
jedem Sprung, im Backend unter Admin Tools oder auf der Kommandozeile mit
vendor/bin/typo3 upgrade:run.
Für den eigenen Code gibt es zwei Werkzeuge, die Änderungen automatisch
vornehmen. TYPO3 Rector (Paket
ssch/typo3-rector) baut PHP-Code um und ersetzt veraltete
Aufrufe durch ihren Nachfolger, Regel für Regel aus dem Changelog.
Fractor (Paket a9f/typo3-fractor) überträgt
das Prinzip auf TypoScript, FlexForms, Fluid-Templates und YAML. Beide
bekommen in einer Konfigurationsdatei die Zielversion und zeigen ihre
Änderungen auf Wunsch erst einmal nur an:
composer require --dev ssch/typo3-rector a9f/typo3-fractor
vendor/bin/rector process --dry-run
vendor/bin/fractor process --dry-run
Beide Werkzeuge laufen auf der Entwicklungsumgebung mit Versionsverwaltung, nie auf der Live-Website. Jede Änderung lässt sich so prüfen und bei Bedarf zurücknehmen. Was sie nicht abdecken, bleibt Handarbeit, vor allem dort, wo sich nicht nur eine Funktion, sondern ein ganzes Konzept geändert hat.
Viele ältere Installationen laufen noch im klassischen Modus. Die TYPO3-Dokumentation empfiehlt, sie vor einem Upgrade auf Composer umzustellen. Composer verwaltet dann den Core und alle Extensions mit ihren Versionen in einer Datei. Ein Upgrade beginnt damit, diese Versionsangaben zu ändern. Den passenden Befehl für alle Core-Pakete erzeugt der Composer Helper auf get.typo3.org.
Zur Umstellung gehört ein eigenes Web-Verzeichnis, meist
public/. Bibliotheken und Konfiguration liegen dann außerhalb
des Bereichs, den der Webserver ausliefert. Beim Hoster wird dafür das
Verzeichnis angepasst, auf das die Domain zeigt. Auch die Auslieferung
ändert sich: Die Website wird aus einem Repository gebaut und per Deployment
auf den Server gebracht. Jede Änderung ist damit nachvollziehbar und lässt
sich wiederholen.
Für jede Extension ohne Version für TYPO3 14 gibt es einen Weg: eine gepflegte Alternative, ein Fork, den andere weiterführen, eine eigene Anpassung oder eine Funktion, die der Core inzwischen selbst mitbringt. Sprechende URLs und Weiterleitungen etwa verwaltet TYPO3 seit Version 9 selbst, dafür war früher RealURL nötig. Und manche Extension wird schlicht nicht mehr gebraucht.
Die meiste Arbeit machen Extensions, die den Aufbau der Inhalte bestimmen. TemplaVoilà Plus und Gridelements sind in ihren neuesten Versionen im Extension Repository für TYPO3 12 und 13 freigegeben (Stand Oktober 2026). Für TYPO3 14 wechseln die Seiten auf Backend-Layouts mit Fluid-Templates, verschachtelte Elemente zum Beispiel auf die Extension Container. Die Inhalte selbst bleiben erhalten, eine Migration ordnet sie den neuen Strukturen zu.
TemplaVoilà kenne ich aus eigener Praxis. Installationen, die noch aus dieser Zeit stammen, kann ich deshalb schnell einordnen. Wenn die Website ursprünglich von einer anderen Agentur gebaut wurde, beschreibe ich den Ablauf der Übernahme auf einer eigenen Seite.
Das Upgrade läuft auf einer Kopie mit allen Dateien und der Datenbank. Die Live-Website bleibt in dieser Zeit unverändert online. Auf der Kopie prüfe ich:
Es lohnt sich, die Redaktion früh auf die Kopie zu lassen. Wer täglich mit dem Backend arbeitet, sieht Abweichungen schneller als jede Checkliste.
Zwischen Bestandsaufnahme und Livegang pflegt die Redaktion die Live-Website weiter. Deshalb ist die Migration wiederholbar angelegt, als Befehl oder Skript, das kurz vor dem Livegang noch einmal auf einer frischen Kopie der Live-Datenbank läuft. Die Redaktion pausiert dann nur kurz, und alle Inhalte bis zu diesem Tag landen in der neuen Version.
Auf die Reihenfolge kommt es dabei an. Eigene Migrationen lesen Tabellen und Spalten, die die neue Version nicht mehr kennt. Sie laufen deshalb vor dem Datenbankabgleich, der diese Felder als überflüssig markiert und entfernt, und vor den Upgrade-Wizards, die auf denselben Daten arbeiten.
Danach folgen die Schritte, die die TYPO3-Dokumentation für jedes Major-Upgrade vorsieht: Caches leeren, Datenbank abgleichen, Upgrade-Wizards ausführen, Sprachpakete aktualisieren und die Webserver-Konfiguration prüfen. Haben sich URLs geändert, führen Weiterleitungen von den alten Adressen auf die neuen. Lesezeichen und Suchergebnisse kommen so weiter ans Ziel.
Mit TYPO3 14 beginnt ein neuer Zyklus. Patch-Updates innerhalb der LTS-Version sind schnell eingespielt, und das nächste Major-Upgrade fällt deutlich kleiner aus, wenn es direkt auf die nächste LTS-Version führt.
FAQ
Stand Oktober 2026 ist TYPO3 14 LTS die aktuelle Version. Sie ist am 21. April 2026 erschienen und bekommt bis zum 30. Juni 2029 Updates. TYPO3 13 LTS wird noch bis zum 31. Dezember 2027 unterstützt, TYPO3 12 und ältere Versionen nur noch über den kostenpflichtigen Extended Long Term Support.
Der offizielle Weg führt von LTS-Version zu LTS-Version, weil die Upgrade-Wizards jeweils zu einer bestimmten Version gehören. Bei sehr alten Installationen kann ein direkter Sprung auf die Zielversion trotzdem sinnvoll sein. Dann werden die Datenmigrationen der übersprungenen Versionen gezielt nachgeholt, zum Beispiel mit einem eigenen Migrationsbefehl.
Ja. Das Upgrade läuft auf einer Kopie der Website. Die Live-Website bleibt in dieser Zeit unverändert online und wird erst umgestellt, wenn die Kopie vollständig geprüft ist. Ist die Migration wiederholbar angelegt, pausiert die Redaktion nur kurz vor dem Livegang.
Auch für diese Extensions gibt es einen Weg: eine gepflegte Alternative, ein Fork, den andere weiterführen, eine eigene Anpassung oder eine Funktion, die der TYPO3-Core inzwischen selbst mitbringt. Welcher davon passt, legt die Bestandsaufnahme vor dem Upgrade fest.
Meistens ja. TYPO3 14 läuft mit PHP 8.2 bis 8.5. Die TYPO3-Dokumentation empfiehlt, zuerst PHP auf die höchste Version anzuheben, die die bisherige TYPO3-Version unterstützt, und erst danach TYPO3 selbst. Ob der Hoster die passende PHP-Version anbietet, gehört deshalb in die Bestandsaufnahme.
Weiterlesen oder direkt ins Gespräch: