спорить не хочу так что считайте это "имею мнение хрен оспоришь"
"header("Cache-Control: public"); "
это кривой заход
must-revalidate заставляет браузер проверять ИЗМЕНЯЛСЯ ли файл с момента его кеширования или нет.
вы тупо загоняете в кеш все и вся без проверки, в итоге может получиться так что в теме сто новых постов а у кого то грузится из кеша все те же первые пять.
(пока нет времени проверить на практике, инфу с хабра брал когда то, но тоже покопаюсь, любопытная тема)