In order to choose a good VPN I recommend you to pay attention on such things:
- speed (many of them, especially the free ones, have a really slow speed so look through their connection speeds and make a speed test before making the final choice)
- cost (if your needs for VPN are really simple, like getting access to a couple of sites, then it's better to just use a free one but if you're planning to use it really often and for different needs, then you should choose a paid one)
- privacy (it's a very important thing for VPN, especially if you live in such strict country in case of net like Iran or China, a good provider won't collect information about your browsing and then share with it, in this case paid VPNs are always more secure than free ones)
- variety of virtual locations to choose (it can be the important thing if you need VPNs hosted in certain countries for accessing location-specific content)
In case of free ones you can try for example ZenMate, TunnelBear, Windscribe, ProtonVPN, PrivateTunnel and so on. And in case of paid VPNs as the best ones are considered for example ExpressVPN, KeepSolid VPN Unlimited https://www.vpnunlimitedapp.com/en , NordVPN, CyberGhost, SaferVPN etc.