Есть вариант реализации с fetch.
В общем, нужно для каждой страницы создать разметку в отдельных html с общим атрибутом. Со стороны js напиши функцию, которая будет принимать url поисковика и общий контейнер, в функцию закинь fetch на url к html элементу, забирай разметку с html файла, и выводи в контейнер, прямо в этой же функции, которую повесь на обработчик клика по навигации, а навигацию сделай ссылкой, такой вариант будет работать в каждой странице.
Не стоит всю разметку пихать в один html, особенно если она объемная