Как определить пользователей, которые сейчас на сайте?Вариантов много, самый простой - пинг метод. На бэке заводите хранилище (массив, файлик, бд, не суть важно) в который добавляете пришедшего на сайт пользователя и метку времени входа. Далее на фронте каждые N секунд запрашиваете сервер на скрипт, который обновляет метку времени пользователя в хранилище. Можно там же получать в ответ всех активных. Все. Погрешность в N секунд.
И как сохранить список страниц, которые конкретный пользователь посетил за конкретный период?Логи. Тоже не суть важно файл или бд, как удобнее. Зашел на страницу - в бд записалось время, урл, айди юзера.