Możesz użyć PHP bądź dowolnego języka backendowego i dołączać w nich pliki, ale jeżeli to ma być prosta strona to o wiele lepszym i zgrabniejszym rozwiązaniem będą preprocesory html oraz silniki szablonów. W pierwszym przypadku oprócz możliwości dołączania plików i ogólnie rozwinięcia funkcji htmla dostaniesz też inną (czystszą) składnie, natomiast w drugim będziesz miał możliwość wstawiania treści w określone miejsca na stronie.
Osobiście z preprocesorów lubię Puga (dawniej Jade). Z bardziej popularnych są też Haml oraz Slim.
Natomiast z szablonów to można wymienić Mustache, Handlebars.js, o których słyszałem, ale nie używałem oraz inne, które można znaleźć w internecie jak Template7 lub EJS.
Dodatkowo jeżeli chodzi o preprocesory musimy mieć coś co nam skompiluje składnie na html. Można tutaj użyć gulpa lub podobnych rozwiązań, ale są też prostsze metody jak gotowe programy typu Prepros. Template engine natomiast powinien zadziałać kiedy podepniesz jego plik .js pod stronę i umieścisz odpowiednie dane w skrypcie :)