Blog single

The Ultimate Guide to TYPO3 Update/Upgrade

TYPO3 update/upgrade is one of the most crucial tasks for TYPO3 agencies and developers.

In my long journey of TYPO3 (almost 12+ years), I’ve developed numerous websites (Medium to Large-scale) TYPO3 upgrade from old-school version 4.x to modern 8.x, 9.x and 10.x.

Here, I would like to share my experience which will help beginners to expert level TYPO3 developers & agencies.

After reading this blog, I’m sure, You will have good enough knowledge to perform the TYPO3 update/upgrade well, and your client will be more than happy.

What is TYPO3 Update/Upgrade?

As simple it seems, a TYPO3 update or also known as TYPO3 upgrade is the process of renewal of your current TYPO3 content management system (CMS) software to a higher TYPO3 version of improved features and functionalities with or without the help of a TYPO3 agency.

The main purpose of TYPO3 update is to make the life easier for TYPO3 users by adding new features and improving the website security.  In addition, TYPO3 update is very important for your website’s cross device performance. If your website is not optimized for mobile devices, you will lose a significant amount of traffic. By updating your current TYPO3 version to a new version, you can increase the mobile suitability and performance of your website which also helps to reduce loading time.

The Roadmap of TYPO3 CMS

TYPO3 is well-known to be pre-planned and create a roadmap and strictly follow the deadline to continuously release next TYPO3 versions.

You can find all the information related to new versions of TYPO3 CMS from below TYPO3 CMS roadmap.

Source: https://typo3.org/cms/roadmap

TYPO3 version 10 roadmap

VersionPrimary FocusEstimated Release
10.0Pave the way for exciting new concepts and APIs & necessary breaking changesReleased: 2019-07-23
10.1Routing Improvements and Site Handling v2Released: 2019-10-01
10.2Fluid / Rendering Engine ImprovementsReleased: 2019-12-03
10.3Feature FreezeReleased: 2020-02-25
10.4LTS ReleaseEstimated: 2020-04-21

What is the current TYPO3 version?

Well, the current TYPO3 version is 9.5 LTS and it will be supported until October 2021 with security and critical fixes. Also, TYPO3 version 10 is currently under development and the estimated date of LTS release is 21 April, 2020.

TYPO3 update version categorization

TYPO3 update can be categorized into major three categories as follows:

Option 1: Minor Updates

The TYPO3 community continuously releases the security checks version with branch eg., TYPO3 9.5.10 You should always update TYPO3’s latest version.

Check out the detailed report at https://get.typo3.org/release-notes/9.x/TYPO3_CMS_9.5.10. Generally, It only contains security patches & changes, so it’s easy to update in matters of 3/4 hours.

Option 2: Major Updates

It means you need to consider the TYPO3 update version from one LTS (Long Term Support) to another LTS.

Suppose, you have the TYPO3 website with TYPO3 6.x LTS, then you should consider an update to the latest TYPO3 9.x LTS. It’s a bit difficult and complicated to update TYPO3, based on the site’s complexity & the number of extensions.

Did you know?

"TYPO3 is the only open source content management system with a vendor-level warranty."

Option 3: Website Relaunch

Sometimes it's recommended to relaunch the website instead of doing the TYPO3 update completely. Relaunch means the whole brand new website development.

TYPO3 Relaunch or TYPO3 Upgrade? Ask Yourself

With constantly changing trends and businesses, one must also keep their websites updated. And with changing and constantly developing business website features, a combination of obsolete template and TYPO3 version never fits all. Whatever the related technology maybe, every running site requires regular attention. TYPO3 CMS supports and powers your website for years with regular checks and updates.

You might be confused when it comes to choosing between TYPO3 Relaunch and TYPO3 Upgrade. There are many factors, that can decide to make a relaunch or update as follows:

  • TYPO3 update from 4.x to 8.x with very complex and old-school techniques?
  • Is your TYPO3 website is responsive?
  • Does your website perform well? eg., SEO, Industry standards, etc.,
  • Do you want a modern look for your new website?
  • Are you facing the major issue on speed & performance?
  • Does your existing site have outdated code & techniques?
  • Is estimation efforts of Major update and Relaunch almost the same?

Check out the concluding factors that will surely help you to decide whether to relaunch or update your TYPO3 website. Study them and choose wisely :)

Website Security

If you need regular updates give the best protection against bugs. For support dates, you can check the roadmap of TYPO3 CMS.

Website Appearance

If the website is not compatible with all the devices and has the old fashioned primitive look, it might look good on some devices and give an unpleasant experience to your websites’ visitors. When this is the case, often relaunching or switching to responsive design is the best idea.

