Here are the potentials
There are various building blocks that have to be considered for a well-functioning website - and many of them intertwine. In general, the following areas can be distinguished:
Infrastructure (hardware and software / middleware)
"Frontend" programming, building blocks and browser tasks
"Backend" programming, TYPO3 setup and database
In the following we explain important new (or for many websites especially useful) developments.
TYPO3 uses three applications to run a web site: the HTTP server, PHP (as part of the former), and the SQL database. In addition there is the network. Each of these areas and the operating system have numerous ways to optimize performance.
Our special favorites in 2019:
- HTTP/2 with Push Server: The transmission of the components via the network happens whenever you click something in your browser. With HTTP / 2 including "Server Push" this is supplemented by the most intelligent and proactive transmission of the next data or the relevant excerpts.
- Redis: Especially for large appearances, it is worth storing certain data in a separate, lightning-fast memory and thus not only to have an outstanding additional caching, but also to simplify the distribution across multiple servers (TYPO3 cluster).
- Brotli: With this new method, the data for the transfer between server and browser can be compressed much better - 20% fewer bytes than with previously available algorithms! Attention: Brotli is not yet available on all server platforms.
Additional measures not described here in detail: static file cache, CDN (Content Delivery Network), database tuning, server upgrade (especially simple in virtualized environments), server cluster, ...
Especially in the transfer and rendering of the data to and through the browser there are numerous optimization possibilities - following a selection of the most current instruments:
- WebP: An optimized image file format for significantly better compressed images; can be used automatically by TYPO3 and is therefore not noticeable to editors. WebP and is already supported by all major browsers (otherwise, as usual, a "classic" graphic format is transmitted).
- srcset: Images are automatically sent on the server side in the size that makes sense for the device: Why should I transmit a picture in "huge" desktop quality if it is only displayed on a smartphone?
- Lazy Loading: The loading of non-critical resources is delayed at the time the page is loaded and not loaded until the moment it is needed.
Even in the background, e.g. in business logic, there is a lot to gain:
- Intelligent architecture with data caching and microservices: Where a lot of performance is required, attention should be paid to optimal internal caching, and second, the components involved should be isolated and individually scalable.
- PHP Profiling: By methodically examining the internal performance behavior, e.g. quickly track down slow database queries or a non-active cache. It can also be generally recognized which parts of the code are slow and could use a speed boost. Some profiling tools also gather information about how much memory is used and what features and methods increase their memory usage.
Additional measures not described in detail here: Optimize TypoScript, compressionLevel, optimize MySQL queries, limit logging to a reasonable minimum, no TYPO3 mountpoints, ...
Measuring TYPO3 performance
To identify the actual state and potential, you can use various helpful tools. Our favorite for a first, quick overview: Google Lighthouse. In addition to performance, this tool can also explore accessibility, the level of implementation of Progressive Web apps, and more. For the performance test you only need the URL of the page; then a detailed performance report will be generated, including tips on how to fix any weaknesses.
But it should not be concealed that the interpretation of the result is a science in itself: not only "What does that mean in terms of content?", But also "How is this in my case to evaluate?" And "How much effort would be here how much Benefit over? "
High performance with little effort: We would be glad to advise you
Depending on the initial condition, in most cases 20-40 % speed increases can be achieved with a manageable amount of effort - where there are real "blunders" or legacy pollution, much more can be achieved.
If you want to bring your website performance up to date, we are glad to support you. How about a free inventory and proposals for measures? Talk to us!