How to optimize multiple WP_Query() calls on one page?

There’s never one magic answer to broad performance questions. It’s like choosing a vehicle — the best choice for one person or situation may be a lousy choice for another. Here specifically, it’s even more granular: the best answer for one query maybe not even be the best answer for another! There isn’t enough information here to even provide good advice, for lots of reasons. Among them:

  • Query specifics; two queries may be radically different in performance, so one perhaps could be left alone while another should use a transient.
  • How often the data will change; one query perhaps should be cached indefinitely with a refresh on post update, while another not cached at all.
  • Whether or not full-page caching will be present
  • Whether or not you’re using Memcached (or similar)
  • The size of the post and taxonomy tables

The best thing you can do is implement it and see how your SQL performance fares using the Debug Bar Plugin or similar, then make decisions or ask more pointed questions based on that data. It would also be a good idea to take a step back and ask yourself if any of the queries could be combined, and then separate the posts using PHP.

At the very least, I can offer this: there’s rarely a reason to not use some form of full-page caching, which may make what you do here a little less significant depending on how long you can cache the page. My go-to solutions for this are Varnish, WP Super Cache, or Batcache, depending on the server architecture.

I hope this can at least point you in the right direction, and help you get your feet off the ground!