Is there another way to log visited sites?
You could always go down the DNS path (analyse resolved entries), but that will not give you granularity *what* has been exactly visited.
And off course not all DNS-lookups lead to visited "websites" so no real 100% match for your requirements.
If you run certain Mikrotik models, you could investigate if
some container exist that you could use for this "web proxy" function (eg Squid) and then direct traffic to the container.
But performance wise ... dunno .. depends on the expected amount of users.
It is going to be a complex setup...
It is clear that is increasingly difficult to place yourself into the path of "enduser" <> "website" for control/policy/filter reasons.
Do you control all endpoints ? Is this a corporate/enterprise environment or some BYOD-type of deployement ?