A TYPO3 update is more than installing a new core version. In practice, the effort (and therefore the price) depends heavily on how "grown" a system is: which TYPO3 version is currently running, which extensions are in use, how much custom development exists, and which external systems are connected. Anyone who carefully considers these factors can realistically estimate the effort and avoid surprises in the project.
Key Factors for Cost Calculation
1. How Old Is the Current TYPO3 Version?
The bigger the version jump, the more technical changes need to be considered. An update from a relatively recent LTS version (e.g. v12 → v13) is usually much more predictable than a jump across several major versions (e.g. v9 → v13/v14). Older systems often combine several issues at once: outdated PHP versions, older template/extension architectures, legacy TypoScript, or APIs that are no longer supported. This increases analysis and migration effort, but above all testing time, since many "small" changes become noticeable in combination.
2. How Many – and Especially Which – Extensions Are Used?
It's not just the number but especially the type of extensions that determines the effort. A system with a few well-established standard extensions (e.g. news, powermail, redirects) can usually be updated smoothly. It gets more critical when many extensions reach deep into the system (e.g. frontend login workflows, complex content elements, routing, Solr/Elasticsearch, form-framework extensions, custom backend modules). Such extensions often affect core TYPO3 APIs and require more adaptation and more intensive testing during version changes.
3. Third-Party Extensions (TER) vs. Custom Development
This is where the biggest cost driver lies in many projects:
- TER/third-party extensions: If an extension is actively maintained and a compatible version exists for the target TYPO3 version, migration is often fairly predictable: update via Composer/TER, check configuration, test.
- Custom development: Every custom extension must be manually reviewed and made compatible with the new TYPO3 version. This includes code adjustments (API changes, PHP adjustments), TCA/TSconfig, Fluid templates, custom ViewHelpers, scheduler tasks, hooks/events, and more. The more custom logic, the higher the effort.
4. Are Compatible Versions Available for TER Extensions?
A key step in update planning is an "extension audit": for every TER extension in use, it's checked whether a version exists that officially supports the target version (e.g. TYPO3 v13 or v14). If so, the extension is updated and tested. If not, there are typically three paths:
- Replace the extension (if a modern alternative exists)
- Patch/adapt the extension (if the code is manageable and the license/repo allows it)
- Remove the feature (if it's no longer needed)
This point is extremely important in practice, because "incompatible" extensions can block an update entirely – or lead to bugs later that only show up in production.
5. What to Do with Custom Development and Unmaintained Third-Party Extensions
Custom development must always be actively migrated. In addition: third-party extensions without a compatible version must either be adapted or replaced. A pragmatic approach often pays off here: first assess how critical the feature is, how much adaptation effort would be required, and whether an established alternative exists on the market. A clean replacement can be cheaper in the long run than "permanently dragging along" an unmaintained extension through every major update.
6. External Interfaces: More Coordination, More Testing
Interfaces to third-party systems often increase effort considerably – less because of the code change itself, and more because of coordination and testing. Typical examples are CRM/ERP integrations, newsletter tools, single sign-on, payment providers, PIM systems, job boards, DAM/media services, or custom REST APIs. Here, not only TYPO3-side adjustments need to be checked, but also:
- versions and changes on the other side
- test accounts, test data, test environments
- coordination with external service providers
- acceptance tests with clear test cases