How JungleWP Speeds Up WordPress
As using PageSpeed can break some websites and will consume a significant amount of memory, JungleWP does not enable PageSpeed by default on all websites, but we rather assess wether this optimization is worth activating depending on your WordPress installation.
NGINX High Performances Solution
Instead of hardware load balancers or traditional Apache web server, JungleWP uses NGINX, we built our microservices request router with NGINX to provide a fast, high‑performance experience for users.
There are several reasons we use NGINX:
- Easy, flexible, and logical configuration
- Ability to reconfigure and upgrade NGINX instances dynamically, without dropping user requests
- Application request routing via FastCGI, SCGI, or uwsgi protocols; NGINX can also serve static content directly from storage for additional performance optimization
- Only software tested that was capable of reliably handling over 15,000 requests per second of live traffic to WordPress applications from a single server
- Minimal and predictable memory and CPU footprint; CPU usage on load‑balancing servers dropped by a factor of three with NGINX.
This allows us to serve more requests per second and many Giga bites per second (Gbps) of traffic from our dynamic NGINX load balancers, with plenty of room to grow.
We use NGINX in our web infrastructure as a web acceleration, load balancing, and traffic management solution across all our application backend servers.
For apps using HTTPS, page loads are now even faster. On all servers managed by JungleWP, we've enabled the new Brotli compression algorithm developed by Google. Brotli is currently supported by Chrome and Firefox for HTTPS requests.
On average, data compressed with Brotli is 20 percent smaller than data compressed with gzip. For example, a 500 KB file that gzip would compress to 100 KB can instead be compressed to 80 KB by Brotli. Brotli achieves this improvement while maintaining the same fast compression and decompression speeds as gzip.
When Will Brotli Be Used?
Chrome and Firefox currently support Brotli. For both of these browsers, Brotli is only used for HTTPS requests, not for plain HTTP requests.
The reason only HTTPS is supported is because many network proxies around the world expect HTTP compression to always be gzip, so using other types of compression can cause websites to break. Since HTTPS requests are encrypted and proxies can't read or modify any of the content, it's safe to make changes to the compression algorithm used without any risk of breakage by buggy proxies.
For additional security from online threats to your site, CloudFlare is a popular and free content delivery network (CDN) that accelerates your site while protecting it from DDOS (distributed denial of service) attacks. JungleWP automatically configures your server to work with CloudFlare.
We use High performance Content Delivery Network (CDN) Supported by trusted Industry leaders such as Amazon, Google Cloud CDN and KeyCDN. Our global delivery infrastructure is setup to instantly accelerate content delivery for your WordPress websites no matter where your visitors are.
JungleWP only enables caching that is safe for WordPress. The caching enabled by JungleWP will never cause your site visitors to see stale content.
How Browser Caching Works
JungleWP allows browsers to ask if a file has changed since the last time the browser requested it, ensuring the browser never uses stale cached content.
Never stale cache: Last-Modified and If-Modified-Since Headers
When a browser requests a file, the server includes additional information about the file in the response headers it sends back with the file. This includes a response header called Last-Modified that tells the browser the date and time the file was last changed.
When a browser receives a file from the server, it remembers the Last-Modified date of the file. The next time the browser requests the same file from the server, it includes the date the file was last modified in a request header called If-Modified-Since. The server then checks whether the requested file has changed since that time. If the file has not changed, the server responds with 304 Not Modified to tell the browser it should continue using the same file it already has. If instead the file has changed, the server will send back the newer file's contents along with the its new modification date in the Last-Modified header.
Browsers can always safely use the Last-Modified header, so JungleWP includes this header in all responses to requests for static files. Your PHP application may also include Last-Modified headers in its responses and check for If-Modified-Since headers in requests.
Sometimes stale cache: Expires and Cache-Control: max-age Headers
It's also possible to tell browsers to cache a response for a period of time and to reuse that cached file without checking if the file has changed on the server. This is done with the Expires or Cache-Control: max-age headers.
PHP Response Caching
JungleWP enables caching of PHP-generated responses on capable WordPress sites.
The slowest part of WordPress is the time it takes for PHP to dynamically generate the response to any given request. This includes time PHP may spend communicating with a database, communicating with third-party APIs, and rendering output.
However, caching PHP responses can be very risky. There are many application-specific issues to consider, such as whether private or user-specific content is cachthis is why we only enabled it on capable WordPress sites .
The World's Best Cashing Plugin
For WordPress, we configure the best caching plugin on your website: WP Rocket is fully compatible with Cloudflare. The WP Rocket plugin can use our cashing engine to speed up your WordPress site through many system performance optimizations.
PHP Opcode Caching
JungleWP enables the PHP opcode cache and configures it so that it is never stale.
All versions of PHP, starting with PHP 5.5, include a low-level form of caching called opcode caching (also known as the Opcache). This form of caching speeds up PHP requests by allowing the PHP interpreter to avoid needing to repeatedly parse and compile each script every time it is used.
JungleWP configures PHP so that PHP will never use an old version of a file from the opcode cache. Whenever a file is modified, that file's cached opcodes will be cleared and new opcodes generated and cached the next time the file is used.
We Use Memory Caching
Your server automatically places some files and resources into memory to speed things up, because files stored in RAM can be accessed orders of magnitude more quickly than files stored on the hard drive. If that memory is needed by processes, then it is instantly freed.
If you see a lot of memory use on your server, you should not worry as long as a large portion of it is for cached/buffered files.