I'm using W3 and Sidebar Login (in a widget). When a user tries to login from the index page, cookie is set, but cached version of the page is still displayed, so login is not recognized. As a result, the login form doesn't change into displaying the member's avatar and info and likewise the WP member panel which is on top of all pages for easy access to the backend is not displayed.
Disabling Page Cache resolves the issue, however with it disabled, CPU load doubles so it is quite needed. I have a very high traffic site so when a member tries to log in and it doesn't log them in, they may freak and think they had been banned for no reason. Therefore it's a very bad thing for me. Majority of internet users are not very tech savvy which is why I have that login form in the sidebar, so it's of importance that when they try to log in, that it shows them as logged in. However given how busy my site is, extra load due to no page caching is too much.
How can I make sidebar login work while also get proper caching?