Thank the stars for people who know what they’re doing. Andrew a.k.a That Green Jacket Guy, had been pestering me for a while about how slowly HokkaidoWilds.org had been loading.
“It feels like a website on its last legs,” he joked. “But more seriously, are you sure it can handle the traffic it’ll get once people can travel again?”
I’d skied with Andrew a couple of times, and knew he was a professional. As a linux systems engineer, his clients include major TV stations, large companies, and high-stakes, high-income websites. They all depend on him to make sure their websites delivered content fast. Many of the sites he works on deal with tens of thousands of users per second.
With Andrew’s help, the HokkaidoWilds.org website is now faster, more cost-efficient, more resilient, more secure, and more scalable. Our previous patched-together solutions were outdated and vulnerable.
It wasn’t the first time Andrew had been on my case about the site performance. So I made a proposition. “If you’re keen, why not poke around in the backend of HokkaidoWilds.org and maybe you can fix something.”
I sent him the login details. WordPress, AWS (Amazon storage), Kinsta (hosting), 1&1 Hosting (domain name), our budget content delivery network account Bunny CDN, and Cloudflare CDN…it had been a while since I saw them all lined up.
NOTE: A CDN is a content delivery network. It allows us to have multiple ‘copies’ of the site across the world, making website load speed really fast no matter where you access the site from.
“This is already a spaghetti mess,” Andrew typed at me via Facebook Messenger.
Andrew currently lives in Australia, but he has spent a number of years living and working as a system engineer in Niseko. Like many highly skilled ex-residents and defacto local expats who happened to be outside Japan when the pandemic hit, he’s currently ‘stuck’ outside of Japan.
“We really wish we could be there this season,” Andrew mused.
The last time I skied with Andrew was on Shiribetsu-dake in January 2020.
15 minutes after Andrew had accessed the backend of the site, he messaged me again. “I made a few changes,” he said nonchalantly.
It was like night and day. “I’m a bit speechless,” I replied. “This is the fastest the site has run for as long as I can remember.”
“I have some suggestions for how we can make the site hum along like a well-oiled machine though,” said Andrew. “You’re likely to see a lot more users when people can travel to Hokkaido again, so why don’t we properly sort things out?”
BEFORE AND AFTER BACKEND CONFIGURATION
With Andrew at the systems helm, here’s how he got our affairs in order, regarding the server hardware, network, and optimization side of things.
Kinsta.com cloud server
An OK solution, but not enough storage space, non-configurable caching system, and surprisingly low user access number limits, all for up to US$600 per year.
Helsinki Hetzner based dedicated bare metal linux server
About 2-4x faster processing and 8x more RAM (thanks Andrew for the interim solution!)
Bunny CDN and Cloudflare CDN
In reality we could have done way with Bunny CDN long ago. I just didn't know the how or why of CDNs. Bunny CDN was super cheap, and Cloudflare was free...and we were getting what we were paying for.
We're now on a US$50 a month CDN solution with Fastly, a very comprehensive CDN.
Kinsta.com's built-in caching
Kinsta.com is marketed hard as a one-stop solution, but for experts, there's little customization that can be done - including caching.
W3 Total Cache
Settings and customization galore. Thank the stars Andrew knows what he is doing.
We used WP Rocket for a while, but it didn't seem to work nicely with Kinsta.com, I really didn't know what I was doing, and it cost US$25 a year.
An expert's choice, and free.
AWS S3 (storage on Amazon's servers)
Becasue Kinsta.com's hosting plan was space-limited, we needed to host images on Amazon (costing us US$200/yr for software to do that).
Thanks Andrew for the storage space on his server!
I had installed this plugin to scan for malicious code, and it had helped out. But Andrew found a number of dormant threats on the site!
A much beefier WordPress security plugin.
RATIONALIZATION OF COSTS
The fix that Andrew put together is designed for customization, efficiency, and rational use of funds. I’d been meaning to try to rationalize the various fees we’d been paying the past few years for web services, hosting, plugins (web software) etc. With Andrew’s help, we were able to properly rationalize what we did and didn’t need.
|PREVIOUS COSTS||Kinsta.com hosting||$600|
|Amazon offload plugin||$200|
|WP Rocket caching plugin||$25|
|CURRENT COSTS||Fastly CDN||$600|
Obviously, we’re hugely indebted to Andrew for allowing us to borrow space on his web server. A dedicated server would be about $150 per month (with a high-spec server like Andrew’s $300-600 a month).
But the benefits are clear – a scalable website infrastructure that will more than handle an influx of users once pandemic-induced travel restrictions to Japan are eased.
IN ANDREW’S WORDS
From a technical standpoint, those other discount CDN solutions HokkaidoWilds.org had tried a) have extremely low hit ratios and b) have no configurability to change how the CDN responds to different content. Hit ratio refers to how often cached content is delivered to users. Low hit ratios were costing HokkaidoWilds.org money in the long run, their content was falling out of cache well before the expiry time, and without a configurable CDN they (and I) were left making concessions and imperfect solutions for how we deliver the website content.
This is all technical-speak to say that the way that a website sets up their backend network structure is super important, especially if there’s any expectation or hope of the growing popularity of a website.
The site certainly feels faster now. Previously, when showing people the site, I’d have to resort to making pithy small talk as we waited for content to load, it was that slow.
Quantitatively also, the site is faster. Using the Google PageSpeed analyzer, the desktop performance has jumped from around 70 to an almost-perfect 94 (99% on GTmetrix). Happy days!
Even on my smartphone, the site is snappy and fast.
“There is, however, only so much you can polish a turd,” Andrew typed unapologetically.
While real-world smartphone performance is very quick now, the site is being penalized somewhat by the Google PageSpeed mobile score (which assumes a very basic phone and slow mobile data speeds): 42.
Andrew was right. An amateur (me) created the site, and the hacked-together structure of the site showed in the more punishing mobile page speed score.
The heavy layout plugin (Elementor) may be part of the problem. But I love Elementor. It’s such an easy to use tool for a relatively non-techie like me, for full control over site layout.
Overall, for me (Rob), all this optimization has been a long overdue must-do for HokkaidoWilds.org. Handing over the reigns of the network side of the site to someone like Andrew has been liberating. And I can only apologise to him for the mess of a site I have subjected him to 😉
2 thoughts on “Making HokkaidoWilds.org faster and more resilient”
Thanks for the clarification – it would have been truly impressive if his ‘pooch’ pulled it off! Jokes aside looks like it has paid dividends with a hefty gain in speed and importantly a few more yen left in the ol’ wallet. I also investigated switching to Kinsta but was put off in part about how Kinsta counts visits i.e., they appear to use something akin to AWStats which for me is a fair bit higher than Google Analytics – which I just learnt can’t count visitors who are using ad blockers. Though I did like the idea of a ‘staging area’ to test new features etc. For a short period, I used Bunny CDN but couldn’t get it configured properly. I use Cloudflare for my nameservers which saves a huge swathe of bandwidth each month (Cloudflare Free Plan). At least for my blog the best plugin by none is WP Rocket but takes trial and error to dial in the optimal settings which is a work in progress. Hokkaido Wilds will be more than ready for a ‘stress test’ once travel restrictions to Japan are eased 😊
Thanks for the feedback and insights David! Yes, we use the Cloudflare DNS too (the free plan). I get you on the Kinsta visitor counting…we were almost always pushing the limit on the US$300 a year plan even during these Corona times, an before that had to be on a US$600 plan to cover the visitor numbers with Kinsta.