Небольшие статические сайты: только HTML или PHP с включенным верхним и нижним колонтитулами и общими функциями.
Более сложный: инфраструктура MVC, которая разделяет представления (шаблоны), модели (вызовы базы данных и манипулирование данными) и контроллеры (маршрутизация страниц)
AJAX: инфраструктура MVC на бэкэнде, специальные маршруты страниц для получения данных страницы (проверьте правильность заголовков), history.pushState с резервной копией hashbang для частичной загрузки страницы. В зависимости от сложности, возможно, наличие шаблонов на стороне клиента.