Update: The changes described in this blogpost were reverted in September 2023 after I decided to move to a new platform and archive this site.
It has been 7 years since I last refreshed the look of this blog. Best practices for delivering a high quality (i.e. fast!) experience continue to evolve, and I wanted to use a more modern theme that would incorporate recent improvements than the default theme WordPress shipped in 2016. This time I picked a third party theme called Astra, which claims to be small and highly performant. I did look at WordPress’ latest (Twenty Twenty-Three), which has a completely redesigned customisation mode based around their blocks editing paradigm, but it was so different that it needed a great deal of customisation work, whereas Astra continues to use the older Customiser theme editor and was thus very easy to continue to use my preferred layout.
The new look is so similar to the old that I initially wondered if the change was too timid. Ultimately I decided it did give the site a more modern polish, and the wider content area works well for the photograph-based posts—now the majority of what I publish here. Unfortunately my other goal of further improving site performance, particularly on mobile, was unsuccessful, with the new theme scoring approximately the same as the old one on pagespeed.web.dev. Interestingly while Jetpack Boost was able to improve some scores this was at the cost of other metrics which are weighted higher in the overall score. This meant that using Boost actually decreased the overall score—I suspect this is the result of starting with a theme which is already well optimised, and so Boost has now been disabled.
Having chosen a lightweight theme, further page load speed improvements require reducing page generation times in the backend php, as well as eliminating javascript and css from being downloaded. Both of these can be achieved by using fewer WordPress plugins, but a WordPress site with nearly 20 years of content cannot simply turn off plugins, even if the most recent post which used them is from years ago, because when that post is part of a dynamic page (for example, when viewing a tag) then the content will not render correctly.
One last experiment to report upon before I close this post: php version. There are reports that version 8.1 of PHP features a dramatic performance improvement and my provider has recently provided a per-website PHP version selection feature and offers versions 7.4 and 8.1 alongside the default 7.3. I briefly tried version 8.1 but the scores were not significantly better for a single test, and it broke the Flickr Justified Gallery plugin which I used in many posts between 2015 and 2018. For the moment I have switched to PHP7.4 so that I am at least I am on a version which WordPress supports, and it gives me some time to figure out the best way to solve the plugin issue.