Comparative and detailed analysis of caching plugins for WordPress
Caching plug-ins are many with a large set of parameters and functions - without careful analysis it is impossible to make an intelligent choice . Having looked through the Internet, I did not find any really normal comparisons. There are only posts exclusively for attracting attention - descriptions of plug-ins. The usual thing - SEO pulses, so to speak. I even saw an attempt to make a comparative analysis of the three plug-ins, but there was nothing further than measuring the download speed through the online service. But how everything is arranged inside, what the optimization influences is not said. After all, each site is individual - you still need fine tuning - you need to understand the principle of operation for the optimal choice.
This article was created simultaneously with the creation of the material , the focus of which is on the use of analysis results. Here i amI want to share more details and methods of this analysis with sophisticated people and brothers in the workshop.
Principles
WordPress consists of a variety of PHP scripts. Each time a site (server) is accessed, part of the scripts are executed and the result is output in the form of an HTML page. The main idea of optimization is to save time by issuing a ready-made result for rarely changing content.
Due to the urgency of the problem, many cache plugins have already been written and new ones appear. Also, you never want to pay too much, so only free and shareware solutions are compared.
The main features that the plugin should have to provide high-quality caching are highlighted :
- Server cache (server side cache)
- Page load time (page load time )
One of the most important parameters. The less time, the faster the client receives a response. You can of course choose a plugin with a lot of time, but then with high server loads you will have to increase iron performance, and these are costs that could have been avoided. - Caching method (a method of storing)
Maximum retention of all objects prepared HTML, JS, CSS, it is desirable even in the compressed state in order to save processing time at the server and increasing the rate of output.
- Page load time (page load time )
- Client cache (client side cache)
- When issuing the result, it is possible to manage the client browser cache. When activated, a repeated request to the server will not even come, which favorably affects its performance. It is specified in the form of TTL values (Time To Live, lifetime) for each type of object (HTML, CSS, JS, Images, ...). For critical objects, the values are small or equal to 0.
- Optimize (optimization)
- Combine (merge)
Download one common JS (or CSS) instead of several, because each additional server access is costly. Google Page Speed Test also speaks directly about this . - Inline (inclusion)
CSS content is inserted into HTML, which ultimately reduces the number of calls to the server. CSS is better to include, because in practice, it is difficult to divide it into necessary and not very parts. - Postpone (delayed loading)
Delayed loading of JS scripts that do not affect the initial page display. It is also the most important metric that affects the speed of the page loading to the user. JS is better to postpone than to include directly in HTML, because they are usually easy to separate and inclusion will entail an increase in HTML, which can lead to loading in several iterations, which is equivalent to the appearance of additional requests. - Minify (
HTML content) HTML content, JS and CSS often contain unnecessary parts, such as spaces, line breaks, comments. All this is better to remove, to further reduce the size of objects. - Compress (compression)
data compression algorithm GZip (Deflate) to reduce the volume of data transmitted. Since HTML, JS and CSS are essentially text formats, they are well compressed.
- Combine (merge)
- The Manage (management)
- The Refresh (update)
In the case where the requested object has changed (for example, adding a new article), in the cache object needs to be recreated, otherwise users will be sent to the irrelevant information. Good plugins are set to auto cache updates for the most obvious events. And it should always be possible to reset the entire cache manually. It’s like a stop tap on a train - very rarely, but needed. - Exclude (adding exceptions)
Sometimes you need to exclude some objects and pages from caching to troubleshoot problems. There must be sufficient control of this.
- The Refresh (update)
Plugin comparison
In order to compile a current study list, a selection of plug-ins was made through the well-known wordpress.org c search for the words cache and a selection of the first 140 (10 pages) matching. It turned out 24.
By the way, if you think that some worthy plug-in is not in the list - please write in the comments - I will then add them to the analysis.
Technique
- All tests were conducted on the same HTML page containing CSS, JS and several media objects to cover the most common range of types.
- Functionality checks were made for each criterion of the above and were tabulated.
- Each criterion is given a weight of importance of influence on the overall assessment (they are visible in the attached detailed table).
- The measurement of page load time was first done without optimization, then there was a measurement with the operation of each plug-in and a relative comparison of times was made. This ensures sufficient independence from the speed of hosting.
- The environment is the most recent:
- WordPress 4.9.8,
- PHP 7.2.10 with caching enabled (OpCache),
- MariaDB (MySQL) 10.3.9,
- Apache 2.4.35.
Each criterion was checked using the Chrome browser:
- In the debugging section, pressing F12 in the Network section clearly shows the times of different stages of loading and the HTTP headers of server responses for checking the control of the browser cache and compression. You can also see the combination of CSS and JS in one or more files.
- Through the View Page Source, the right button was used to analyze the output content for CSS inclusion, the quality of minification (only HTML, JS, CSS) and signs of deferred loading of JS scripts (the defer or async attributes should be present in the tag description of the script link).
- JS delayed loading was also checked on the preservation of the site’s performance, since Google Page Speed Test can show that everything is cool and the scripts do not work.
results
The main result of the analysis is a detailed XLSX table , in which you can conveniently sort, filter and see the methodology for calculating the final weights. It also contains notes to the specifics of the plug-in when evaluating each criterion.
Each plugin is assigned roles based on test results for easy understanding of the spectrum of coverage of the required properties.
The following are summarized comparison results for an overall picture and convenience.
Plugin | Role | Score | ||||
---|---|---|---|---|---|---|
Total | Server cache | Client cache | Optimize | Manage | ||
LiteSpeed Cache + Hyper Cache Extended + Autoptimize + Speed Up - Browser Caching (Bundle) | Full | 96% | 98% | 71% | 100% | 100% |
Breeze 1.0.10 | Full | 93% | 95% | 71% | 97% | 75% |
WordPress Cache and CDN Plugin + Autoptimize (Bundle) | Full | 90% | 98% | 100% | 83% | 75% |
Autoptimize + Cache Enabler + Speed Up - Browser Caching (Bundle) | Full | 88% | 98% | 71% | 83% | 100% |
W3 Total Cache 0.9.7 | Full | 84% | 55% | 100% | 100% | 100% |
WordPress Cache and CDN Plugin 1.5.04 | Full | 82% | 98% | 100% | 67% | 75% |
LiteSpeed Cache + WP Fastest Cache (Bundle) | Full | 79% | 50% | 71% | 100% | 100% |
WP Rocket 3.2.0.1 | Full | 76% | 50% | 71% | 95% | 100% |
WP Speed of Light 2.3.2 | Full | 70% | 50% | 71% | 83% | 100% |
Yasakani Cache 2.0.4 | Full | 64% | 98% | 0% | 53% | 75% |
Hummingbird Page Speed Optimization 1.9.2 | Optimize | 53% | 48% | 71% | 50% | 100% |
WP Fastest Cache 0.8.8.6 | Full | 52% | 50% | 71% | 47% | 100% |
Cache Enabler 1.3.1 | Server cache | 48% | 95% | 0% | 20% | 100% |
LiteSpeed Cache 2.6.1 | Optimize | 47% | 2% | 71% | 70% | 100% |
Cache script for Wordpress (raw) 2.06 | Server cache | 47% | 98% | 0% | 20% | 50% |
Autoptimize 2.4.1 | Optimize | 44% | 2% | 36% | 73% | 100% |
Powered Cache 1.2.2 | Full | 44% | 50% | 71% | thirty% | 100% |
Hyper Cache 3.3.7 | Server cache | 43% | 95% | 0% | ten% | 100% |
Hyper Cache Extended 1.6.3 | Server cache | 43% | 95% | 0% | ten% | 100% |
Simple Cache 1.6.4 | Server cache | 43% | 95% | 0% | ten% | 100% |
Super Static Cache 3.3.5 | Server cache | 43% | 95% | 0% | ten% | 100% |
WP Super Cache 1.6.4 | Server cache | 43% | 95% | 0% | ten% | 100% |
Fast Velocity Minify 2.3.5 | Optimize | 36% | 2% | 0% | 65% | 100% |
WP Performance Score Booster 1.9.2.1 | Client cache | 31% | 23% | 71% | thirty% | 0% |
Speed Booster Pack 3.7.1 | Optimize | 27% | 0% | 0% | 52% | 50% |
Comet Cache 170220 | Full | 27% | 25% | 0% | thirty% | 100% |
Speed Up - Browser Caching 1.0.2 | Client cache | 23% | 0% | 71% | thirty% | 0% |
Gator Cache 2.1.7 | Server cache | 20% | 48% | 0% | 0% | 100% |
Cachify 2.2.4 | Full | sixteen% | 25% | 0% | ten% | 50% |
Cache-Control 2.2.2 | Client cache | 3% | 0% | 29% | 0% | 0% |
Conclusion
The resulting table allows you to select plug-ins according to the necessary criteria and select combinations of several to maximize the coverage of the necessary criteria. In confirmation, 4 combinations were selected and tested (marked with bundle instead of version).
Specific settings are described in the material mentioned at the beginning of the article.
- Optimal use of different combinations of plug-ins, rather than separately.
- Low overall rating of the plugin is not a sign of its unsuitability. It can be good in some kind of separate functionality.
- Some plugins are incompatible with each other in combination.
- You should always check the correctness of the work of the delayed load of JS - some plug-ins are sufficiently additionally configured, and some still break the contents. The table made comments on this topic.
- And it is necessary to finally check through Google Page Speed Test (or other external meters like PingDom and others) - there may be different results on different sites, since optimizing plugins can behave differently.
Only registered users can participate in the survey. Sign in , please.