Work through these in order. The first two account for most cases and cost nothing to check.
1. Is anything cached at all?
Without page caching, every visit rebuilds the page from the database. A caching plugin serving a stored copy is usually the single biggest improvement available, and it is the first thing to put in place.
2. Which plugin is responsible?
Slowness that appeared suddenly usually followed an installation. A query monitoring plugin will show you which plugin is consuming the time on each page load. Failing that, deactivate plugins one at a time on a staging copy and measure.
Watch particularly for plugins that check something remote on every page load – a licence, a feed, a currency rate. If that remote service is slow, every one of your pages waits for it.
3. wp-admin specifically
If the admin is slow but the front end is fine, the usual suspects are admin-ajax being polled repeatedly, an overloaded dashboard, or a plugin doing work on every admin page load. The admin is not cached, so it exposes problems the front end hides.
4. The database
Look at post revisions, expired transients, and autoloaded options. A wp_options table with megabytes of autoloaded data is loaded in full on every single request. See WordPress database maintenance.
5. Images
Full-size camera images used as thumbnails are a very common cause. Resize before uploading, and use a compression plugin.
6. Then the server
Check Resource Usage in cPanel. If you are hitting CPU or entry process limits, the cause is usually one of the above rather than the package being too small – fix the cause first.