I’m trying to figure out why my TTFB is so slow, and after trying basically everything I found in these forums (and beyond) to no avail, I feel like it might just be time to post a question myself.
In short, I’m trying to optimize a website I’m hoping to launch soon. While there are things left to improve like image resizing, the main bottleneck appears to be TTFB, and I just can’t figure out why it’s so slow.
Some potentially pertinent details: I’m on shared hosting with SiteGround, and the website is hosted in Europe. I run Cloudflare (free plan) with most speed-related features turned on, e.g., minifying CSS, JS, HTML, and Brotli. I turned Rocket Loader off because it caused some issues with elements popping in and out as they loaded, and I left Railgun alone as well.
In the Wordpress backend, I used the plugin supplied by my host to remove query strings from static resources and enable Gzip compression. Other than that, I turned all extra server-side caching and minifying off to leave that for Cloudflare to deal with.
I use Let’s Encrypt SSL, which if I understand things correctly, should encrypt transfers between my host and Cloudflare without interfering with Cloudflare’s universal ssl certificate.
The problem: Connecting from where I live, in Taiwan, I get 1.6-3 second TTFB. Picking a server near the location of where my website is hosted, I can get it down somewhere around 0.6-1 second with WebPageTest.org’s testing tool, earning me a not-so-fine D TTFB rating.
From what my untrained eyes can tell from the waterfall in Vivaldi’s (or Chrome’s) developer tools, the actual index page isn’t downloaded from Cloudflare. To me, that would explain why I’m scoring better in Europe, where the site is hosted. What I can’t understand is why.
Any ideas as to what may be causing this (or, if it’s me expecting CF to do something it can’t) would be much appreciated. I’m attaching a screenshot of what things look like on my end as well as my page rules. You can find the website address in the screenshots.