Большинство сайтов построены с использованием веб-фреймворков некоторого описания. По сути, они позволяют вам определять шаблоны для страниц вашего сайта - например, вы можете определять верхние и нижние колонтитулы, меню и т. Д., Которые фреймворк будет вставлять на вашу страницу во время рендеринга (при запросе страницы). Однако такие страницы являются «динамическими» и, таким образом, требуют создания сценариев, таких как perl, python, ruby, php, для создания запрошенной страницы. Есть много платформ, доступных для этих языков; или если вы создаете очень простой сайт, вы можете настроить свои собственные шаблоны и использовать их.
Если, однако, вы ограничены чистым HTML, то есть статическими страницами, то да, вам придется вручную добавлять общий HTML-код на каждую страницу, если вы хотите избежать фреймов.