Each year we release our in-depth performance benchmarks across various platforms to see how different versions of PHP stack up against each other. This time we again went all out and benchmarked five different PHP versions across 16 different platforms/configurations; including WordPress (both 4.9 and 5.0), Drupal, Joomla!, Laravel, Symfony, and many more. We also tested popular ecommerce solutions such as WooCommerce, Easy Digital Downloads, Magento, Grav CMS, and October CMS.
We are always encouraging WordPress users to take advantage of the latest supported versions of PHP. Not only are they more secure, but they offer additional performance improvements. We aren’t talking just about WordPress either, this true for the most part across all platforms. We’ll show you today how PHP 7.3 knocks the socks off of everything we put it against! ?
So Long HHVM, 2019 Is the Year of PHP
PHP is an open-source, server-side scripting and programming language that’s primarily used for web development. The bulk of the core WordPress software is written in PHP, which makes PHP a very important language for the WordPress community. Although the new block editor in WordPress 5.0 has introduced more JavaScript with React.
Still looking for that perfect WordPress host?
Try Kinsta’s premium managed WordPress hosting to experience your site without problems.
According to W3Techs, PHP is used by over 78% of all the websites who use a server-side programming language. Some may argue that PHP is dead. But even though developers like to state this, PHP is alive, faster, and better than ever.
In our 2016 benchmarks, HHVM was the clear winner in terms of performance when it came to running WordPress. HHVM was created by the team over Facebook. It’s a system that uses just-in-time (JIT) compilation to convert PHP code into a machine language to establish a synergy between the PHP code and the underlying hardware that runs it. We used to offer HHVM at Kinsta as another alternative, due to the fact that PHP wasn’t keeping up in terms of improvements.
However, in our 2017 benchmarks, PHP 7.2 took a slight lead across almost all platforms, beating out HHVM for the first time (the more requests the better):
- WordPress 4.9.4 PHP 7.2 benchmark: 148.80 req/sec ?
- WordPress 4.9.4 HHVM benchmark: 144.76 req/sec
- WordPress 4.9.4 + WooCommerce 3.3.1 PHP 7.2 benchmark: 92.60 req/sec ?
- WordPress 4.9.4 + WooCommerce 3.3.1 HHVM benchmark: 69.58 req/sec
Therefore, as of August 28th, 2018 Kinsta stopped offering HHVM. One, because it’s no longer a stable option for WordPress, and second because it no longer supports PHP as of v3.30. You can read more about this in our farewell to HHVM.
This is actually great news for developers and end-users alike as it means more of a focus back on PHP and providing faster websites and web services for everyone. Therefore, this year’s benchmarks are all about PHP!
Below you’ll get to see how the newest version, PHP 7.3 (released on December 6th, 2018) performs, as well as WordPress 5.0 (ironically also released on December 6th, 2018).
With HHVM out of the picture, 2019 is the year of PHP. And PHP 7.3 is blazing fast! ?
PHP Benchmarks (2019)
For each test, we used the latest version of each platform and benchmarked the home page for a minute with 15 concurrent users. Below are the details of our test environment.
- Machine used: 8x Intel(R) Xeon(R) CPU @ 2.20GHz (Powered by Google Cloud Platform and running in an isolated container)
- OS: Ubuntu 18.04.1 LTS (Bionic Beaver)
- Docker Stack: Debian 9, Nginx 1.15.7, MariaDB 10.3.11
- PHP Version: 5.6, 7.0, 7.1, 7.2, 7.3
- Page Caching: Disabled on all configurations and platforms.
- OPCache: For WordPress, Joomla, and Drupal, we used the official Docker image and we created our own for PHP 7.3 (Dockerfile). For the rest we used the same image setup with the OPcache enabled using the following recommended php.ini settings, except for the
opcache.max_accelerated_files
value which was increased from 4,000 to 50,000.
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=50000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable_cli=1
OPcache improves PHP performance by storing precompiled script bytecode in shared memory, thereby removing the need for PHP to load and parse scripts on each request.
The tests were performed by Thoriq Firdaus a WordPress contributor and support engineer here at Kinsta. He’s contributed to WordPress Core and Translation Editor for WordPress Indonesia.
Platforms and Configurations Tested
Our tests include the following 16 platforms/configurations. On some, we had to test multiple versions due to the lack of support for a specific PHP version. Click on one below to skip directly to its test notes and results. The data is measured in requests per second. The more requests the better.
Due to the fact that demo content across each platform can vary dramatically, we made the decision to test the raw performance of fresh barebone installations.
We tested performance of 16 platforms/configurations on 5 different PHP versions and #PHP 7.3 took the gold in 14/16! ?
WordPress 5.0
The first platform we tested was, of course, one of our favorites: WordPress (we might be a little biased being that we live and breath this CMS on a daily basis ?). At its core, WordPress is open-source software you can use to create a beautiful website, blog, or app. In fact, WordPress powers over 32% of all the websites on the internet. Yes – more than one in four websites that you visit are likely powered by WordPress.
We started with WordPress 5.0 as that is the version you’re probably all interested in at the moment. We used the new Twenty Nineteen theme (1.0), and benchmarked the site for a minute with 15 concurrent users.
Embed on your site:
Benchmark Results
- WordPress 5.0 PHP 5.6 benchmark: 91.64 req/sec
- WordPress 5.0 PHP 7.0 benchmark results: 206.71 req/sec
- WordPress 5.0 PHP 7.1 benchmark results: 210.98 req/sec
- WordPress 5.0 PHP 7.2 benchmark results: 229.18 req/sec
- WordPress 5.0 PHP 7.3 benchmark results: 253.20 req/sec ?
PHP 7.3 was the winner, proving to be faster than PHP 7.2. And if you compare PHP 7.3 to PHP 5.6, it can handle almost 3x as many requests (transactions) per second!
WordPress 5.0 + WooCommerce 3.5.2
WooCommerce is a fully customizable, open-source ecommerce platform built for WordPress. It’s also by far, one of the most popular ecommerce solutions in the WordPress community, and currently powers over 14% of all ecommerce sites on the internet.
For this next test, we took WordPress along with WooCommerce installed. We utilized the free Storefront eCommerce theme (2.4.1).
- Tested URL: /product/woo-logo/
- Note: The page contains 3 related products, 1 product reviews/comments, 1 product in “You May Also Like” section, product next-n-prev pagination.
- Docker Image is derived from https://hub.docker.com/_/wordpress/ and we created our own for PHP 7.3 (Dockerfile).
Embed on your site:
Benchmark Results
- WordPress 5.0 + WooCommerce 3.5.2 PHP 5.6 benchmark results: 24.74 req/sec
- WordPress 5.0 + WooCommerce 3.5.2 PHP 7.0 benchmark results: 56.94 req/sec
- WordPress 5.0 + WooCommerce 3.5.2 PHP 7.1 benchmark results: 57.00 req/sec
- WordPress 5.0 + WooCommerce 3.5.2 PHP 7.2 benchmark results: 63.10 req/sec
- WordPress 5.0 + WooCommerce 3.5.2 PHP 7.3 benchmark results: 68.87 req/sec ?
When running WooCommerce, PHP 7.3 beat out PHP 7.2 by a small margin.
WordPress 5.0 + Easy Digital Downloads 2.9.9
Easy Digital Downloads (EDD), created by Pippin Williamson, is a free WordPress eCommerce plugin that focuses purely on helping creators and developers sell digital products.
After seeing how WooCommerce performed, we then took WordPress along with Easy Digital Downloads installed. We utilized the free EDD Starter Theme (1.0).
- Tested URL: /downloads/sample-product/
- Note: The page contains 3 menus in the navigation bar and an “Add to cart” widget.
- Docker Image is derived from https://hub.docker.com/_/wordpress/ and we created our own for PHP 7.3 (Dockerfile)/
Embed on your site:
Benchmark Results
- WordPress 5.0 + EDD 2.9.9 PHP 5.6 benchmark results: 71.74 req/sec
- WordPress 5.0 + EDD 2.9.9 PHP 7.0 benchmark results: 169.11 req/sec
- WordPress 5.0 + EDD 2.9.9 PHP 7.1 benchmark results: 170.08 req/sec
- WordPress 5.0 + EDD 2.9.9 PHP 7.2 benchmark results: 187.78 req/sec
- WordPress 5.0 + EDD 2.9.9 PHP 7.3 benchmark results: 206.88 req/sec ?
PHP 7.3 dominated the tests with WordPress and Easy Digital Downloads. You might also notice, EDD can handle 3x as many requests (transactions) per second when stacked up against WooCommerce! There’s no doubt that EDD is simply a faster and more lightweight solution.
WordPress 4.9.8
Since WordPress 5.0 was just recently released, we thought it would also be interesting to run benchmarks for 4.9.8, as many of you probably haven’t updated yet. Or you might be wondering if WordPress 5.0 is faster or slower.
We used the new Twenty Nineteen theme (1.0), and benchmarked the site for a minute with 15 concurrent users.
Embed on your site:
Benchmark Results
- WordPress 4.9.8 PHP 5.6 benchmark: 97.59 req/sec
- WordPress 4.9.8 PHP 7.0 benchmark results: 221.42 req/sec
- WordPress 4.9.8 PHP 7.1 benchmark results: 233.78 req/sec
- WordPress 4.9.8 PHP 7.2 benchmark results: 250.36 req/sec
- WordPress 4.9.8 PHP 7.3 benchmark results: 276.31 req/sec ?
PHP 7.3 was the winner, proving to be faster than PHP 7.2. And if you compare PHP 7.3 to PHP 5.6, it can handle almost 3x as many requests (transactions) per second!
However, the most interesting result is that WordPress 4.9.8 is faster than WordPress 5.0. This doesn’t surprise us too much as the entire WordPress 5.0 project has been rushed. You can expect to see faster results with WordPress 5.0 as they continue to improve it.
You heard it first at Kinsta, WordPress 4.9.8 is faster than WordPress 5.0. ?
WordPress 4.9.8 + WooCommerce 3.5.2
We also ran benchmark tests with WordPress 4.9.8 and WooCommerce 3.5.2.
For this next test, we took WordPress along with WooCommerce installed. We utilized the free Storefront eCommerce theme (2.4.1).
- Tested URL: /product/woo-logo/
- Note: The page contains 3 related products, 1 product reviews/comments, 1 product in “You May Also Like” section, product next-n-prev pagination.
- Docker Image is derived from https://hub.docker.com/_/wordpress/ and we created our own for PHP 7.3 (Dockerfile).
Embed on your site:
Benchmark Results
- WordPress 4.9.8 + WooCommerce 3.5.2 PHP 5.6 benchmark results: 26.07 req/sec
- WordPress 4.9.8 + WooCommerce 3.5.2 PHP 7.0 benchmark results: 60.37 req/sec
- WordPress 4.9.8 + WooCommerce 3.5.2 PHP 7.1 benchmark results: 60.36 req/sec
- WordPress 4.9.8 + WooCommerce 3.5.2 PHP 7.2 benchmark results: 63.33 req/sec
- WordPress 4.9.8 + WooCommerce 3.5.2 PHP 7.3 benchmark results: 69.24 req/sec ?
PHP 7.3 beat out PHP 7.2 by a small margin. WordPress 4.8.9 with WooCommerce was also slightly faster than when running with WordPress 5.0.
WordPress 4.9.8 + Easy Digital Downloads 2.9.9
We also ran benchmark tests with WordPress 4.9.8 and Easy Digital Downloads 2.9.9.
We took WordPress along with Easy Digital Downloads installed and utilized the free EDD Starter Theme (1.0).
- Tested URL: /downloads/sample-product/
- Note: The page contains 3 menus in the navigation bar and an “Add to cart” widget.
- Docker Image is derived from https://hub.docker.com/_/wordpress/ and we created our own for PHP 7.3 (Dockerfile)/
Embed on your site:
Benchmark Results
- WordPress 4.9.8 + EDD 2.9.9 PHP 5.6 benchmark results: 80.08 req/sec
- WordPress 4.9.8 + EDD 2.9.9 PHP 7.0 benchmark results: 186.99 req/sec
- WordPress 4.9.8 + EDD 2.9.9 PHP 7.1 benchmark results: 185.40 req/sec
- WordPress 4.9.8 + EDD 2.9.9 PHP 7.2 benchmark results: 192.73 req/sec
- WordPress 4.9.8 + EDD 2.9.9 PHP 7.3 benchmark results: 211.37 req/sec ?
PHP 7.3 dominated the tests with WordPress and Easy Digital Downloads. WordPress 4.9.8 with EDD was also slightly faster than when running with WordPress 5.0.
Drupal 8.6.4
Drupal is an open-source CMS popular for its modular system and strong developer community. It was originally launched in 2000 and according to W3Techs, powers 1.9% of all websites with a 5.5% share of the content management system market.
For the Drupal benchmark, we utilized the free Bartik theme (8.6.4).
Embed on your site:
Benchmark Results
- Drupal 8.6.4 PHP 5.6 benchmark results: 14.19 req/sec
- Drupal 8.6.4 PHP 7.0 benchmark results: 30.30 req/sec
- Drupal 8.6.4 PHP 7.1 benchmark results: 30.42 req/sec
- Drupal 8.6.4 PHP 7.2 benchmark results: 32.59 req/sec
- Drupal 8.6.4 PHP 7.3 benchmark results: 35.90 req/sec ?
When running Drupal, PHP 7.3 beat out PHP 7.2 by a small margin.
Joomla! 3.9.1
Joomla! is a free and open source CMS for publishing web content, originally released on August 17, 2005. It’s built on a model–view–controller web application framework and according to W3Techs is used by 3.0% of all websites on the internet.
For the Joomla! benchmark, we utilized the free Beez3 template.
- Tested URL: /index.php/3-welcome-to-your-blog
- Note: Installed with “Blog” mode. Joomla modules like search, widget, and breadcrumb, are all disabled.
- Docker Image is derived from https://hub.docker.com/_/joomla/ and we created our own for PHP 7.3 (Dockerfile)
Embed on your site:
Benchmark Results
- Joomla! 3.9.1 PHP 5.6 benchmark results: 27.45 req/sec
- Joomla! 3.9.1 PHP 7.0 benchmark results: 38.48 req/sec
- Joomla! 3.9.1 PHP 7.1 benchmark results: 37.79 req/sec
- Joomla! 3.9.1 PHP 7.2 benchmark results: 38.68 req/sec
- Joomla! 3.9.1 PHP 7.3 benchmark results: 41.03 req/sec ?
On Joomla! we can see that performance was a little all over the board compared to some of the other platforms. However, PHP 7.3 was still the winner.
Magento 2 (CE) 2.1.15 + 2.3.0
Magento is a popular open-source ecommerce platform written in PHP and was released on March 31, 2008. According to W3Techs, it powers 1.0% of all websites on the internet.
For the Magento 2 benchmark, we utilized the free Luma theme. We used two versions due to the fact that 2.1.15 was the only one that supported PHP 5.6. For the additional tests, we used 2.3.0. Magento 2 does not support PHP 7.3 yet.
- Tested URL: /index.php/lifelong-fitness-iv.html
- Note: Page Caching is disabled. The tested URL is a single product. It contains one image product, a navigation bar, breadcrumb navigation, and no reviews.
- http://pubfiles.nexcess.net/magento/ce-packages/
Embed on your site:
Benchmark Results
- Magento 2 (CE) 2.1.15 PHP 5.6 benchmark results: 7.65 req/sec
- Magento 2 (CE) 2.1.15 PHP 7.0 benchmark results: 16.19 req/sec
- Magento 2 (CE) 2.1.15 PHP 7.1 benchmark results: 16.38 req/sec ?
- Magento 2 (CE) 2.3.0 PHP 7.1 benchmark results: 13.60 req/sec
- Magento 2 (CE) 2.3.0 PHP 7.2 benchmark results: 14.25 req/sec
- Magento 2 (CE) 2.3.0 PHP 7.3 benchmark results: not supported
Magento 2 PHP benchmarks are all across the board. In fact, the older version, Magento 2 (CE) 2.1.15 along with PHP 7.1 was the fastest.
Grav CMS 1.5.5
Grav is an easy to use, yet powerful, open-source CMS that requires no database. This is also sometimes referred to as a flat-file CMS.
For the Grav CMS benchmark, we utilized the free Clean Blog skeleton package.
- Tested URL: /home/the-urban-jungle
- Note: Content is a simple one column blog post with no sidebar.
Embed on your site:
Benchmark Results
- Grav CMS 1.5.5 PHP 5.6 benchmark results: 42.62 req/sec
- Grav CMS 1.5.5 PHP 7.0 benchmark results: 64.43 req/sec
- Grav CMS 1.5.5 PHP 7.1 benchmark results: 63.74 req/sec
- Grav CMS 1.5.5 PHP 7.2 benchmark results: 65.26 req/sec
- Grav CMS 1.5.5 PHP 7.3 benchmark results: 68.34 req/sec ?
We can see with Grav CMS that the latest version of PHP 7.3 is the winner.
October CMS 1.0.443
October CMS is a free, open-source, self-hosted and modular CMS platform based on the Laravel PHP Framework. It was originally released on May 15, 2014.
For the October CMS benchmark, we utilized the free Clean Blog theme. It’s important to note that October CMS is no longer compatible with PHP 5.6. Even though we were able to trick the installer by removing the PHP check, it failed with a 500 error code in the configuration wizard.
- Tested URL: /blog/post/first-blog-post
Embed on your site:
Benchmark Results
- October CMS 1.0.443 PHP 5.6 benchmark results: not supported
- October CMS 1.0.443 PHP 7.0 benchmark results: 23.29 req/sec
- October CMS 1.0.443 PHP 7.1 benchmark results: 22.97 req/sec
- October CMS 1.0.443 PHP 7.2 benchmark results: 23.38 req/sec
- October CMS 1.0.443 PHP 7.3 benchmark results: 25.58 req/sec ?
PHP 7.3 again is the winner, if only by a slight margin.
It’s also nice to see these smaller content management systems dropping support for older versions of PHP. Although that is one advantage of not being quite as big either. Unfortunately, when it comes to WordPress and other platforms with a large portion of the market share, things progress more slowly due to compatibility issues.
Laravel 5.4.36 + 5.7.15
Laravel is a very popular open-source PHP framework used to develop web applications. It was created by Taylor Otwell and was released in June 2011.
For the Laravel benchmark, we used a plain HTML theme.
- Tested URL: / (homepage)
- The post contains, title, author name, and main content. The database contains 1 table “posts”.
- The table contains 6 columns “post_title”, “post_content”, “post_author”, “created_at” and “updated_at”.
- The tested URL connected to the database and showing 1 post from the database.
Embed on your site:
Benchmark Results
- Laravel 5.4.36 PHP 5.6 benchmark results: 340.26 req/sec
- Laravel 5.4.36 PHP 7.0 benchmark results: 610.81 req/sec
- Laravel 5.4.36 PHP 7.1 benchmark results: 616.93 req/sec
- Laravel 5.4.36 PHP 7.2 benchmark results: 692.86 req/sec
- Laravel 5.4.36 PHP 7.3 benchmark results: 717.06 req/sec ?
PHP 7.3 is the clear winner here. It’s also nice to a fairly regular progression with the last two versions of PHP.
It’s important to note that Laravel 5.7.15 requires PHP 7.1 or higher.
Embed on your site:
Benchmark Results
- Laravel 5.7.15 PHP 5.6 benchmark results: not supported
- Laravel 5.7.15 PHP 7.0 benchmark results: not supported
- Laravel 5.7.15 PHP 7.1 benchmark results: 542.16 req/sec
- Laravel 5.7.15 PHP 7.2 benchmark results: 606.73 req/sec
- Laravel 5.7.15 PHP 7.3 benchmark results: 621.09 req/sec ?
Again, PHP 7.3 is the winner here. However, what’s interesting is that Laravel 5.4.36 with PHP 7.3 appears to be faster than Laravel 5.7.15.
Symfony 3.3.6 + 4.2.0
Symfony is a set of reusable PHP components and a PHP framework to build web applications, APIs, microservices and web services. It was released on October 22, 2005.
For the Symfony benchmark, we used the Symfony Demo with MySQL (they default to SQLite). Tests were run multiple times and averages were taken.
- Tested URL: /en/blog/posts/hello-world
- The post contains title, date, author name, 2 tags, and 5 comments.
- The oldest symfony/demo example app we could get runs on 3.3.6, which is an unmaintained version. We included it as it’s the only symfony/demo app left that could run on PHP 5.6. The latest version could only run in 7.1 and above. The result is slightly slower compared to the last year test. This could possibly because the single page queries more tables than on the homepage (comments).
Embed on your site:
Benchmark Results
- Symfony 3.3.6 PHP 5.6 benchmark results: 71.71 req/sec
- Symfony 3.3.6 PHP 7.0 benchmark results: 155.08 req/sec
- Symfony 3.3.6 PHP 7.1 benchmark results: 158.88 req/sec
- Symfony 3.3.6 PHP 7.2 benchmark results: 169.78 req/sec ?
- Symfony 3.3.6 PHP 7.3 benchmark results: not supported
Since PHP 7.3 isn’t supported by Symfony 3.3.6, PHP 7.2 wins here.
It’s important to note that Symfony 4.2.0 requires PHP 7.1 or higher.
Embed on your site:
Benchmark Results
- Symfony 4.2.0 PHP 5.6 benchmark results: not supported
- Symfony 4.2.0 PHP 7.0 benchmark results: not supported
- Symfony 4.2.0 PHP 7.1 benchmark results: 123.64 req/sec
- Symfony 4.2.0 PHP 7.2 benchmark results: 126.76 req/sec
- Symfony 4.2.0 PHP 7.3 benchmark results: 140.09 req/sec ?
PHP 7.3 is again on top.
Upgrade to PHP 7.2 or PHP 7.3 Now at Kinsta
If the results above don’t convince you, we aren’t sure what will! Just a friendly reminder. If you’re a Kinsta client, we released PHP 7.2 back in December 2017, and PHP 7.3 is also now available. If you’re wanting to see performance improvements, you can easily change to PHP 7.2 or PHP 7.3 with a single click in your MyKinsta dashboard.
If you are worried about it being incompatible with a third-party plugin (which can happen), this is exactly why we have staging sites. ? You can test away without worrying about breaking your production site.
Takeaway From Benchmark Results
As you can clearly see from the tests above, PHP 7.3 is leading the pack when it comes to performance across all platforms.
We tested performance of 16 platforms/configurations on 5 different PHP versions and #PHP 7.3 took the gold in 14/16! ?
- PHP 7.3 was the fastest engine in 14 out of the 16 configurations tested above. And one reason isn’t wasn’t the winner across the board is simply because Magento 2 and Symfony 3.3.6 doesn’t support PHP 7.3.
- As far as WordPress is concerned, PHP 7.3 was the fastest in all tests (stock WordPress site with 4.9.8 and 5.0, WooCommerce, and Easy Digital Downloads).
- In many of the benchmark results, you can easily spot a pattern of increased performance with each new version of PHP that is released. This is why it’s so important to test your site, plugins, etc. and stick to a regular upgrade schedule. Your visitors and customers will thank you as they expect speed!
- If your hosting provider doesn’t offer newer versions of PHP, perhaps it’s time you think about moving.
- For WordPress users besides upgrading to the latest PHP version, we collected a lot more techniques which can help you to further improve website performance. See the details in our ultimate guide on how to speed up your WordPress site.
We are super excited about PHP 7.3, and hope you are too! We would love to hear your thoughts regarding our benchmarks or even experiences you’ve had once upgrading. Drop them below in the comments.