This post shows my never-ending quest to speed up WordPress for free.
I have used to use WP Total Cache in the past but decided to check out what others recommended, I found this post 6 Best WordPress Caching Plugins Compared. Some WordPress Caching Plugins.
What plugin do I use?
Benchmark (No Caching Plugin)
I tested my site before installing a caching plugin with https://www.webpagetest.org/ and my site was loading in 21s (loading over 141 files).
My site loaded in a terrible 21.3 seconds. My blog is hosted on Jumba (Net Registry) on and Ultimate plan for $25 a month.
My site seems to deliver 70% images so I wonder if a page caching plugin can help?
I do run the EWWW Image Optimizer plugin to automatically compress images when I upload them to my site. Read my blog post on the EWWW Image Optimizer here. I do keep images at a high quality to capture all details.
WP Fastest Cache Plugin
I have decided to try the WP Fastest Cache because it’s source was updated 4 hours ago compared to WP Super Cahches update 5 months ago. Both these plugins offer similar GT Metrix performance improvements and WP Fastest Cache has been tested on WordPress v4.8.
Installing WP Fastest Cache
I looked for the WP Fastest Cache Plugin on the WP plugin directory but it was not there.
I downloaded the latest version WP Fastest Cache from https://wordpress.org/plugins/wp-fastest-cache/
I upload the WP Faster Cache plugin to my site.
I Activated the plugin.
WP Fastest Cache plugin is now installed 🙂
It appears to have auto cached/indexed my site?
Now it’s time to run the same benchmark and see if the site is faster (with the same settings (Singapore chrome))?
1 of 3 test are underway.
WP Fastest Cache Results
Wow WP Fastest Cache loaded my site 2 seconds slower (Try 1 = 23 seconds, Try 2 = 21 seconds and Try 3 = 28 Seconds).
This could have been because of weekend traffic or hosting issues but this was not what I expected.
I disabled the WP Fastest Cache plugin and ran the benchmarks again and it was still 23 seconds (weekend traffic?). I re-enabled WP Fastest Cache and re-ran the test but no improvement.
My bad I think I needed to manually configure the WP Faster Cache plugin by opening the new WP Faster Cache menu on the left-hand side of the WP admin dashboard.
There I enabled caching options in the WP Faster Cache options.
I ran https://www.webpagetest.org tests again and got 16s, 18s and 16s seconds results in three tests and an A on compressed images. It appears you need to manually configure the WP Total Cache plugin after installing it (I missed this step).
I disable WP Fastest Cache and tried the WP Super Cache plugin and the test results were 29s, 24s, 24s (slower than WP Faster Cache). then tried W3 Total cache and the results were ()
I tried the W3 Total Cache plugin and the results were (30s, 16s 26s).
I Tried Autoptimize and it was tested at 45s.
It looks like WP Faster Cache is the fastest, ill turn it back on until try setup a CDN.
Fast Forward to Sept 2017
Since writing this post I have moved away from a shared C-Panel host and have moved my domain to a self-managed Vultr server closer to me, I have moved my email to Google G-Suite. I have learned how to deploy and manage WordPress by command-line tools. I have set up servers on Digital Ocean before but the servers are located in Singapore and not Sydney and latency and scalability was poor. SSL will make sites slower and servers far away will just compound the issues.
Re-enabling the WP Fastest Cache Plugin
I tried reinstalling the WP Fastest Cache plugin and for me, the plugin just slows down my site by 6 seconds.
I opened my NGINX config and got my NGINX user
My user is: www-data
I enabled the WP Fastest Cache plugin and ensured the WP Fastest Cache has ownership and access to the cache folder.
Below are the settings I use.
installing the WP-Optimize Plugin
I recommend setting up WP-Optimize plugin as it will optimize your database and keep things fast, it only saves me a second on my load times but this helps.
WP-Optimize will allow for to review database optimizations
Setting up Nginx GZip Compression
I set up my Nginx config to include
I set the minimum size to gzip too
Benchmark with G-Zip, Caching and WP Fastest Cache
With WP Fastest Cache I now load my site in 13.9 seconds from Singapore. Time to disable WP Fastest cache plugin as it does not seem to be helping without linking to a CDN.
Setting up Browser Caching
I also setup browser caching by editing in NginX.
Added
Not sure if caching CSS and JS will cause problems in future?
Benchmark with G-Zip, Caching and without WP Fastest Cache (Singapore)
I re-ran the tests and got 10.9 seconds and got a B for cached content. When in Started on C-Panel I was getting near 30s
Benchmark with G-Zip, Caching and without WP Fastest Cache (Sydney)
I have always benchmarked from Singapore (as Sydney was not an option when I started) but now it is. Out f curiosity is my website load time in Sydney?
8.2 seconds. Distance does affect performance.
Google Speed Insights
Google has awesome tools to help you increase your benchmark mobile and desktop website speeds and recommend focus areas to resolve problems: https://developers.google.com/speed/pagespeed/insights/
Mobile Speed Score
Desktop Speed Score
Tips
I was getting SVG files failing compassion tests so I added the following under allowed mime types under “http gzip_types” in /etc/nginx/nginx.conf
Minifying JS and CSS
This needs to be done and 50% of my site files appears to be CSS and JS related.
It looks like 30%~40 of your sites google speed index is related to minified/combined JS/CSS.
I installed the Fast Velocity Minify WordPress plugin.
I ran this to install it from the command line
cd /www/wp-content/plugins# sudo wget https://downloads.wordpress.org/plugin/fast-velocity-minify.2.2.1.zip --2017-09-23 19:51:46-- https://downloads.wordpress.org/plugin/fast-velocity-minify.2.2.1.zip Resolving downloads.wordpress.org (downloads.wordpress.org)... 66.155.40.187, 66.155.40.203, 66.155.40.188, ... Connecting to downloads.wordpress.org (downloads.wordpress.org)|66.155.40.187|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 821621 (802K) [application/octet-stream] Saving to: ‘fast-velocity-minify.2.2.1.zip’ fast-velocity-minify.2.2.1.zip 100%[=================================================>] 802.36K 830KB/s in 1.0s 2017-09-23 19:51:47 (830 KB/s) - ‘fast-velocity-minify.2.2.1.zip’ saved [821621/821621]
Unzip
I activated the plugin and set some settings
Verified minify logs
Google Page Insights can now see the minifies, css, js and html
Google Page Insights – Possible Optimizations
And Google Ad Words and Google Analytics appear to be holding back Google Page Insight scores
I am getting a few false positives with plugins javascript but that can be resolved another day.
Pingdom (Melbourne results)
3.2 seconds, a few false positives though.
I was going to test with https://www.webpagetest.org/ (from Singapore) but the service kept stalling and had too many tests before me (even from Sydney).
Address First Byte Time (todo)
If I look at the first-byte load results in the waterfall view my site is taking many seconds to deliver the first byte, this lowers the performance scores about 20%. I need to set up a CDN and or configure NGINX following this guide based on this manual configuration entry (I tried some of the Nginx settings but it appears I need to compile some performance settings into Nginx).
CDN (todo)
I am sure a Content Delivery Network (CDN) will help with the whole page deliver and first-byte times but I am trying to milk as much free as possible and limit future costs. A CDN will trigger higher monthly costs (any CDN providers want to donate a temporary pro plan for review purposes).
Misc Speed Articles
- Yoast has a good site speed article here: https://yoast.com/site-speed-tools-suggestions/
- Nginx has a good guide on Nginx performance here: https://www.nginx.com/blog/10-tips-for-10x-application-performance/
- Google PageSpeed tips: https://developers.google.com/speed/docs/insights/rules
Configuring Ubuntu for Performance
Preventing applications swapping for disk (read more here)
I added this memory-related setting.
This will all but prevent applications writing to disk (swap) when they are not active. I had free memory on my VM so I may as well use it.
I will monitor the free ram after reboot and play with php memory settings.
Setup Lazyload for images in posts
cd /www/wp-content/plugins/ sudo wget https://downloads.wordpress.org/plugin/bj-lazy-load.zip unzip bj-lazy-load.zip # activate the plugin
Lazyload Plugin Settings
Placeholder Image ( Image: https://fearby.com/wp-content/uploads/2017/09/placeholder.jpg )
Web Performance Test from Sydney
8.4 seconds ( Score Card F A A A C, was F F F A F ). I was getting up to 28 second load times with Net Registry C Panel servers.
Static Content is cached but Googe Ad Sence, Google Analytics, and some plugins do block the score. The front page does have some features content that has to be loaded and can’t be minified or cached much.
It is obvious I need to work in the initial websitee load (DNS, CDN or SSL), there sis 3 seconds I can save here.
Configuring PHP for Performance
todo: PHP base config.
todo: PHP caching.
Conclusion
I was expecting WP Fastest Cache to deliver faster speeds but in reality but I am getting 4 seconds faster in WordPress. I was going to configure MaxCDN but they are to expensive. Fast Velocity Minify Plugin is working a treat 🙂
I ended up ditching the shared CPanel hosted domain and setup my own server for WordPress. My site seems a lot faster now. A friend set up CloudFlare with great success, more soon. I blogged about my server setup here.
Adding browser cache and compressing and moving away from CPanel to a self-managed server helped.
The only things to try now is to use a CDN and speed up the delivery of my site and improve the First Byte Time.
Donate and make this blog better
Ask a question or recommend an article
[contact-form-7 id=”30″ title=”Ask a Question”]
Revision History
v1.932 added lazy load information (24th Sep 2017)
v1.952 added small changes (23rd Sep 2017)
etc