WordPress performance could be affected by numerous factors – a poor hosting plan selected, inefficient server infrastructure (and its configuration), coding problems regarding the selected theme and the collection of plugins in use, an exceeding number of concurrent users or traffic.
If I had to build a checklist, it would probably look like this:
(1) Make sure your hosting plan is worth paying for. High scale websites rely on a top notch hosting setup, a refined set of modules for your web server, stable object caching solutions (redis or memcached) working properly, things like this. The more clutter they offer, the worse. Auto-scaling platforms such as those relying on Amazon Web Services or Kinsa generally work better. Migrate to one of the top choices if in doubt, this may solve some of your troubles out of the box.
(2) Analyze your site with GT Metrix or Page Speed. Figure out where the bottlenecks come from. Test your homepage, key landing pages, blog posts, archive pages.
(3) Review your existing setup. Premium themes can be heavy. Heavy and powerful plugins can affect the bottom line as well. For the latter, you can run P3 Profiler, a plugin running some benchmarks and reporting the slowest plugins in the setup.
(4) Take a look at your analytics. If you’re serving several thousand views simultaneously (to concurrent users), this will require a careful strategic overview of everything you’re running to date alongside your plan. Caching is mandatory as best as possible. Otherwise, figure out if some pages are heavier than others, and see what could be optimized there.
(5) Review your content to date. Hundreds of thousands of posts or post types may slow down your queries, especially with heavy plugins adding up on top of capabilities, user roles, meta fields, etc.
(6) Use an image optimization solution like EWWW, SmushIt, Kraken.io and the like. Images could contribute to 80%+ of the complete page size for longer posts you’re producing.
(7) If you’re struggling big time and need to survive through the night until you call for help, upgrade your plan if possible and install WP Rocket. Any caching should help for starters, even if there are unexpected regressions in some places. This is your “Plan B” in case something goes off during a successful campaign.