Обновляйте только контент.
Для примера принцип такой.
Отслеживаете клик по ссылке в меню, делаете ajax в ваш скрипт обработчик.
var request = $.ajax({
url: "script.php",
method: "GET",
data: { id : menuId },
dataType: "html"
});
script.php обрабатывает запрос и строит контент страницы.
Полученный ответ от ajax загружаете на страницу добавляя / заменяю блок.
success: function(html){
$("#content").html(html);
}
и почитайте про HTML History API
Как пример
https://code.tutsplus.com/tutorials/an-introductio...