Ease of Use

On every upgrade, the newer version comes with better user experience and exciting new features. So it is easy to control, manage and create workflow and content on TYPO3 CMS sites hence upgrading makes complete sense.

Site Performance

Search engine ranks play a major role in visitors' trust building and according to Google’s algorithm these ranks depend upon load time of the site pages so improve performance and ranks by making it responsive and fast.

Did you know?

TYPO3 is the only OpenSource CMS which provides Vendor-based Support!

TYPO3 CMS has its own set of unique advantages and features so making the switch is the practical thing to do. On this upgrade TYPO3 gives you extra Extended Long Term Support at the end of the 3-year regular support cycle resulting in longer validity and support.

Let’s understand it with an example, with the end of TYPO3 support cycle and launch of TYPO3 8.7, there was the discontinuation of community support for security fixes. The users had the option to,

  • Upgrade
  • Relaunch
  • Purchase ELTS for the current version

ELTS offers compatibility fixes and security updates for 24 months. You can book this for 1-2 years with the total support of 5 years with TYPO3 version 6.2 LTS. Migration to the next versions as 7.6 and 8.7 is a natural choice though. ELTS keeps your site running in a secure way for longer but does not remove the need for upgrades.

With both relaunch and upgrades, you create and maintain quality websites to reflect your business.

Highly recommend reading CEO of TYPO3 GmbH’s article at How do you know when it's time to upgrade?

How to determine the currently used TYPO3 version on your site?

Currently, the most stable or we can say preferred TYPO3 version for development is TYPO3 version 9. The latest version with Long Term Support (LTS). It will have full support until March 2020 and security bug fixes until September 2021. You can download your desired TYPO3 version from its official website - https://get.typo3.org/#download

Also, another aspiring news for TYPO3 lovers, TYPO3 version 10 is going to release on the 21st of April 2020! TYPO3 v10 has introduced many new features as well as a major enhancement to existing features.

Depending on the TYPO3 version, you can find your current version of TYPO3 as follows.

TYPO3 version 4.x or 6.x

Select ‘About TYPO3 CMS’ from the left column and you can get the information on the main area of the backend.

TYPO3 version 7.x or 8.x

You can get the version number directly on the header of the backend.

TYPO3 version 9.x

In the new TYPO3 version 9.x, you can find the version number in the header of the backend as well as in the main area of the backend once you login into the TYPO3 backend.

Why update your TYPO3 site?

TYPO3 upgrade is very important to ensure the health and smoother performance of your TYPO3 website. And it relies on the major factors listed below,

Security

To secure and protect your websites from cyber-attacks, it requires a lot of resources and money as well. You need to constantly update or upgrade your software or CMS to get the benefits of new security features. TYPO3 is also one of the CMS which releases new updates every now and then to make your website more secure. But at the same time, using an outdated TYPO3 version can allow attackers to harm your website.

Speed

Loading speed of your webpage determines its performance and trust us, it matters to Google search engine and to your visitors. Therefore it is essential to have a faster loading website. Speed of the page has a direct impact on various business metrics such as search engine rankings, conversions and User Experience(UX).

A recent HTTP Archive evaluation shows the efficient performance of TYPO3 and this scores faster in FCP timing compared to the other CMS.

Features

The latest version of TYPO3 gives you a number of features to improve, catch or reduce errors. By updating your TYPO3 version will give you more control over creating and reusing content, and making sure it looks right for their viewers. Your editors can get their work done quickly whenever and whatever they need to.

Editors

Editors and end-users receive active support through TYPO3 innovations and this reduces the internal costs. Version 9.5 has the following features.

  • User interface is visually appealing
  • Direct image editing in backend such as scaling and trimming is possible
  • Better social media and SEO support
  • Extensive, new wizard to create forms such as for contact request
  • More feedback to the editor from TYPO3
  • Referencing media links
  • File searches from file storage

SEO

SEO community initiative related to v9 ensures that optimization best practices in TYPO3 do not rely upon third-party extensions anymore. From version 9.2 onwards, TYPO3 is going to generate website progressive images that are 2-10% smaller compared to the baseline images. This increases the site speed, improves UX, search rankings, saves energy and reduces the bounce rates. There is a new extension for the SEO system available since TYPO3 version 9.3. This allows you to add metadata as Open Graph giving the editors control on social media sharing resulting in better SEO.

GDPR

