Делая свой собственный счётчик посещений, нужно решить для начала, что именно ты хочешь считать - загрузки страницы, уникальных пользователей или что-то ещё. После этого и считать именно это.
Что касается уникальности, есть нюансы, но общий принцип един - сначала определяешь некий "отпечаток" (уникальность) пользователя, затем отправляешь его на сервер, и сервер уже решает, считать его или нет. Например, был ли уже этот пользователь в этот день или какой-то интервал времени, в течение которого повторные посещения уже не учитываются. Будет ли в этот "отпечаток" включён ip пользователя, или это вообще будет уникальный токен, выданный по логин+пароль, решать тебе.
На клиенте можешь кешировать какие-то данные, например, последнее обращение к БД, и если оно было недавно, то не повторять его снова. В браузере это можно сделать, например, с помощью localStorage. Но это уже своего рода оптимизация, а она будет зависит от логики твоего счетчика (что именно считаешь).