TL;DR: You can use a CDN service (free, no technical knowledge required) to minimize your TTFB - "Time to First Byte" - which turns out to be an important SEO metric.
Google's Page Speed Insights provides some great tips on how you can optimize your page load times:
</body>
tag and load everything asynchronouslyBut while all these tips are great, Page Speed still misses one important thing.
TTFB means "Time to first byte". Wikipedia describes this as "the duration from making an HTTP request to the first byte of the page being received by the browser". You can measure your TTFB using the "Network" tab in Chrome's Developer tools.
TTFB is a hugely important SEO factor. Moz has even published a report analyzing thousands of websites and discovering that TTFB highly correlates with the websites' rankings, both for popular keywords and the "long-tail".
I understand that "correlation does not mean causation", but my data proves that in this case - it kinda does.
While there are some platform-agnostic tips for improving your TTFB (like moving away from shared hosting to a VPS or a dedicated server, fast network connections, using a CDN etc.) optimizing TTFB is highly specific for each platform. Basically most of the techniques involve some kind of server-caching ("OpCache" for PHP, built-in server-side caching for ASP.NET and Ruby-on-Rails, etc.)
But what about non-technical people? Or someone who can't afford paying for a dedicated box?
If your website is not using a CDN "reverse-proxy" service like CloudFlare or Incapsula - you're missing out. For those who don't know what they do: basically they run a sh*t-ton of fast nginx-webservers all over the planet, that serve your static content from the location closest to the visitor. That's it. With some icing on the cake like DDoS protection, JS/CSS minification, image optimization etc. I will stick to CloudFlare for the sake of this post simply because we use them historically but I heard nice things about Incapsula too (I heard they are actually more tweakable).
Now a CDN actually increases the TTFB times. Because it adds an extra "hop" between your server and the user. This is by design. They don't cache HTML (unlike JS/CSS/images), they take it from your webserver, every time. And this obviously increases the latency. CloudFlare even published a blog post claiming that "Time to first byte is not important". Yeah, right, uh-huh.
The only way to skip this extra "hop" and minimize TTFB is to serve HTML right from the Cloudflare's server - by using their cache everything setting. Most of my website's pages are dynamic, but it's OK to cache them for a couple of hours. Or even more since you can purge the cache via CloudFlare's API.
Enabling HTML-caching in CloudFlare is not straightforward. You have to create a "page rule". Probably more than just one. Keep in mind that their freemium plan is limited to 3 page rules (not sure about Incapsula's limitations).
www.website.com*
(note the asterisk)IMPORTANT: mind these pitfalls
www.example.com/admin*
or www.example.com/forum*
and moving those up in the list of rules at Cloudflare.$.post
instead of $.get
in your JavaScript because CloudFlare does not cache POST-responses.Yes, you will have to reset your cache every time you publish new content to your website. Or just wait a couple of hours until it refreshes by itself. If you're technical - you can simply adjust your CMS so it sends an API request to reset the CDN's cache.
Anyhow. I was able to reduce my TTFB from 300-500 milliseconds (which was not that bad) to whooping 40-80 milliseconds! Not bad huh? It's been only 24 hours but I can see some movement in my rankings. Even if its just a coincidence - this has hugely improved my site's UX, which will result in lower bounce rates and less "pogo sticking", which in turn will eventually lead to better rankings... We'll see.