Improvements in TYPO3 version 9 limits risks related to exposure of sensitive data on the website. It is possible to make IP addresses anonymous in multiple databases after a specific time and this reduces risk related to private data storage. Core General Data Protection Regulation (GDPR) initiative improves password hashes, user management and access, external media and cookie handling, makes IP addresses anonymous, removes old data, ensures secure TLS and HTTPS connections.

How to analyze & estimate TYPO3 upgrade?

Mostly, you will underestimate the TYPO3 upgrade project because there are lots of technical risks.

That’s why you should always take care well of analyzing the existing site to make proper estimation to make happy to your sales team & maintain a healthy relationship with the client.

Fact for TYPO3 update

“The TYPO3 core update always rocks; only extensions’s compatibility causes problems."

Prepare TYPO3 Backend Report

Team NITSAN developed one of the great TYPO3 Extension call “ns_ext_compatibility”, You can download it from our TYPO3 marketplace https://t3terminal.com/typo3-extension-compatibility-report-pro

This extension will very helpful to generate TYPO3 compatibility with features like:

  • Extensions Compatibility Report
  • Automatic email notification for new version update
  • Compatible from TYPO3 4.x to 9.x
  • Export Feature for Customer
  • Extension Statistics Report
  • Server Compatibility Report
  • System Overview Report

Estimation & Proposal Process

From the above analysis, I’m sure you will able to judge proper estimation of TYPO3 update. Even it’s the technical matter, You may send the detailed proposal to your client as follows:

  • x Hours: TYPO3 Upgrade from 4.x to 6.x to 7.x to 8.x to 9.x to 10.x
  • x Hours: Template Engine/Method change from Automaketemplate to Extbase/Fluid
  • x Hours: TYPO3 Extensions Upgrade (Number of non-compatible extensions * ~2 Hour)
  • x Hours: QA Testing + Bug Fixing
  • x Hours: Miscellaneous (design issues, feedback & support, deployment to DEV & LIVE etc., )

It’s always good practice to check the scope & complexity of the website. You may also write to the client about one of the most uncertainty of TYPO3 update as follows:

Notes for Non-compatible Extension
For such extension not compatible, We will do our best to make them compatible. If a particular extension will not work, then we will need to find a new solution & that will consider as extra efforts.

TYPO3 Update/Upgrade: A Step by Step Guide

  • TYPO3 update 8 to 9
    • Update TYPO3 core from Version 8.x to 9.x
  • TYPO3 update 7 to 9
    • Update TYPO3 core from version 7.x to 8.x
    • Update TYPO3 core from Version 8.x to 9.x
  • TYPO3 update 6 to 9
    • Update TYPO3 core from version 6.x to 7.x
    • Update TYPO3 core from version 7.x to 8.x
    • Update TYPO3 core from Version 8.x to 9.x

Let’s try to dig in depth at each phase of the TYPO3 upgrade. In general practice, I prefer to execute TYPO3 upgrade as follows:

Step 1: Setup at Local Server

Download & Setup everything from LIVE to your LOCAL server

Step 2: Perform TYPO3 Upgrade

At your LOCAL server, Start to Upgrade TYPO3 core, Upgrade extensions, QA Testing & Bug Fixing.

Step 3: Non-compatible Extensions

You will need to do your best to make compatibilities for all the TYPO3 extension with TYPO3 patches, hooks, new standards etc., You will need to provide you list of "not-feasible" TYPO3 extension with a possible "alternative solution" to your customer.

Step 4: Upload it to DEV Server

Once complete everything at the LOCAL server then upload it to DEV server eg., dev.youdomain.com.

Step 5: Customer’s Approval

Your customer will need to test drive the whole site &  provide an approval that everything is fine.

Step 6: Go-Live

Finally, You can upload everything from DEV to the LIVE server.

How to quickly upgrade minor/security updates?

TYPO3 provide the best feature is, we can check out minor/security updates directly from TYPO3 backend. 

  • The Install Tool in the section "Important Actions" provides a function to update the TYPO3 Core.
  • For this to work, It only works under Unix and MacOS and your TYPO3 project working with the typo3_src symlink
  • The document root needs to be writable and One path above document root (../) needs to be writable (new directories need to be allowed to be created).
  • One more important thing is The 'tar' command must be available for extracting the Source package.

Manually Update/Upgrade TYPO3

You can install the minor/security updates manually. Just go to TYPO3 official site typo3.org/download/ and download the Source package of the new TYPO3 version then extract the package on your web server and adjust the typo3_src symlink.

Upgrade from TYPO3 4.x to 6.2 LTS
Reference: https://docs.typo3.org/typo3cms/InstallationGuide/6.2/Upgrade/ 

