Wissen / Kosten & Planung / Welche Faktoren beeinflussen die Kosten?
Welche Faktoren beeinflussen die Kosten eines TYPO3-Updates?
Zwei TYPO3-Websites können von außen fast gleich aussehen und beim Update trotzdem völlig unterschiedlich viel Arbeit machen. Eine Website mit tausenden Seiten kann relativ unkompliziert sein, während eine kleinere Installation mit wenigen Seiten mehrere Wochen Arbeit verursacht.Der Grund dafür liegt meistens nicht in der sichtbaren Größe der Website, sondern in ihrer technischen Struktur. Entscheidend sind vor allem individuelle Extensions und Funktionen, die Anzahl der Versionssprünge, Drittanbieter-Extensions, Schnittstellen, Serverumgebung und die Frage, wie gut das bestehende System dokumentiert und gepflegt wurde.
Individuelle Funktionen sind meistens der wichtigste Faktor
Wenn ich ein Projekt für ein Update einschätze, schaue ich zuerst darauf, was dort individuell entwickelt wurde. Dazu gehören eigene TYPO3-Extensions, spezielle Plugins, Imports und Exports, API-Anbindungen, geschützte Benutzerbereiche, eigene Middlewares und andere Funktionen, die nicht einfach aus dem TYPO3-Core kommen.
Je mehr individuelle Logik vorhanden ist, desto mehr muss beim Update geprüft werden. Eine kleine Extension mit einer überschaubaren Funktion lässt sich häufig schnell anpassen. Eine große Eigenentwicklung mit mehreren Plugins, Schnittstellen und eigenen Datenmodellen kann dagegen einen erheblichen Teil des gesamten Update-Aufwands ausmachen.
Nicht die Anzahl der Extensions ist entscheidend, sondern was diese Extensions tun.
Jeder Versionssprung bringt eigene Änderungen mit
TYPO3 entwickelt sich kontinuierlich weiter. Funktionen werden zunächst als veraltet markiert und in späteren Versionen verändert oder ganz entfernt. Genau deshalb spielt es eine große Rolle, wie viele Major-Versionen ein Projekt überspringen muss.
Wenn beispielsweise in TYPO3 12 angekündigt wird, dass eine Funktion veraltet ist und später entfernt wird, kann man diese Änderung bereits beim nächsten Update berücksichtigen. Dadurch bleibt das Projekt kontinuierlich auf einem modernen Stand.
Wurde eine Installation dagegen viele Jahre nicht aktualisiert, sammeln sich diese Änderungen. Bei einem Sprung über mehrere Major-Versionen müssen dann entsprechend mehr Anpassungen auf einmal erledigt werden.
Bei großen Projekten gehe ich deshalb häufig schrittweise vor:
TYPO3 10 → 11 → 12 → 13 → 14
Das macht die einzelnen Änderungen besser kontrollierbar und erleichtert die Fehlersuche. Es bedeutet aber natürlich auch mehr Arbeit als ein einzelner Versionssprung.
Die neueste TYPO3-Version ist nicht automatisch die beste Zielversion
Ein Update muss nicht zwingend auf die aktuell neueste Major-Version führen. Manchmal ist eine Version darunter für das konkrete Projekt die bessere Entscheidung. Ein typisches Beispiel sind Extensions. Wenn eine für das Projekt wichtige Erweiterung die neueste TYPO3-Version noch nicht unterstützt oder dafür nur eine kostenpflichtige Variante verfügbar ist, muss man abwägen.
Dann gibt es mehrere Möglichkeiten:
- auf einer unterstützten älteren TYPO3-Version bleiben
- die Extension ersetzen
- die Extension selbst anpassen
- eine kostenpflichtige Version einsetzen
Die Zielversion sollte nicht isoliert entschieden werden. Sie muss zum gesamten Projekt passen.
Drittanbieter-Extensions können einfach sein – oder viel Arbeit machen
Im TYPO3 Extension Repository, kurz **TER**, gibt es tausende öffentlich verfügbare Extensions. Ihre Qualität und Pflege unterscheiden sich entsprechend stark. Bei verbreiteten Extensions, die regelmäßig gepflegt werden, gibt es bei Updates häufig wenig Probleme. Schwieriger wird es bei Erweiterungen, die seit längerer Zeit keine Updates erhalten haben oder deren Entwickler die Pflege komplett eingestellt haben.
Dann muss geklärt werden, wie wichtig die Extension für das Projekt ist. Möglicherweise gibt es eine Alternative. Vielleicht kann die Extension selbst aktualisiert werden. In manchen Fällen gibt es eine kostenpflichtige Version oder die Möglichkeit, sich an der Weiterentwicklung zu beteiligen.
Es kann auch passieren, dass die Funktion inzwischen direkt im TYPO3-Core vorhanden ist und die alte Extension überhaupt nicht mehr benötigt wird. Dann kann die Extension aus dem Projekt entfernt werden.
Jetzt kostenlos TYPO3-Update anfragen
PHP ist bei größeren Updates fast immer ein Thema
Mit einer neuen TYPO3-Version ändern sich häufig auch die unterstützten PHP-Versionen. Das betrifft insbesondere individuellen PHP-Code. PHP ist in den vergangenen Versionen an vielen Stellen strikter geworden. Code, der jahrelang problemlos lief, kann nach einem PHP-Update Warnungen oder Fehler verursachen. Oft sind das keine dramatischen Änderungen. Aber jede einzelne Stelle muss gefunden, verstanden und korrigiert werden.
Bei größeren Custom Extensions oder vielen alten PHP-Klassen summiert sich dieser Aufwand entsprechend.
APIs und externe Systeme brauchen besondere Aufmerksamkeit
Eine TYPO3-Website steht häufig nicht alleine da. Sie kommuniziert möglicherweise mit Zahlungsanbietern, CRM-Systemen, Newsletterdiensten, externen Datenbanken oder anderen APIs. Gerade bei solchen Schnittstellen kann sich über mehrere Jahre viel verändern. Anbieter stellen Bibliotheken um, ändern Authentifizierungsverfahren, entfernen alte Endpunkte oder verlangen neuere PHP-Versionen. Vor einem Update muss deshalb geprüft werden, welche externen Systeme angebunden sind und ob die verwendeten Bibliotheken mit der neuen Umgebung weiterhin funktionieren.
Server und Hosting können ein Update einfacher oder schwieriger machen
Jede TYPO3-Version stellt Anforderungen an PHP, Datenbank und Serverumgebung. Diese Anforderungen müssen vom Hosting erfüllt werden.
Wenn PHP-Versionen, Datenbank und andere Einstellungen flexibel angepasst werden können, ist das normalerweise unkompliziert. Schwieriger wird es bei Hosting-Paketen, bei denen bestimmte Versionen nicht verfügbar sind oder jede Änderung erst über den Support des Hosters erfolgen muss.
Für ein vernünftig wartbares TYPO3-Projekt sollte zumindest SSH-Zugang vorhanden sein. Ein Projekt, das ausschließlich über FTP gepflegt wird, kann ebenfalls aktualisiert werden, verursacht aber unnötigen zusätzlichen Aufwand.
Composer kostet einmal Arbeit und spart später Zeit
Bei älteren TYPO3-Projekten kommt es noch vor, dass die Installation nicht über Composer verwaltet wird.
Das macht ein Update nicht automatisch teuer. Wenn ein solches Projekt aber auf eine moderne TYPO3-Version gebracht werden soll, würde ich normalerweise dazu raten, gleichzeitig auf eine Composer-basierte Installation umzubauen.
Das kostet zunächst zusätzliche Zeit. Langfristig wird die Wartung dadurch aber erheblich einfacher. Abhängigkeiten sind nachvollziehbar, Updates lassen sich kontrollierter durchführen und Erweiterungen sauber verwalten.
Bei einem größeren Update nur deshalb bei einer alten Installationsweise zu bleiben, um ein paar Stunden zu sparen, verschiebt das Problem meistens nur nach hinten.
Git und ein sauberes Deployment sparen Zeit
Eine saubere Versionsverwaltung macht einen großen Unterschied. Bei Updates arbeite ich bevorzugt auf eigenen Feature-Branches. Änderungen können dadurch nachvollzogen, getestet und bei Bedarf zurückgenommen werden.
Auch das Deployment wird wesentlich einfacher, wenn das Projekt bereits über Git und eine funktionierende Deployment-Pipeline verfügt.
Fehlt diese Grundlage komplett, muss sie entweder vor dem Update geschaffen werden oder es entsteht zusätzlicher manueller Aufwand.
Jetzt kostenlos TYPO3-Update anfragen
Altes TypoScript kann überraschend viel Arbeit verursachen
Gerade ältere TYPO3-Projekte enthalten teilweise sehr große Mengen TypoScript. Dazu kommen Conditions und projektspezifische Konfigurationen, die im Laufe der Jahre an unterschiedlichen Stellen abgelegt wurden.
Das Problem ist nicht nur die Menge. Man muss erst einmal alles finden.
TypoScript kann in Dateien liegen, über Extensions eingebunden werden oder noch an Stellen in der Datenbank vorhanden sein, an die heute niemand mehr denkt. Bei einem Update muss geprüft werden, ob die verwendeten Funktionen in der Zielversion weiterhin gültig sind.
Moderne TYPO3-Projekte verschieben immer mehr Konfiguration in Site Settings und Site Sets. Bei einem Update bietet es sich deshalb an, alte Konfigurationen dort zu modernisieren, wo es sinnvoll ist.
Ich passe an, was für das Update notwendig oder mit überschaubarem Aufwand sinnvoll ist.
Multidomain-Projekte brauchen mehr Prüfung
Mehrere Domains in einer TYPO3-Installation sind grundsätzlich nichts Ungewöhnliches. Aufwendig wird es, wenn jede Site eigene Konfigurationen, TypoScript-Conditions, Extensions oder Sonderfälle besitzt. Dann muss nach dem Update nicht nur geprüft werden, ob TYPO3 grundsätzlich funktioniert. Es muss auch sichergestellt werden, dass die einzelnen Sites weiterhin ihre jeweils richtige Konfiguration erhalten.
Mehrsprachigkeit ist meistens kein großer Kostentreiber
Mehrere Sprachen machen ein Update nicht automatisch kompliziert. TYPO3 bringt für viele Datenänderungen Upgrade Wizards mit, die bestehende Daten automatisiert migrieren können. Trotzdem müssen mehrsprachige Inhalte nach dem Update getestet werden. Es sollte geprüft werden, ob Übersetzungen, Fallbacks und Sprachumschaltung weiterhin wie vorher funktionieren.
Der Aufwand liegt hier meistens stärker im Testing als in der eigentlichen Migration.
Benutzer und Berechtigungen müssen getestet werden
Viele Backend-Benutzer oder Benutzergruppen machen ein Update ebenfalls nicht automatisch teuer. Die vorhandenen Berechtigungen bleiben in der Regel erhalten oder werden durch die vorgesehenen Upgrade-Schritte migriert. Bei Installationen mit vielen unterschiedlichen Rollen muss anschließend aber geprüft werden, ob die Rechte weiterhin korrekt greifen.
Ein technisch erfolgreiches Update ist noch nicht automatisch ein vollständig getestetes Update.
Scheduler, Imports und Exports sind typische versteckte Stellen
Automatische Prozesse sollte man bei keinem Update vergessen. Dazu gehören Scheduler-Tasks, Cronjobs, Importe und Exporte. Auch hier ist häufig die PHP-Kompatibilität der entscheidende Punkt. Zusätzlich können sich interne Strukturen zwischen TYPO3-Versionen ändern.
Solche Prozesse laufen oft im Hintergrund und werden im normalen Frontend-Test nicht bemerkt. Deshalb müssen sie bewusst in die Update- und Testplanung aufgenommen werden.
Jetzt kostenlos TYPO3-Update anfragen
Große Datenmengen sind nicht automatisch teuer
Ob ein Import hundert oder eine Million Datensätze verarbeitet, ändert am grundlegenden PHP-Code zunächst wenig. Relevant wird die Datenmenge an anderen Stellen. Laufzeiten können länger werden, PHP- oder Serverlimits müssen angepasst werden und Tests dauern entsprechend länger.
Große Datenmengen sind deshalb nicht automatisch ein Entwicklungsproblem, können aber Anforderungen an Infrastruktur und Tests erhöhen.
Die Anzahl der Seiten wird häufig überschätzt
Ein großer Seitenbaum sieht beeindruckend aus, ist aber für die Kosten eines TYPO3-Updates alleine wenig aussagekräftig. Wenn tausende Seiten hauptsächlich aus Standard-Inhaltselementen bestehen, kann TYPO3 diese genauso verarbeiten wie einige hundert Seiten. Der eigentliche Aufwand entsteht durch die Funktionen, die dahinterliegen.
Eine kleine Website mit drei individuell entwickelten Anwendungen kann deshalb deutlich teurer sein als eine große Website mit vielen normalen Inhaltsseiten. Bei sehr großen Websites steigt allerdings der Aufwand für die Abnahme. Mehr Bereiche bedeuten mehr Stellen, die geprüft werden müssen.
URLs werden gerne vergessen
Ein Punkt, der auf den ersten Blick klein wirkt, aber nach einem Update sehr unangenehm werden kann, sind bestehende URLs.
Wenn sich beim Update Routing oder Konfiguration ändern, muss geprüft werden, ob wichtige URLs weiterhin identisch erreichbar sind. Das betrifft nicht nur Google, sondern auch externe Links, Newsletter, gespeicherte Bookmarks oder URLs, die mit anderen Systemen ausgetauscht werden.
„Die Seite sieht richtig aus“ reicht als Test deshalb nicht. Wichtige URLs müssen ebenfalls funktionieren.
Fehlende Dokumentation kostet Zeit
Bei einem gut dokumentierten Projekt kann ich relativ schnell nachvollziehen, welche Funktionen vorhanden sind und wie sie zusammenspielen. Bei alten Legacy-Systemen sieht das häufig anders aus. Der ursprüngliche Entwickler ist nicht mehr erreichbar, Dokumentation existiert kaum und niemand weiß genau, warum eine bestimmte Funktion vor acht Jahren eingebaut wurde. Dann bleibt nur, den vorhandenen Code und die Konfiguration zu untersuchen und herauszufinden, was tatsächlich passiert.
Undokumentierte Edge Cases gehören zu den unangenehmsten Kostentreibern bei einem TYPO3-Update. Besonders dann, wenn sie erst während der Abnahme mit dem Satz auftauchen: „Das ging vorher aber anders.“
Ein fester Ansprechpartner spart Geld
Für größere Updates brauche ich auf Kundenseite jemanden, der das System kennt und Entscheidungen treffen kann. Wenn eine Rückfrage mehrere Tage unbeantwortet bleibt oder fünf Beteiligte unterschiedliche Vorstellungen davon haben, wie eine Funktion arbeiten soll, kommt ein Projekt unnötig ins Stocken.
Das gilt auch für neue Anforderungen. Kleine Erweiterungen können im Rahmen eines Updates durchaus eingeplant werden. Neue Features mitten im laufenden Update einzustreuen, ist dagegen keine gute Idee. Sie sollten vorher vereinbart oder anschließend separat umgesetzt werden.
Klare Kommunikation ist deshalb nicht nur angenehmer. Sie wirkt sich direkt auf den Aufwand aus.
Jetzt kostenlos TYPO3-Update anfragen
Was macht ein TYPO3-Update gut kalkulierbar?
Am angenehmsten sind Projekte, bei denen klar dokumentiert ist, was vorhanden ist und was nach dem Update funktionieren soll. Die Installation wird regelmäßig gepflegt, die eingesetzten Extensions sind bekannt, Git und SSH sind vorhanden und es gibt einen festen Ansprechpartner. Dann kann man nach einer technischen Analyse ziemlich zuverlässig einschätzen, was zu tun ist.
Schwierig wird es beim Gegenteil: ein großes, über Jahre gewachsenes System, kaum Dokumentation, viele Eigenentwicklungen und niemand weiß mehr genau, was eigentlich alles darin passiert.
Solche Projekte lassen sich trotzdem aktualisieren. Ich würde sie allerdings nicht zu einem künstlichen Festpreis anbieten, sondern transparent nach Aufwand und mit vorher definierten Budgetgrenzen bearbeiten.
Der einfachste Weg, Update-Kosten niedrig zu halten
Regelmäßig aktualisieren.
Wer TYPO3, Extensions und Serverumgebung kontinuierlich auf einem aktuellen Stand hält, verhindert, dass sich über Jahre immer mehr technische Änderungen ansammeln. Dafür braucht es keinen riesigen Wartungsvertrag. Bei vielen kleineren Installationen reichen bereits wenige Stunden regelmäßige Betreuung, um Updates, Extension-Versionen und technische Änderungen im Blick zu behalten. Wer dagegen mehrere Major-Versionen abwartet, bis PHP nicht mehr unterstützt wird oder der Hoster Druck macht, muss irgendwann sehr viele Änderungen auf einmal nachholen. Und genau dann wird aus einem normalen Update ein großes Projekt.