... solo puedo guiarte diciendote que algunas Aplicaciones Prefabricadas ofrecen la opción que planteas (muy útil para casos como el tuyo); Sé que
SPIP y algunos plugins de Wordpress (como
WP-Cache, pero existen otros) se basan en que, en cada petición buscan una página estática que correspondería a la página que se esta queriendo ver, comprueba una fecha y si esta no sobrepasa un tiempo definido por tí la muestra, en caso contrario --que no exista o que haya expirado-- la genera y guarda el HTML generado como página estática para futuras peticiones.
En principio el implementar esta lógica no ha de ser complicado, quizá viendo el código fuente de lo que te cito puedas darte una mejor idea.
Ojalá te sea útil. Suerte!