Alle viereinhalb Jahre passiert es einmal. Contao bekommt eine neue Hauptversion und mit ihr eine Reihe von Entscheidungen, die den Unterbau für die nächsten Jahre festlegen. Am 26. August 2026 war es wieder so weit. Contao 6.0 ist erschienen, rund 150 Pull Requests stecken darin und der auffälligste Punkt ist ausgerechnet etwas, das ab jetzt fehlt.
Kurz gesagt: Contao speichert Eingaben nicht mehr codiert in der Datenbank, sondern kümmert sich erst bei der Ausgabe um die passende Codierung. Dazu kommen der endgültige Abschied von den HTML5-Templates zugunsten von Twig, ein neuer Filehash im Dateisystem und ein einziges Backend-Theme. Dieser Beitrag zeigt, was sich konkret ändert, worauf beim Update zu achten ist und warum ein Wechsel nicht für jede Website sofort sinnvoll ist.
Kein Input-Encoding mehr
Bisher hat Contao bestimmte Zeichen beim Speichern umgewandelt. Eine spitze Klammer, eine runde Klammer, ein Und-Zeichen oder ein Apostroph landeten nicht so in der Datenbank, wie sie eingegeben wurden, sondern als HTML-Entity. Das nennt sich Input-Encoding. Es sollte verhindern, dass Code in Inhalte gerät, der dort nichts zu suchen hat.
Im Alltag fällt das kaum auf, solange Inhalte in Contao eingegeben und von Contao ausgegeben werden. Unangenehm wurde es immer dann, wenn die Daten das System verlassen haben. Wer schon einmal einen Datenbankexport über phpMyAdmin geöffnet, eine Schnittstelle gebaut oder Inhalte in ein anderes System übernommen hat, kennt die kryptischen Zeichenketten mitten im Fließtext. Jede dieser Stellen brauchte eine eigene Behandlung, damit aus der Entity wieder ein lesbares Zeichen wurde.
Contao 6 speichert die Eingabe jetzt unverändert. Eine runde Klammer bleibt eine runde Klammer. Damit steht in der Datenbank ein Inhalt, der sich in mehreren Zusammenhängen verwenden lässt, ohne dass vorher eine Codierung rückgängig gemacht werden muss. Der gleiche Text funktioniert als HTML, als JSON-LD, als XML, in einer externen Suche und in einer Schnittstelle.
Für Redaktionen ändert sich dadurch im Backend nichts. Der Unterschied wird erst sichtbar, wenn jemand direkt in die Datenbank schaut oder Inhalte weiterverarbeitet. Genau dort wird die Arbeit ab jetzt deutlich angenehmer.
Die Sicherheit rückt an die Ausgabe
Wenn nicht mehr beim Speichern codiert wird, muss es bei der Ausgabe passieren. Genau das macht Contao 6. Die Codierung erfolgt immer in dem Zusammenhang, in dem der Inhalt gerade gebraucht wird. Ein Text im HTML-Dokument wird anders behandelt als derselbe Text in einem JSON-LD-Block oder in einem Attribut.
Für Redaktionen ändert sich dadurch nichts. Für alle, die eigene Templates pflegen oder eigenen Code schreiben, ändert sich einiges. Inhalte aus der Datenbank müssen jetzt bewusst korrekt ausgegeben werden. Twig hilft dabei, weil dort standardmäßig escaped wird. Wer die neuen Templates nutzt, bekommt das sichere Verhalten also geschenkt.
Aufpassen muss man an den Stellen, an denen dieser Schutz bisher absichtlich abgeschaltet wurde. Wer großzügig mit dem raw-Filter gearbeitet hat, sollte jede einzelne Stelle noch einmal prüfen und sich fragen, welche Daten dort eigentlich ankommen. Für Inhalte aus dem Rich-Text-Editor gibt es den Filter sanitize_html. Er lässt genau die HTML-Tags durch, die in den Systemeinstellungen erlaubt sind. Den Rest filtert er heraus.
Contao läuft jetzt vollständig auf Twig
Der Weg dorthin hat mehrere Jahre gedauert. Er begann bei den Inhaltselementen und ist mit Contao 6 abgeschlossen. Nachrichten, Events, Navigationen und der Rest des Systems arbeiten jetzt ebenfalls mit Twig. Die klassischen HTML5-Templates gibt es nicht mehr.
Im Backend verschwindet damit auch der Menüpunkt „Templates“. Wer dort über die Jahre Anpassungen abgelegt hat, muss sie nach Twig überführen. Für den Einstieg gibt es das alte Seiten-Template fe_page als konvertierte Twig-Variante. Ein Projekt muss also nicht sofort auf das neue Slot-Layout umgebaut werden, sondern kann den Umstieg in zwei Schritten gehen.
Für Agenturen steckt hier die eigentliche Arbeit. Eine Website mit wenigen Anpassungen ist schnell umgestellt. Ein über Jahre gewachsenes Projekt mit dutzenden überschriebenen Templates braucht Zeit, eine Testumgebung und einen ehrlichen Blick darauf, welche Anpassung überhaupt noch gebraucht wird. Erfahrungsgemäß fällt bei dieser Gelegenheit ein guter Teil des Altbestands weg.
Der Gewinn ist ein einheitliches Template-System. Vererbung, Blöcke, Filter und Funktionen arbeiten überall nach denselben Regeln. Wer einmal verstanden hat, wie ein Twig-Template in Contao aufgebaut ist, findet sich in jedem Bereich zurecht.
Ein Backend-Theme statt mehrerer
Contao verzichtet ab sofort auf die Möglichkeit, mehrere Backend-Themes zu betreiben. Das Theme „flexible“ wird zum Standard und der Ordner system/themes entfällt. Der Vorteil liegt in der Weiterentwicklung. Neue Funktionen im Backend lassen sich einbauen, ohne Rücksicht auf konkurrierende Themes zu nehmen und ohne dass dabei etwas zerbricht.
Anpassungen sind weiterhin möglich und sogar einfacher als früher. Über die Konfiguration lassen sich eigene CSS- und JavaScript-Dateien einbinden, ein eigener App-Name und eine eigene Versionsnummer setzen sowie der Backend-Pfad festlegen. Für ein dezentes Agentur-Branding im Kundenbackend reicht das in aller Regel aus.
Neuer Filehash im Dateisystem
Das datenbankgestützte Dateisystem nutzt mit xx128 einen neuen Filehash. Das klingt unspektakulär, hat aber eine sehr praktische Folge für jedes Update. Das Dateisystem sollte vor dem Update auf Contao 6 synchronisiert sein und nach dem Update ein zweites Mal synchronisiert werden.
Im Backend erledigt das die Synchronisation in der Dateiverwaltung. Auf der Konsole übernimmt der Befehl contao:filesync die Aufgabe. Wer diesen Schritt überspringt, riskiert Dateien, die im Backend nicht mehr sauber zugeordnet werden. Bei einer Installation mit vielen tausend Dateien lohnt es sich, für den zweiten Durchlauf etwas Zeit einzuplanen.
Weitere Neuerungen im Überblick
Neben den großen Umbauten stecken in Contao 6 viele kleinere Verbesserungen, die im Alltag auffallen.
- Das Insert-Tag für Dateien unterstützt jetzt das Virtual File System und damit auch die Versionierung.
- Geschützte Dateien lassen sich nun auch über das Video-Element ausliefern. Contao erzeugt dafür automatisch temporäre Adressen, sodass sich Videos gezielt nur bestimmten Mitgliedergruppen zeigen lassen.
- Eigene CSS-Klassen an Formularfeldern landen nur noch am umschließenden Wrapper statt an mehreren Stellen des Widgets.
- Für jedes Nachrichtenarchiv lässt sich der JSON-LD-Typ festlegen, wahlweise NewsArticle, Article oder Blog.
- Jede Seite in der Seitenstruktur kann ein Bild bekommen. Es wird als primaryImageOfPage im JSON-LD ausgegeben und taucht zusätzlich in der Contao-Suche auf.
- Inhalte lassen sich direkt in verschachtelte Elemente einfügen, ohne vorher eine Ebene tiefer zu wechseln. Das betrifft Elementgruppe, Slider und Akkordeon.
- Virtuelle Felder werden jetzt auch im Kern genutzt. Sie fassen Zusatzfelder in einem JSON-Feld zusammen, damit Installationen mit vielen Erweiterungen nicht an das Spaltenlimit von MySQL stoßen.
- Die Twig-Filter simple_token und simple_token_html ersetzen Simple-Tokens direkt im Template.
- Der Twig-Filter insert_tag_raw heißt jetzt insert_tag_html. Die alte Schreibweise funktioniert weiterhin, ist aber als veraltet markiert.
Der Releaseplan bis 2032
Für die Planung ist die wichtigste Frage nicht, was neu ist, sondern wie lange eine Version Updates bekommt. Contao arbeitet dafür mit einem festen Rhythmus. Alle sechs Monate erscheint eine neue Version. Jede dritte davon ist eine Version mit verlängertem Support.
Contao 6.0 wird bis Februar 2027 mit Bugfixes versorgt und dann von Contao 6.1 abgelöst. Das ist der normale Takt einer Zwischenversion. Wer jetzt auf 6.0 geht, verpflichtet sich damit auch, den halbjährlichen Versionswechseln zu folgen.
Anders sieht es bei Contao 5.7 aus. Diese Version ist seit August 2026 im Long Term Support und bekommt bis Februar 2029 Bugfixes, danach bis Februar 2030 noch Sicherheitsupdates. Für viele Unternehmenswebsites ist das der ruhigere Weg. Contao 5.3 läuft dagegen aus. Bugfixes gibt es dort nur noch bis Februar 2027 und Sicherheitsupdates bis Februar 2028.
Die nächste Version mit verlängertem Support ist Contao 6.3. Sie erscheint im August 2028 und wird bis Februar 2031 mit Bugfixes sowie bis Februar 2032 mit Sicherheitsupdates versorgt. Wer heute auf 5.7 bleibt, hat damit ein klares Ziel für den übernächsten Schritt.
Der Weg von Contao 5 auf Contao 6
Ein Major-Update ist kein Klick im Contao Manager. Es ist ein geplanter Vorgang mit Testumgebung, Sicherung und einer Liste, die vorher abgearbeitet wird. Die folgende Reihenfolge hat sich in der Praxis bewährt.
- Zuerst auf die aktuellste Version von Contao 5.7 aktualisieren, damit alle Migrationen vorhanden sind. Dieser Schritt ist nicht optional.
- Serverumgebung prüfen. Contao 6 setzt PHP 8.4 oder neuer voraus.
- Alle eingesetzten Erweiterungen auf ihre Contao-6-Kompatibilität prüfen. Erfahrungsgemäß ist das der Punkt, an dem ein Update verschoben wird.
- Das Dateisystem synchronisieren.
- Eigene HTML5-Templates nach Twig überführen und dabei jede Stelle mit dem raw-Filter kontrollieren.
- Update auf Contao 6.0 ausführen, Migrationen durchlaufen lassen und das Dateisystem erneut synchronisieren.
- Die Ausgabe im Frontend prüfen, besonders bei Umlauten, Anführungszeichen und Inhalten aus Formularen.
Zur Einordnung noch ein Blick auf die Kompatibilität. Contao 6.0 arbeitet mit Symfony 7.4 und 8, PHP 8.4 und neuer, Monolog 3, Doctrine DBAL ab 4.4, Doctrine ORM 3.6 sowie TinyMCE 5 bis 8.
Für wen sich der Umstieg jetzt lohnt
Nicht jede Website muss diesem Release sofort folgen. Die Entscheidung hängt weniger an den Funktionen als am Betriebsmodell.
- Neue Projekte starten sinnvollerweise direkt auf Contao 6. Alles andere wäre ein geplanter Umbau kurz nach dem Launch.
- Projekte mit eigener Entwicklung, wenigen Fremderweiterungen und einem gepflegten Deployment profitieren sofort, vor allem wenn Inhalte über Schnittstellen weiterverarbeitet werden.
- Wer ohnehin einen Relaunch plant, nimmt den Wechsel gleich mit und spart sich die doppelte Template-Arbeit.
- Produktive Websites mit vielen Erweiterungen bleiben vorerst besser auf Contao 5.7 LTS. Die Version wird bis 2029 gepflegt und das ist genug Zeit für einen geordneten Wechsel.
- Wer keine halbjährlichen Versionswechsel mitgehen möchte, wartet auf Contao 6.3 im August 2028 und plant den Umstieg von LTS zu LTS.
Unabhängig von der Entscheidung lohnt sich jetzt eine Bestandsaufnahme. Welche Templates sind angepasst? Welche Erweiterungen sind im Einsatz und werden sie noch gepflegt? Auf welcher PHP-Version läuft der Server? Wer diese drei Fragen beantworten kann, weiß auch, wie aufwendig das Update wird.
Fazit: ein Fundament, kein Feuerwerk
Contao 6.0 ist kein Release, das man an neuen Schaltflächen erkennt. Der Aufwand steckte im Unterbau. Der Wechsel von Input- zu Output-Encoding und die vollständige Umstellung auf Twig räumen zwei Altlasten ab, die jahrelang jede Weiterentwicklung ausgebremst haben.
Dass sich das lohnt, zeigt der Blick nach vorn. Für Contao 6.1 sind bereits Verbesserungen fertig, die im Alltag sofort auffallen. Baumansichten sollen bis zu viermal schneller werden, das Menü-Rendering wurde beschleunigt und die Grundlagen für eine neue Schnittstelle sind gelegt. Das eigentliche Tempo nimmt Contao also erst mit den nächsten Versionen auf.
Für Betreiber bedeutet das keine Hektik, aber eben auch kein Aussitzen. Contao 5.7 LTS gibt bis 2029 Luft. Diese Zeit sollte man nutzen, statt sie zu verstreichen.
Sie betreiben eine Contao-Website und wissen nicht, ob der Umstieg auf Contao 6 jetzt ansteht oder noch warten kann? Wir schauen uns Ihre Installation an, prüfen Erweiterungen, Templates und Serverumgebung und sagen Ihnen ehrlich, was ein Update kosten würde und was es bringt.
Häufige Fragen
Hier finden Sie kurze Antworten auf die wichtigsten Fragen rund um Contao 6.
Nein. Contao 5.7 ist eine Version mit verlängertem Support und bekommt bis Februar 2029 Bugfixes sowie bis Februar 2030 Sicherheitsupdates. Wer eine stabile Produktivseite betreibt, hat also reichlich Zeit für einen geplanten Wechsel.
Klassische HTML5-Templates werden von Contao 6 nicht mehr verwendet. Eigene Anpassungen müssen nach Twig überführt werden. Für den Einstieg steht das alte Seiten-Template als konvertierte Twig-Variante bereit, sodass der Umbau in zwei Schritten möglich ist.
Contao 6.0 setzt mindestens PHP 8.4 voraus. Auf älteren Serverumgebungen läuft die Version nicht. Ein Blick in die Systemvoraussetzungen gehört deshalb an den Anfang jeder Update-Planung.
Die Migrationen, die Ihre Datenbank auf den neuen Stand bringen, liegen in der aktuellsten Version von Contao 5.7. Wer diesen Zwischenschritt überspringt, hat sie nicht zur Verfügung und riskiert eine unvollständige Umstellung.
Nein. Die vorhandenen Inhalte werden durch Migrationen in die neue Speicherform überführt. Prüfen sollte man trotzdem, denn eigene Templates und Erweiterungen können Inhalte an Stellen ausgeben, an denen die Codierung bisher anders gedacht war.
Contao 6 nutzt einen neuen Filehash. Das Dateisystem sollte vor dem Update synchronisiert sein und nach dem Update ein zweites Mal synchronisiert werden, im Backend über die Dateiverwaltung oder auf der Konsole über contao:filesync.