Slow websites are painful. An important value to look at when optimizing your website is the TTFB (Time Til First Bye), which is the delay between when the request is sent to the server and server actually responds.
Here is an example of a particularly long TTFB.
These are some of my notes on improving (e.g. reducing) the TTFB of a WordPress website.
Add a caching plugin. WordPress does a lot of work (both in terms of PHP processing and MySQL database access) to render a page. By using a caching plugin you can eliminate much of this and significantly speed up your site. However, if your visitors are logged into your site you will not see nearly as much of an improvement because when you are logged in, because much of the caching is skipped.
I like the WP Rocket caching plugin, it is paid product but the time I save thanks to its simple setup and configuration makes it a better value for me than any of the free options.
You want to make sure your website is running on at least PHP 7 (there were huge performance gains with PHP 7). Beyond that, there is a large spectrum within hosting on performance. Typically, you get what you pay for. Personally, I host my sites (which do not involved users logging in) on Siteground shared hosting.
Improve the Code
Look for code (plugins or themes) doing lots of database hits (the Query Monitor plugin can be helpful with this). This step is significantly more work than the earlier steps. If you’re not a developer, you’ll probably need to get help from one for this step.