Это не совсем понятно из вашего вопроса, но я предполагаю, что вы ищете информацию о том, как кэшировать данные, а не как обслуживать сжатые данные. Большинство веб-серверов автоматически сжимают данные, если настроены на это, и если клиент предоставляет необходимые заголовки в запросе. Другими словами, вам не нужно сжимать страницу перед ее передачей, сервер будет сжимать ее автоматически, если это возможно.
Для кэширования вы можете сохранить обработанную версию страницы либо на диске, либо в памяти, используя, например, memcache.
Если вы знаете, что вам нужно всего лишь обновлять страницу, скажем, каждый час, вы можете запустить скрипт, например, с помощью crontab, чтобы генерировать страницу каждый час и просто обслуживать сгенерированную страницу. Это должно быть довольно просто, так как вам не нужно особо учитывать особенности кэширования на стороне сервера.
С другой стороны, если вам нужно проверить, устарела ли страница, прежде чем принимать решение о том, использовать ли кэшированную или свежую версию, она становится немного более сложной. Например, возможно, что проверка устаревших данных почти так же затратна, как и генерация страницы.
Не могу дать более конкретный ответ без подробностей.