In this section, we will present the recommended configuration under which the theme would work perfectly. Those are not absolute values, the theme’s performance depends on many factors like the host performance, server configuration and the number of visitors.
- WordPress 4.0 or later
- Apache or Nginx
- php.ini memory limit: 40MB (recommended: 96M)
- PHP version 5.6 or greater (recommended: PHP 7.0 or greater)
- MySQL version 5.0 or greater (recommended: MySQL 5.5 or greater)
- The mod_rewrite Apache module (optional)
For optimal performance the server requires some settings to be made, the optimizations include:
- Use a cache plugin – we recommend WP Super Cache
- Page Speed optimization – we created a guide for this here
If WordPress performs fine on your host, the theme should too. Next, we will present you a list of common hosts and the traffic you can expect to host on them.
Please note that the numbers quoted here do not represent a guarantee, hosting performance is depending on your WordPress configuration, plugin configuration, and general OS configuration. All numbers assume that you use a caching plugin like wp super cache. Also a CDN solution like Cloud Flare should help a lot.
Godaddy or other cheap shared hosting:
- Should handle 1- 2000 unique users per day
- Will not handle traffic spikes well
- Use if possible a small amount of plugins
- Should handle 2000 – 4000 unique users per day
- Will not handle traffic spikes well
- Get as much ram as possible
- Should handle 4000 – 6000 unique users per day
- Should be with more than 4GB of ram
- If properly configured and with enough ram and a swap partition the server should handle traffic spikes
- Should handle 6000+ unique users per day
- On dedicated servers and with that traffic number, at least 8 GB of ram will help a lot
- It should handle traffic spikes well
System status parameters guide
Our themes include a special section called System Status. Here you can check if the server and WordPress parameters are properly set for optimal performance. In this guide we will cover how those parameters can be set.
I) Missing PHP extensions
1) Edit php.ini and search for the following lines:
2) Remove the ; sign that appears at the beginning of each line
3) Save php.ini and restart apache
1) Go to C-Panel > Software > Select PHP version
2) From the select located at the top-left corner, chose the PHP version you want to use and the extensions panel will show up bellow. Press on “Set as current” button and wait until “Current PHP version” matches your selected one. Next make sure that the gd and mbstring extensions are checked. Press the “Save” button located at the bottom-left corner to save the settings.
Linux dedicated server:
1)Connect to the server using ssh and, depending on your Linux distribution and the version of PHP that you’re using, enter the following commands:
## Ubuntu PHP5 ## #sudo apt-get install php5-gd #sudo apt-get install php5-mbstring ## Ubuntu PHP7 ## #sudo apt-get install php7.0-gd #sudo apt-get install php7.0-mbstring ## Centos PHP5 ## #sudo yum install php5-gd #sudo yum install php5-mbstring ## Centos PHP7 ## #sudo yum install php7.0-gd #sudo yum install php7.0-mbstring
II) WP-Config settings
The wp-config.php file is located in the wordpress root directory.
WP Memory Limit:
This parameter sets the amount of memory used by php and by default WordPress can go up to 40MB. To avoid Memory Exhausted error this parameter should be set to at least 256MB and this can be done from WordPress wp-config.php file.
define( 'WP_MEMORY_LIMIT', '256M' );
It is an option intended for development, it controls the reporting of some errors and warnings. It may display unwanted messages so you should disable it on your side. The default value is false.
III) Php.ini parameters
- max_input_vars – This sets how many input variables may be accepted (limit is applied to $_GET, $_POST and $_COOKIE superglobal separately). By default this parameter is set to 1000 and this may cause issues when saving the menu, we recommend that you increase it to 2000 or more.
- max_execution_time – This sets the maximum time in seconds a script is allowed to run before it is terminated by the parser. The theme demos download images from our servers and depending on the connection speed this process may require a longer time to execute. We recommend that you should increase it 60 or more.
- post_max_size – Sets max size of post data allowed. This setting also affects file upload.
- upload_max_filesize – To upload large files, like plugins zip files, you have to increase this value also.
Depending on the host they can be set from php.ini or .htaccess:
max_input_vars = 5000 max_execution_time = 300 post_max_size = 50M upload_max_filesize = 50M
php_value max_input_vars 5000 php_value max_execution_time 300 php_value post_max_size 50M php_value upload_max_filesize 50M
Note – Before trying any of those check the host documentation to see what’s the recommended method. The location of the php.ini may also differ from one server to the other, usually it’s located in the WordPress root, but on some servers it may be found in another location, you have to check the host documentation for more precise details.
Suhosin is an advanced protection system for PHP installations. It was designed to protect servers and users from known and unknown flaws in PHP applications and the PHP core. If it’s installed on your host you have to increase the suhosin.post.max_vars and suhosin.request.max_vars parameters to 2000 or more.
suhosin.request.max_vars = 5000 suhosin.post.max_vars = 5000
php_value suhosin.post.max_vars 5000 php_value suhosin.request.max_vars 5000
Note – If Suhosin is not installed on your host you don’t have to modify these parameters.
If Apache’s mod_substitute module is active on your server you will get the following warning in the theme “System status” section:
In some cases, the mod_substitute module default configuration may cause a timeout error on TD Composer when loading large pages . To fix this you have to add the following lines in the .htaccess file located in your website main folder:
<IfModule mod_substitute.c> SubstituteMaxLineLength 10M </IfModule>