Ever site have content for cache or pregenerate.
Why cache need to be part of optimization? - if you know what you do and how it is very fast way to lower server load. So, after load is lowered you will have time to think about logical optimization ;)
What we can cache?
As example, if site have visitors counter its results can be cache for several minutes and this will save little time for executions. Here I need to notice - it very important to cache something which take more time than fetch from cache! of course for our case we need to know how many time/cpu/memory take counter and same values for cache fetch function. There are no sense to cache if we do not save or convert server resources.