I've always tended to have a cache system where the cached output is built upon the first request for a page.
All subsequent requests for that page are fed from the cache.
This alleviates building up pages which are unlikely to have an access. The downside is that once you've cleaned your cache, for the first X seconds/minutes/hours (depending on how big and how busy your site is), the server will be under increased load.
What coding language is your site written in? How are you building the cache? Through a separate set of scripts to those which display your page?