naja, Frames… die sind so… so… 1995… Wenn der Nutzer die Darstellung selber skaliert oder eigenwillige Browser nutzt, kann das Frame-Gerüst ganz schnell unschön aussehen.
Der Befehl, nachdem Du im Netz suchen kannst, ist „include“.
Vor Jahren habe ich eine Seite mit Server Side Includes aufgebaut. Genau so, wie Du es jetzt vorhast.
Falls der Webhoster Dir auch PHP anbietet, kannst Du das auch damit lösen.
Nachteil an allen diesen Lösungen: es müssen für eine Seite mehrere Anfragen an den Server geschickt werden (html für die Seite, css für die Seitenbeschreibung, eventuell mehrere includes, vielleicht auch noch Bilder…). Wenn man einen schlechten, zu preiswerter, langsamen Hoster hat, kann sich die Abfrage einer Seite ganz schön verzögern.
Gar nicht. Frames sind nicht umsonst verpönt. Wenn jemand über eine Suchmaschine kommt, landet der garantiert nicht bei deinem Frameset, sondern nur in der Inhaltsseite und hat er keine Navigation.
Man kann das mit Javascript nachrüsten aber das funktioniert nur, wenn dein Benutzer Javascript eingeschaltet hat (NOSCRIPT lässt grüßen).
Dass Frames in verschiedenen Browsern komisch aussehen ist eher auch eine Meinung von 1995 aber ist nochmal ne andere Geschichte.
Also ohne Hilfe des Servers kannst du das nicht machen. Was du aber machen kannst ist folgendes:
Du schreibst in deine HTML-Dateien einen Platzhalter rein, etwa
[!NAVIGATION!]
Bevor du deine Dateien veröffentlichst, kopierst du die alle in einen temporären Ordner und gehst mit Suchen und Ersetzen alle deine Dateien durch und ersetzt deinen Platzhalter durch deine paar Zeilen HTML. Dann veröffentlichst du alle Dateien aus dem temporären Ordner und löschst ihn anschließend.
Beim nächsten Veröffentlichen machst du es wieder genauso.
Wenn du einen vernünftigen Editor nimmst, etwa Notepad++ (https://notepad-plus-plus.org/) dann kannst du das Ersetzen auch automatisch für alle Daten eines Ordners machen. Dann ist das nur noch ein einzelner Klick.