El posicionamiento en buscadores (por ejemplo, en Google), no depende de si tu sitio es dinámico o estático, sino que depende del número de enlaces externos que apunten a tu web. Esa es la razón por la cual foros como éste reciben la visita de robots para colocar sus enlaces. Es lo que se llama URL farming.
Aunque el sitio sea dinámico, si un motor de búsqueda es capaz de bucear por todo el árbol del sitio web, implica que no es necesario hacerlo estático. Cosa contraria es si la mayor parte de la información está detrás de un sistema de búsqueda, por ejemplo: los robots de los buscadores no saben qué información habrá detrás de ese diálogo. Esto se resuelve colocando enlaces que naveguen por la información sin tener que usar los procedimientos de búsqueda. La información seguirá siendo dinámica, pero la forma de acceder a ella dará la sensación de que son páginas estáticas. Mira en
http://guiacolor.com.es/: aunque puedes realizar una búsqueda, siempre hay enlaces abajo que te permiten acceder a toda la información, por categorías. En cambio, en
http://www.busqueloquebusque.com/, los buscadores no pasarán de la primera página.
Otro caso, si queremos dar esa información de forma estática, un procedimiento que se solía hacer en tiempos era imitar a una persona que realizaba peticiones en la página inicial y se quedaba con el resultado, que era la página estática. Esa 'persona' puede ser un script que haga peticiones a la base de datos y guardando las páginas devueltas, cada una con un nombre distinto.
Otra forma es parecida a la que comentas: si el usuario pide una información pero esa información ya ha sido generada antes, se la servimos inmediatamente. Si no, la generamos, la entregamos y la guardamos para la próxima ocasión. Se trata de un sistema parecido a un proxy caché. Si este es tu caso, debes grabar toda la página que normalmente sacarías a la salida estándar a un fichero (con un nombre apropiado). Luego, entrar en el procedimiento normal (es decir, aquel en el que se le entrega el fichero al usuario por pedir información ya grabada antes).