TYPO3 13.4.20
11 November 2025
TYPO3 version 13.4.20 is now available.
Upgrading to TYPO3 13.4.20
TYPO3 13.4.20 can be upgraded to (or installed) using any of Installatron's products. Use Installatron's optional Automatic Update feature to automatically apply TYPO3 updates as new versions are released, or use Installatron's Clone feature to duplicate an existing TYPO3 install to test the 13.4.20 upgrade prior to applying it live. Get started managing your TYPO3 installations with Installatron
What's New in TYPO3 13.4.20
Bug Fixes and Changes
- [DOCS] cache:warmup help text: warn about PHP version mismatch (thanks to Lina Wolf)
- [BUGFIX] Improve module body scroll performance and reduce CPU spikes (thanks to Benjamin Franzke)
- [BUGFIX] Preserve restrictions for subselect in GreedyDatabaseBackend (thanks to Oliver Bartsch)
- [BUGFIX] Assure working redirect on discarded extension upload (thanks to Elias Häußler)
- [TASK] Link records in the preview of CType shortcut (thanks to Georg Ringer)
- [BUGFIX] Implement button with single class attribute (thanks to Ayke Halder)
- [TASK] Update phpdocumentor/reflection-docblock dependency (thanks to Stefan Bürk)
- [BUGFIX] Detect FIRST_INSTALL in project path as well (thanks to morgane)
- [TASK] Allow Stringable for Extbase UriBuilder (thanks to Sascha Nowak)
- [BUGFIX] Use full row to check permissions deleting a record (thanks to Georg Ringer)
- [BUGFIX] Streamline pseudo button behavior (thanks to Benjamin Franzke)
- [BUGFIX] Keep TCA item group ordering when groups are removed (thanks to Nikita Hovratov)
- [BUGFIX] Update icon set to v4.4.1 with bidi (RTL/LTR) support (thanks to Benjamin Kott)
- [BUGFIX] Correct max-height calculation of dropdowns in docheader (thanks to Benjamin Kott)
- [BUGFIX] Ensure uri.action and link.action work the same (thanks to Markus Klein)
- [BUGFIX] Ensure relocated CSS URLs preserve fragments (thanks to Andreas Nedbal)
- [BUGFIX] Restore password toggle and capslock warning functionality (thanks to Elias Häußler)
- [BUGFIX] Define height for modal size "small" (thanks to Jochen Roth)
- [TASK] Ensure *.action viewhelpers have the same argument descriptions (thanks to Markus Klein)
- [BUGFIX] Allow to provide byte size units in FileSizeValidator (thanks to Torben Hansen)
- [TASK] Resolve some todos in SelectViewHelper (thanks to Torben Hansen)
- [BUGFIX] Handle failed preg_replace() in indexed search (thanks to Sebastian Mendel)
- [BUGFIX] Avoid performance bottleneck in system information toolbar (thanks to Benjamin Franzke)
- [BUGFIX] Avoid applying CSP nonce sources when not required (thanks to Oliver Hader)
- [BUGFIX] Sort forms across all pages (thanks to Josua Vogel)
- [DOCS] Fix PHP 8.4 warning in widget example code (thanks to Christian Weiske)
- [BUGFIX] Do not delete history in install tool + scheduler (thanks to Benni Mack)
- [BUGFIX] Fix vimeo and youtube rendering for deleted reference (thanks to morgane)
- [BUGFIX] Prevent CLI cleanup:localprocessedfiles cleaning all files (thanks to Česlav Przywara)
- [BUGFIX] Do not add cache busting to folders (thanks to Helmut Hummel)
- [BUGFIX] Ensure output compression handler is only initialized once (thanks to Oliver Hader)
- [TASK] Turn FE RequestHandler unit into functional tests (thanks to Christian Kuhn)
- [BUGFIX] Fix ESC key handling in Install Tool modal (thanks to Michael Binder)
- [BUGFIX] Improve pagetree performance (thanks to Benjamin Franzke)
- [BUGFIX] Fix wrong aligned border in recycler module (thanks to Michael Binder)
- [TASK] Remove not needed .phpstorm.meta.php entry (thanks to Markus Klein)
- [TASK] Add text alternative for tree options menu (thanks to mschmigotzki)
- [TASK] Add visual labels to backend login related form input fields (thanks to Elias Häußler)
- [BUGFIX] Move title attribute to the link instead of parent div (thanks to Georg Ringer)
- [TASK] Improve user session garbage collection algorithm (thanks to stepo2)
- [BUGFIX] Avoid array access on missing page in LatestChangedPagesWidget (thanks to Ulrich Mathes)
- [BUGFIX] Maintain focus after clearing a clearable input field (thanks to Benjamin Franzke)
- [BUGFIX] Enhance error handling in YamlSource (thanks to josuavogel)
- [BUGFIX] Harden MathUtility::canBeInterpretedAsInteger() for PHP8.5 (thanks to Stefan Bürk)
- [TASK] Use another search string to check for No Result found. (thanks to Stefan Bürk)
- [TASK] Add ARIA role "alert" to login error message (thanks to René Pflamm)
- [TASK] Improve line height for links in login screen (thanks to Vladimir Falcón Piva)
- [TASK] Render page column header as header element (thanks to Elias Häußler)
- [BUGFIX] Ensure CSP header has nonce in partially cached state (thanks to Oliver Hader)
- [BUGFIX] Apply error class to Advanced Password fields (thanks to josuavogel)
- [DOCS] Add propertiesExcludedFromTranslation finisher option (thanks to josuavogel)
- [BUGFIX] Avoid ORDER BY from count queries in Webhooks/Reactions (thanks to Oliver Bartsch)
- [BUGFIX] Align SplitButton usage to allow LinkButton (thanks to Garvin Hicking)
- [BUGFIX] Maintain focus on autofocused clearable input elements (thanks to Elias Häußler)
- [DOCS] Use correct finisher code examples (thanks to Oliver Bartsch)
- [BUGFIX] FalStatus must only check browsable storages (thanks to Markus Klein)
- [TASK] Make MathUtility::canBeInterpretedAsInteger more robust (thanks to Oliver Klee)
- [BUGFIX] Avoid using bool as array in EXT:indexed_search (thanks to Stefan Bürk)
- [BUGFIX] Prevent unintended operations in FormEngine (thanks to Oliver Bartsch)
- [TASK] Hide draggable page tree toolbar items for screen reader users (thanks to Elias Häußler)
- [TASK] Simplify RecoveryCodes::generatePlainRecoveryCodes (thanks to Oliver Hader)
- [BUGFIX] Add ARIA label reference to close button in modal windows (thanks to Christian Rath-Ulrich)
- [BUGFIX] Use correct variable name for checking sort order (thanks to Georg Ringer)
- [TASK] Add getter for paginator to SimplePagination (thanks to Georg Ringer)
- [BUGFIX] Do not prefix URL in ImageResource (thanks to Helmut Hummel)
- [DOCS] Fix removal of deprecate legacy form templates in changelog (thanks to Chris Müller)
- [DOCS] Corrected TypoScript example (thanks to Christian Ludwig)
- [TASK] Add var/transient to the directories to be checked (thanks to Georg Ringer)
- [DOCS] Use correct method in file upload configuration code example (thanks to Sebastian Iffland)
- [BUGFIX] Preserve current folder in element browser (thanks to Oliver Bartsch)
- [BUGFIX] Use proper labels in Redirects module (thanks to Benni Mack)
- [TASK] Avoid "ord(): Providing an empty string is deprecated" (thanks to Stefan Bürk)
- [TASK] Avoid "Using null as an array offset is deprecated" (12.4) (thanks to Stefan Bürk)
- [TASK] Avoid "Using null as an array offset is deprecated" (13.4) (thanks to Stefan Bürk)
- [BUGFIX] Fix access checks for nested modules (thanks to Oliver Bartsch)
- [TASK] Update package dependencies in composer.lock (thanks to Stefan Bürk)
- [TASK] Improve accessibility of live search button in backend toolbar (thanks to Elias Häußler)
- [TASK] Update alwan to 2.2.0 (thanks to Benjamin Franzke)
- [TASK] Disable color scheme toggle if forced-colors mode is active (thanks to Elias Häußler)
- [DOCS] Add missing parenthesis (thanks to Jonas)
- [BUGFIX] Fix contextmenu position when triggered via Enter or Space (thanks to Benjamin Franzke)
- [BUGFIX] Render hreflang properly in TypoScript getData (thanks to Benni Mack)
- [BUGFIX] Consider starttime/endtime for versioned records (thanks to Benni Mack)
- [BUGFIX] Allow alternative text for all file types (thanks to Oliver Bartsch)