Upgrade from TYPO3 6.x to 7.6 LTS
Reference: https://docs.typo3.org/typo3cms/InstallationGuide/7.6/Upgrade/ 

Upgrade from TYPO3 7.x to 8.7 and 9.x LTS
Reference: https://docs.typo3.org/typo3cms/InstallationGuide/

Upgrade to TYPO3 10.x
Reference: https://docs.typo3.org/m/typo3/guide-installation/master/en-us/Upgrade/UpgradeToV10/Index.html

TYPO3 Templating Changes
We recommend to make changes and/or upgrade following TYPO3 templating method:

  • css_styled_content to fluid_styled_content
  • TemplaVoila to Fluid
  • Any out-dated old third party TYPO3 extension to Fluid

TYPO3 Extensions Upgrade

The extension has two types, so let’s we check in brief.

TER Extension
There are mainly two ways to Upgrade the TER Extension in a good way.

Upgrade from EM
Directly upgrade the extension using the Extension Manager. Firstly, We need the scheduler called "Update extension list (extension manager)"

This scheduler compares and give the list of upgrade extension when we switch on Manage Extensions.

After you will click on the upgrade icon you will see the popup the list of versions.

Then just check the version you want to upgrade and click on Upgrade Extension button.
Boom your version has been upgraded.

Upgrade Manually
You will have to manually search your extension from the TYPO3 official website https://extensions.typo3.org/ and download after the checking Dependence.

Custom Extension:

The Custom extension is designed on the functionality of the client requirement so there is not any special way to Upgrade your custom Extension but in the custom extension, we will face the major issue with the deprecation of code so you need to study the Changelog of TYPO3 version.

You can study at TYPO3 officially site https://docs.typo3.org/typo3cms/extensions/core/Changelog-7.html there you will get most of the solution of error and issue.

Recommended TYPO3 Upgrade Techniques

We highly recommend you to check following popular third party solution which is very useful to smoothly and quickly upgrade TYPO3.

Important Code Deprecation and Changes

Here, we would like to write few code which will help to migrate (and make compatible) your particular TYPO3 extension which contains old-school codes.

piBased CodeExtbase Code
$this->cObj->IMG($imageConf)$myImage = $this->cObj->cObjGetSingle('IMAGE', $ImgConf);
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerModule(...)\TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerModule(...)
t3lib_extMgm::addStaticFile(...)\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile(...)
Tx_Extbase_Utility_Extension::registerModule(...)\TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerModule(...)
t3lib_div::\TYPO3\CMS\Core\Utility\GeneralUtility::
require_once

All lines beginning with "require_once" and including TYPO3 core files are to be removed.

t3lib_div::loadTCA('')

All occurrences of "t3lib_div::loadTCA('')" are to be removed.

t3lib_extMgm::

All occurrences of "t3lib_extMgm::" should be replaced by "\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::".

t3lib_div::

All occurrences of "t3lib_div::" by "\TYPO3\CMS\Core\Utility\GeneralUtility::" are to be replaced.

tslib_pibase

All occurrences of "tslib_pibase" with "\TYPO3\CMS\Frontend\Plugin\AbstractPlugin" are to be replaced.

tslib_cObj

All occurrences of "tslib_cObj" must be replaced by "\TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer ".

makeInstance()

All occurrences of "makeInstance()" with "\TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance()"" are to be replaced.

$GLOBALS['TCA']['any_table']

TCA definitions must now be moved to "Configuration/TCA/<any_table.php>" . The section " dynamicConfigFile " within the ctrl-section is omitted.

ExtensionManagementUtility::addStaticFile()

TypoScript definitions must be moved to "Configuration/TCA/Overrides/sys_template.php".

ExtensionManagementUtility::addPageTSConfig()

Page TSConfig definitions must be moved to "Configuration/TCA/Overrides/pages.php".

ExtensionManagementUtility::addTCAcolumns()

Must now be done within "Configuration/TCA/Overrides/<any_table>.php".

ExtensionManagementUtility::addToAllTCAtypes()

Must now be done within "Configuration/TCA/Overrides/<any_table>.php".

ExtensionManagementUtility::addPiFlexFormValue()

Must now be done within "Configuration/TCA/Overrides/tt_content.php".

ExtensionUtility::registerPlugin()

Must now be done within "Configuration/TCA/Overrides/tt_content.php".

ExtensionManagementUtility::addPlugin()

Must now be done within "Configuration/TCA/Overrides/tt_content.php".

ExtensionManagementUtility::getFileFieldTCAConfig()

The parameters of this method must be adjusted if you want to enable backend image editor (Cropping) for FAL images.

$_EXTKEY

