While a website page can look simple as you view it, there might be a lot going on behind the scenes, especially using a content management system like WordPress: if you’ve reached this article, you’ve likely had a peek behind the scenes, like checking page source: Yikes!
All the coding means that creating a page takes time; and if it’s a tad too long, well people viewing the page, or trying to, might decide it’s best to look elsewhere. As many a post notes, Google doesn’t like slow pages, either, and – all else being equal – ranks faster pages above slower ones in search results.
There’s a huge amount of info online about how to speed up WordPress, so pages load quickly, maybe to the max so they score top marks when tested. Search, and you might find this info includes plugin developers telling you their plugin is the Best to use; also advice and review pages that in some cases may include affiliate links or are otherwise connected to the solutions they espouse. Some info seems more independent, and varies between being relatively light and “fluffy” – like this here!, to far more hardcore, detailed and somewhat daunting: see, for instance, 25 Ways To Fix A Slow WordPress Site And Pass Core Web Vitals: 2022 Advanced Guide.
Here, a few notes from my experience running relatively simple sites.
Reduce Bloat
One obvious issue when it comes to speed is how big a page actually is. Basic text doesn’t matter so much, but images can quickly add up to considerable size – so it’s best to upload images that look fine on displays yet are also relatively small. For photos, this means jpeg, at modest quality, without being too many pixels across [880 pixels max length seems about right to me, but up to you]; and in my case also using ImageOptim application on Mac OS X.
Also without too much by way of extras that appear on the page – sliders, maps and so on and so forth.
Then, not too much behind the scenes. Which partly means not overstuffing the backend with plugins, even though it may be tempting to grab a whole lot of these, especially free ones that seem maybe useful. I’m no saint here, using Yoast, Google Site Kit among others that purists may avoid – partly as I like some of their functionality, and not such a hotshot I can replicate this or have time for other methods.
One thing I did find was that the popular Contact 7 plugin loads code on every page; I get few comments, so it was easy to swap for another, more lightweight plugin.
Caching – with W3 Total Cache
I spent some time searching for a cache plugin that is useful even if free (alas, not making money from my sites). W3 Total Cache fits the bill, even if the settings are complex, and not ideally documented as you work through the settings. What is, say, “fragment caching”? – to find out, you would have to navigate to further information, rather than seeing a brief explanation.
I’ve used this for some months, since starting with WordPress (after Drupal); some good results, but tests such as with Google Site Kit and occasionally GTMetrix showed considerable room for improvement. Partly as I have only a fairly basic setup: no Varnish, memcache, Redis …
I learned that one possible way to boost speed for users in different parts of the world is by using a CDN – a content delivery network, so pages could be served from places close to would-be viewers. It seems there’s a major free option, used by many people: Cloudflare.
Cloudflare
According to the homepage:
Cloudflare is a global network designed to make everything you connect to the Internet secure, private, fast, and reliable.
Cloudflare
Which seems impressive, especially when Cloudflare offers quite a few services for free, with options to pay for more that might even suit very large sites and enterprises.
Using Cloudflare takes a bit of effort – not just signing up for an account, but also routing requests for your website to be handled by Cloudflare (which in turn “talks” to your webhost), and working through settings for your site when cached by Cloudflare.
Plus, you have to ensure the WordPress site can communicate with Cloudflare; there are dedicated plugins, though W3 Total Cache can also handle this. Again, it’s fairly complex setting up W3 Total Cache and Cloudflare, but doable with help from instructions online.
Using the W3 Total Cache and Cloudflare combo, I was never too happy with the results, largely as google not too happy when checking speed! Tried occasional tweaks, nothing quite right.
Looking for info, I saw a note about Cloudflare having a “cache everything” option, so it should store readymade pages and serve these to users. Looking for more about this, it seemed this option is not on by default; and while I could use some rules on Cloudflare, it could also be set via a WordPress plugin:
Super Page Cache for Cloudflare
This plugin, it appeared, would set “cache everything” on Cloudflare, but perhaps with rules that mean it is not set for pages that don’t require this, such as Woocommerce checkout and more. Very handy!
Instructions indicate that to combine with W3 Total Cache, simply stop the page cache option of W3 Total Cache. I did so, enabled Super Page Cache for Cloudflare using its “out of the box” settings, and results seemed good. Some fluctuations, but tending towards good, only few “poor” reports with Google Site Kit.
Update: I’ve seen some poorer results with Site Kit/Google page speed analysis. Looked for reasons, and found a recommendation for using W3 Total Cache, even with Super Page Cache for Cloudflare – means that even if Cloudflare doesn’t have a page ready, can access a cached one from server. I’ve set this. My pages do seem to load fast; but still not good scores with Google; not sure why.
Images: Lazy Loading and Conversions to WebP
Lazy loading images seems fairly basic, too; so the images kind of cascade onto a page over time, rather than being requested and loaded into the browser all at once. There are quite a few options for doing this; I’m using EWWW Image Optimizer, partly as it can also do some optimising of uploaded images, such as by converting to the newer WebP format that cuts down file size and works on browsers such as Chrome. [Oddly, Site Kit can report I am not using WebP images…]
This still leaves plenty more that can be done, as per the link above to 25 ways to fix a slow WordPress site.
Asset CleanUp – Stripping Some Unnecessary Stuff
The Asset CleanUp plugin can halt various things – css, javascript etc – loading on pages that don’t need them. Using free version, managed some simple things like stopping bbpress js codes loading on non-forum posts and pages.