Source: Chris Lima - Managing a High Performance WordPress Membership Site
I should look at caching plugins because it makes things faster, better and worked for you. The problem with that answer is that most caching plugins don’t do much for logged in users.
Most sites have is that non-logged in users should get pre-cached pages that load super fast, and logged-in users are the authors and admins who are working on the back-end, and don’t need the same level of performance. And for most sites, this works. But membership sites are a bit different.
The end user is a logged-in user. So you need a solution that works for logged-in users. Additionally, membership sites are often filled with user-specific data (like menus, sidebar widgets, content..etc) that needs to be current. So full page caching isn’t a solution – from a plugin or hosting provider.
Instead, what you need is part of page caching.
1. Part of page caching:
these kinds of approaches are neither in abundance, nor are they often talked about when you’re evaluating a membership plugin. I’m to blame too. There’s a great article explaining why it’s not great by Austin Gunter of WP Engine on their blog. Suffice to say, if your options table is growing like crazy, you may be doing it wrong.
BTW, garbage collection for transients (an issue raised in Austin’s article) may get added to WordPress in 3.7
2. Fragment caching:
You can use a little class created by Mark Jaquith. He calls it fragment caching,
but it’s not different from partial page caching. You’d want to check out this article that has the code in it, and read the comments.
I think this is a pretty powerful option for a lot of situations, but scaling a membership site is all about limiting the application processing side of things.
So finally there is one option that you need to try cache only database do not catch page data, browser data. I do not proposed to use W3 Total Cache but check it once this plugin may be your solution.