Alles was nicht HTML ist, ist auszulagern. Dazu gehören nicht nur die Style- und Script-Elemente, sondern auch die inline-, onclick- oder onmouseover-Attribute.
Dafür gibt es CSS- und Javascript-Dateien. Sie sind leichter zu warten, müssen pro Änderung nur einmal geladen werden und die Suchmaschinen finden diese für sie unrelevanten Dinge nicht im HTML-Quelltext vor.