Website performance is a major issue this days. “Rumors” say, that, if the website is a little bit too slow, it will loose much of the conversions. This fact is independent from the used system, thus also valid for TYPO3. This is the first post of a series of (probably) nine, digging into that topic.
It’s slow man
There are two situations, how you can get to know of the bad performance of your website. The worst thing is, when website users come to you and complain about the slow experience.
The better situation is, when you find it out yourself. There are several tools available to check the performance of the website upfront. Basically there are two types: Page analyzers and performance simulators. Page analyzers check how your website is built and how long does the transmission of the website takes, as it works now. With load simulators you can test the performance of a website under certain conditions.
Probably the most used tool in this category is “Page Speed Tools” from Google. Google is checking the website performance with topics that are independent from the network performance. These topics include server configuration, HTML structure, usage of external resources and usage of CSS and JS.
Another tool is GTmetrix. It is not only using Page Speed Tools from Google, but also enriching it with other metrics: YSlow is another page analyzer which uses Yahoo’s rules for high performance websites. It allows to check the page load time from 28 servers located in 7 regions of the world, check the website load time with a ad blocker activated and responsive test tools to simulate devices. The pro version offers to monitors more urls, enhanced reports and an hourly monitoring.
Load simulators allow to simulate website access, as it can and will occur in real life. My favorite example is the TV show “Shark tank” (German: “Die Höhle der Löwen”). While presenting their products on the show, the websites of most candidates are regularly out of order and show random errors.
Apache jMeter is an open source java application, that provides load testing for many different applications and protocols, like http, rest, mail and ldap, for example. It is written in JAVA working in headless / command-line mode and creates a graphical project dashboard.
Gatling.io is another tool to run load tests against your website. With their scripting language it is possible to define complex user scenarios. It is possible to simulate the access up to several thousand of requests per second on your website, creating precision data and dynamic reports.
After checking all these tools, it is clear that the website is really slow and not just a weird impression from the website users.
I think, it is like an onion in several aspects:
Seen from the outside an onion looks like a uniform, shiny nice vegetable. It is hard to get a grip on it, it shows also its smooth and slick outside. But …
In Germany there is the saying “What has seven skins and bites all the people … the onion”. If the onion is cut across, its inner life. On the one hand, it has seven skins and layers. On the other hand, it pushes tears in the eyes.
Same is true for TYPO3 performance … it can pull tears in your eyes and has seven skins to consider in to solve the performance issues. In this series of blog posts, I will show you the seven layers of TYPO3 performance. I will start with the asset delivery in the first layer and end up with hardware topics and using additional services.
The blog post series
Currently I plan about eight posts in this series.
- Layer 1: Asset Delivery and Caching
- Layer 2: Frontend Development
- Layer 3: TYPO3 Integration
- Layer 4: TYPO3 Extensions
- Layer 5: TYPO3 Core
- Layer 6: Services
- Layer 7: Hardware / VM
- What, if all fails?
I will start with layer one next week. After that you don’t be scared, if you are not interested in performance topics … only every two or three weeks there will be an article about it. The other weeks I will cover other topics around TYPO3.
This series is based on the talks, I held on the TYPO3 University Days, TYPO3Camp Hamburg and the TYPO3 UserGroup Munich. I want to thank all attendants for all the feedback, which pushed these posts further.
If you have more hints and input, do not hesitate to add it to the comments. I am happy to read them and to integrate them into the following posts (if possible).
I want to thank my supporters via patreon.com, who make this blog post possible:
If you appreciate my blog and want to support me, you can say “Thank You!”. Find out the possiblities here: