L'iframe non è una scelta felice, tantomeno elegante, la soluzione migliore sarebbe di utilizzare un linguaggio lato server, come il php, che includa l'header, il menù e il footer in ogni pagina.
Si può anche fare una pagina unica già comprensiva di header, menù e footer in cui includere i contenuti delle varie pagine.
In mancanza del linguaggio lato server si potrebbe ovviare con javascript che però potrebbe essere disattivato sul browser rendendo inutilizzabile il sito.