This adds in the region of an extra 1.5 – 2 seconds load time.
These redirects alone should not be adding “an extra 1.5 – 2 seconds load time”. If it is then you would seem to have other problems with your server response time or slow network speeds.
After the initial request, any DNS lookups are cached by the browser/system and once the redirect(s) have been experienced the first time, the redirects themselves are cached by the browser (or should be if you have implemented 301 permanent redirects).
Ideally, I would like 1 redirect, from example.co.uk straight to
https://www.example.co.uk
.
Yes, this has always been the preferred method in the past (to minimise the additional redirects). However, these days, it is often recommended to redirect from HTTP to HTTPS on the same host first and then canonicalise the hostname (ie. non-www to www redirect) in a second request (if required). And you will need to do this two-stage redirect if you plan on implementing HSTS, which is certainly recommended if you are committed to HTTPS and security.
So, arguably, you are already doing it the recommended way.
However, it’s relatively straight forward to do this in a single redirect if you wish. For example (depending on your config), something like:
RewriteEngine On
RewriteCond %{HTTPS} !on [OR]
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule (.*) https://www.example.co.uk/$1 [R=301,L]
The above states… for all requests that are not HTTPS or where the requested Host
header does not start www.
then redirect to https://www.example.co.uk/<URL-path>
.