The variable is omitted and all occurrences are to bereplaced by the extension keywith the exception of "ext_emconf.php".

ext_localconf.php

To our knowledge, only "\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin" is left;)

ext_tables.php

Nothing should be written in $TCA or $GLOBALS['TCA'] and the file should be omitted in future TYPO3 versions. Also allowed are "\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::allowTableOn StandardPages()"

Remove duplicate FAL records after TYPO3 6.2 upgrade

CREATE TABLE sys_file_new LIKE sys_file;

INSERT sys_file_new SELECT tx_phpunit_is_dummy_record, MAX(uid) AS uid, pid, tstamp, last_indexed, missing, storage, type, metadata, identifier, identifier_hash, folder_hash, extension, mime_type, name, sha1, size, creation_date, modification_date FROM sys_file GROUP BY BINARY identifier;

SELECT * FROM sys_file_new;

RENAME TABLE sys_file TO sys_file_bak;

RENAME TABLE sys_file_new TO sys_file;
CREATE TABLE sys_file_reference_new LIKE sys_file_reference;

INSERT sys_file_reference_new SELECT tx_phpunit_is_dummy_record, MAX(uid) AS uid, pid, tstamp, crdate, cruser_id, sorting, deleted, hidden, t3ver_oid, t3ver_id, t3ver_wsid, t3ver_label, t3ver_state, t3ver_stage, t3ver_count, t3ver_tstamp, t3ver_move_id, t3_origuid, sys_language_uid, l10n_parent, l10n_diffsource, uid_local, uid_foreign, tablenames, fieldname, sorting_foreign, table_local, title, description, alternative, link, downloadname FROM sys_file_reference WHERE deleted=0 GROUP BY pid,uid_local,uid_foreign,tablenames,fieldname;

SELECT * FROM sys_file_reference_new;

RENAME TABLE sys_file_reference TO sys_file_reference_bak;

RENAME TABLE sys_file_reference_new TO sys_file_reference;
UPDATE sys_file_reference

LEFT OUTER JOIN sys_file ON (sys_file.uid = sys_file_reference.uid_local) SET sys_file_reference.uid_local = sys_file_reference.uid_local + 1 WHERE sys_file.uid IS NULL;

Checklist for QA Testing

Once the TYPO3 upgrade finish, Your QA team should test the backend and frontend of the website as follows:

Testing ScenarioPriority
Check UI/UX DesignMedium
Check Functional Frontend Features (if any)High
Check TYPO3 BackendHigh
Check Cross-Browsers CompatibilityMedium
Check Cross-Devices CompatibilityMedium
Check Speed & Performance Testing (Google insight, Pingdom)Low
Check TYPO3 Backend ReportHigh
Check TYPO3 Error LogsMedium
Check Console ErrorLow
Check Deprecation LogsMedium
Check page to page comparison of before & after upgradeHigh

TYPO3 QA Report

One more thing, keep prepare QA Report to send it to your customer ;) You can download the format of TYPO3 QA Testing Report from here Sample-TYPO3-Upgrade-QA-Report.xlsx

Go-Live: Deployment to Live server

Before deployment checklist

  • Check server compatibility with TYPO3 version
  • Check server access detail

After the deployment checklist

  • Check Report/Install tool module and solve errors if any
  • Testing of speed/performance (Google Page Speed, Pingdom)
  • Check TYPO3 backend error log
  • QA Testing whole Live website

Conclusion

Thanks for reading such a long article, Let me quickly revise all the points ;)

  • Keep communicating with your customer with let them know about the importance of TYPO3 update for minor and major update.
  • Guide to your customer to decide between Relaunch website and Upgrade TYPO3.
  • Always take care in the estimation process with analysing the whole TYPO3 like prepare extension report, an estimate for each milestone, provision for non-compatible extension etc.,
  • Perform step by step TYPO3 upgrade procedure with before & after checklist.
  • Apply exclusive tips and tricks techniques during the update procedure.
  • Finally, Go-live with well QA testing of your TYPO3 website.

I would love to know your experience and tips/tricks to make smooth and successfully complete TYPO3 upgrade projects. Please feel free to write down your any suggestions or queries using below comment box, Thank you!

Have a happy & secure TYPO3 upgrade :)

Write comment

Name*

URL

Comment*

    No comments

Want to explore TYPO3 upgrade in depth ?

Checkout our detailed expert blogs on TYPO3 Upgrade

How do you stay on top of your TYPO3 game?

A good way to start is to sign up to our newsletter for monthly dose of TYPO3.

Subscribe now

A TYPO3 Award winning agency