Die Frage nach den Laravel Upgrade Kosten bekomme ich fast in jedem Erstgespräch. Und fast immer erwartet der Fragende eine Zahl: 5.000 Euro? 40.000 Euro? Die ehrliche Antwort ist unbequemer. Der Preis eines Upgrades hängt kaum von der Zielversion ab, sondern vom Zustand des Codes, den Sie mitschleppen. Zwei Anwendungen auf derselben Laravel-Version können sich im Aufwand um das Zehnfache unterscheiden. Dieser Artikel erklärt, welche Faktoren den Preis wirklich treiben, damit Sie eine Schätzung einordnen können, statt ihr blind zu vertrauen.
Warum die Laravel-Version selbst kaum etwas kostet
Ein Sprung von Laravel 9 auf 10 oder von 10 auf 11 ist für sich genommen überschaubar. Das Framework pflegt einen sauberen Upgrade Guide, und mit Tools wie Laravel Shift lassen sich viele mechanische Änderungen automatisiert anwenden. Wenn Ihre Anwendung nah am Framework-Standard gebaut ist, aktuelle PHP-Versionen nutzt und eine brauchbare Testabdeckung hat, ist ein Versionssprung eine Sache von Tagen, nicht Wochen.
Teuer wird es dort, wo über Jahre am Framework vorbei gearbeitet wurde: gepatchte Vendor-Dateien, direkte Zugriffe auf interne Klassen, eigene Reimplementierungen von Dingen, die Laravel längst mitbringt. Jede dieser Stellen bricht bei einem Upgrade und muss einzeln geprüft werden. Das ist der eigentliche Kostentreiber, nicht die Versionsnummer.
Welche Faktoren die Laravel Upgrade Kosten wirklich bestimmen
Bevor ich eine Zahl nenne, schaue ich mir in der Regel diese Punkte an. Sie sind der Unterschied zwischen einem Wochenprojekt und einem Quartalsprojekt.
- Anzahl der übersprungenen Versionen: Ein Sprung von Laravel 8 auf 11 bedeutet mehrere Major-Versionen mit jeweils eigenen Breaking Changes. Jeder Zwischenschritt hat seine eigenen Fallstricke, etwa der Wechsel des Standard-Passwort-Hashings oder Änderungen an der Ordnerstruktur in Laravel 11.
- PHP-Version: Oft hängt ein altes Laravel an einer alten PHP-Version. Der Sprung auf PHP 8.2 oder 8.3 bringt eigene Breaking Changes mit, etwa bei dynamischen Properties. Das ist ein Upgrade im Upgrade.
- Testabdeckung: Ohne automatisierte Tests wird nach jedem Schritt manuell geklickt. Das kostet Zeit und übersieht Fehler. Fehlende Tests sind der teuerste einzelne Faktor.
- Abhängigkeiten von Composer-Paketen: Ein verwaistes Paket, das die Zielversion nicht unterstützt, kann Sie zwingen, es zu ersetzen oder selbst zu forken. Ein einziges solches Paket kann mehr Aufwand verursachen als das gesamte Framework-Upgrade.
- Frontend-Kopplung: Der Wechsel von Laravel Mix zu Vite oder veraltete JavaScript-Abhängigkeiten ziehen häufig mehr Arbeit nach sich als erwartet.
Was kostet ein Laravel-Upgrade grob?
Ein sauberes, gut getestetes Ein-Versionssprung-Upgrade kostet in der Regel wenige Tage Aufwand. Ein mehrere Versionen umspannendes Upgrade einer gewachsenen Anwendung ohne Tests liegt eher im Bereich mehrerer Wochen.
Ich vermeide bewusst pauschale Eurobeträge, weil sie ohne Blick in den Code irreführend sind. Seriös ist eine Schätzung erst nach einer kurzen Analyse: Composer-Datei, PHP-Version, Test-Situation und ein Blick in die kritischen Module. Diese Analyse dauert meist ein bis zwei Tage und ist gut investiert, weil sie die eigentliche Bandbreite der Kosten festlegt.
Warum eine Neuentwicklung fast immer teurer ist
Bei alten Systemen kommt schnell der Gedanke: einmal komplett neu, dann ist Ruhe. In der Praxis ist die Neuentwicklung fast immer die teuerste und riskanteste Option. Der Grund liegt in der Fachlogik.
Ein System, das seit Jahren im Produktivbetrieb läuft, ist kein Müll. Es ist der Beweis, dass die Geschäftslogik funktioniert. In diesem Code stecken hunderte Sonderfälle, Rundungsregeln und Ausnahmen, die niemand mehr dokumentiert hat, die aber jeden Tag korrekt greifen. Bei einer Neuentwicklung müssen Sie all das neu entdecken und neu testen. Das Problem einer Legacy-Anwendung ist selten die Fachlogik, sondern der Code drumherum: Framework-Version, Struktur, fehlende Tests. Genau dieser Teil lässt sich schrittweise sanieren, ohne die funktionierende Logik anzutasten.
Wie man die Kosten senkt: Erst stabilisieren, dann upgraden
Der günstigste Weg durch ein Upgrade führt fast nie direkt zur neuen Version. Er führt über eine Vorbereitung, die den eigentlichen Sprung erst planbar macht.
- Testabdeckung für die kritischen Pfade schaffen. Sie brauchen keine hundert Prozent. Ein paar Feature-Tests für Login, Checkout, Rechnungslogik oder was auch immer Ihr Kerngeschäft ist, geben nach jedem Schritt die Sicherheit, dass nichts gebrochen ist.
- PHP-Version zuerst anheben, solange die Laravel-Version noch stabil ist. So trennen Sie zwei Fehlerquellen voneinander.
- In kleinen Schritten upgraden, Version für Version, statt drei Majors auf einmal. Jeder Schritt ist einzeln testbar und im Zweifel zurückrollbar.
- Verwaiste Pakete vor dem Upgrade ersetzen, nicht mittendrin.
Dieser Weg wirkt langsamer, ist aber in der Summe günstiger, weil er teure Überraschungen im laufenden Betrieb vermeidet.
Häufige Fragen zu den Kosten eines Laravel-Upgrades
Kann ich mehrere Laravel-Versionen auf einmal überspringen?
Technisch ja, praktisch selten empfehlenswert. Jeder Major bringt eigene Breaking Changes mit, und ein Sammel-Upgrade macht es schwer, die Ursache eines Fehlers zu finden. Schrittweise Upgrades sind besser testbar.
Warum bekomme ich keinen Festpreis ohne Analyse?
Weil der Aufwand fast vollständig vom Zustand Ihres Codes abhängt und nicht von der Zielversion. Ein Festpreis ohne Code-Einblick ist entweder stark überkalkuliert oder wird später nachverhandelt.
Lohnt sich das Upgrade überhaupt, wenn alles läuft?
Sobald Ihre Version aus dem Security-Support fällt, laufen Sie in ein Sicherheitsrisiko. Eine nicht mehr gepflegte Version bekommt keine Patches für neue Schwachstellen mehr, und das betrifft am Ende Ihre Nutzerdaten.
Ehrlicher Praxis-Tipp zum Schluss: Lassen Sie sich vor jedem Angebot eine kurze Analyse Ihrer Composer-Datei, PHP-Version und Test-Situation geben. Genau bei dieser Einordnung und der schrittweisen Sanierung unterstützt LegacyWerk, wenn Sie eine zweite Meinung oder Begleitung brauchen.