Зависит от сайта, если не громоздкий сайт, то несколько строк JS кода сделают свое дело.
Вешаете слушатель на каждую ссылку на сайте, при клике предотвращаете переход e.preventDefault();
| return false;
Далее юзаете History API, идете по ссылке с помощью ajax, берете нужные данные и заменяете.
Если нужно отправить форму, то тоже - смотря post/get отправляете нужный запрос.
На самом деле ничего сложного нет, когда-то делал сам(тоже изначально не была продумана архитектура, просто взял и внедрил в готовый проект)