Another simple, yet elegant solution is WP Fastest cache. It has done the job for us quite well on 20+ websites.