Что на сайте нужно обязательно кэшировать?
Обязательно - не надо ничего кэшировать.
Дополнение от dimasmagadan : Не забываем про настройку сервера для того, чтобы браузер клиента мог сам кэшировать страницы.
В идеале, кэшировать надо данные ВСЕХ функциональных блоков, зависящих от входных параметров.
К ним относятся: 
1. SQL-запросы и ответы
2. поиск по любой структуре данных и результат этого поиска
3. файловая структура, находящаяся по определённому пути
4. данные, полученные для каждого из блоков представления ("список", "выборка", "статистика" и т.д.)
5. сформированный шаблонизатором контент на основе GET-параметров
Всегда кэшируйте первым тот блок, который занимает больше времени при обработке данных и т.д. по нисходящей.
Первые претенденты на кэширование, как правило:  блоки с пунктами 2, 3 и 5.
Дополнение от Алексей Уколов :
Кеширование - это большая боль для разработчика, на самом деле. И "не надо кешировать" - это именно с этой точки зрения. Любой кеш усложняет приложение в разы, потому что его нужно инвалидировать, обрабатывать ошибки и т.п. Но часто без него не обойтись, это факт.
Если пользователь авторизован - то его профиль и набор прав доступа