If you want to see what can be determined just from you connecting via a browser to a site, have a look at
https://whoer.net/
It will show you what can be determined from your connection.
Then access it over a VPN. Quite enlightening. Try different VPNs - Not all VPNs are the same. Try different browsers too.
There are subtle ways a site can use to detect whether a VPN is being used or not - the BBC are quite good at that, as are many others.
As mentioned above, unless you're using a decent VPN, NEVER use public WiFi for anything even remotely sensitive, such as banking etc. - it's really easy to set up a fake WiFi access point to temp folk to connect to that so that your data can be intercepted and stolen.
I don't use a commercial VPN provider as they can harvest your DNS and other data - you can create your own private VPN for very little money if you want.
On the subject of DNS, many DNS providers collect your DNS request information and even over a VPN, it can sometimes be tied back to you. It's easy to use a non-logging DNS, e.g. Cloudflare. Your traffic to the resolver should also be encrypted - you should look for DoH, DoT or DNSCrypt support.
For ultimate (but slower) secure resolution, use "unbound" locally with the above protocols.