Here is what I would do:
- Connect a code profiler (new relic, tideways or similar, just google for them) to the website and see what code exactly is slowing the site down.
For example here is a callgraph of a website I was working on:
See curl_exec takes more than 1s to execute. That's not normal and that relates to ElasticSearch taking too long to run queries. That needs to be investigated and fixed. Your case could be different but a code profiler will tell you exactly what's wrong.
- Still couldn't figure it out. Try a 3rd-party extension audit. From my experience of optimizing Magento 2, in most cases it's a poorly coded custom plugin that's responsible for hight TTFBs.
Do the following - turn off all custom modules and see if it makes the site faster. If it does - turn them on one by one and find which one(s) breaks performance.
You could turn a module off by running:
php bin/magento module:disable Vendor_ModuleName
To see a list of all modules:
php bin/magento module:status
- Switch to a Luma theme. See if it makes a difference, if it does - you know it's a custom theme that's slowing you down and you need to investigate it further. Code profiler will help in that case.
Of course, it could be as simple as caching being off, in that case run:
php bin/magento cache:enable
Good luck!