I noticed you are using CloudFlare on your site. FYI, by default Cloudflare will NOT cache that root html content - because it “could change”. They don’t know your website/cms and what you want. If you click on the HTML request and look at the response headers, you will see the header:
The above header shows it is being regarded as a dynamic page and not cached. That also means the 2 seconds you are seeing includes the connection time to cloudflare (DNS+TCP CONNECT+TLS NEGOTIATION) plus the backend request from CloudFlare to origin (DNS+TCP CONNECT+TLS NEGOTIATION). Requests to origin will always be slower and also slower for longer geographic distances (if your origin is far away from the test location).
You can add a page rule to CloudFlare to “Cache Everything” in your account which will cause the html caching to be more aggressive. That’s just not the default behavior in case your website is updating frequently…
It also looks like you are using WordPress. Personally, I don’t use wordpress, so I can’t recommend any plugins or anything… but you may want to go and do some research on “wordpress caching plugins” that can cache your pages as static files and therefor respond quite quickly when a page request comes in (instead of parsing all the PHP and rendering everything on the fly per request). Again I can’t recommend any specific solution as I don’t know wordpress.
And as @pmeenan said, your hosting “quality” will impact wordpress performance. Lower cost shared hosts will be lower performance. Dedicated hosting or semi-dedicating hosting will cost more but also perform better and more consistently.