You can make a pretty good experience server side anti cheat and authoritative networking.
Trust factor systems like CSGO has also work well (as long as you prevent abuse which is basically what went wrong with CSGOs implementation).
You can also design your game in a way where cheating just isn’t effective (e.g. rocket league).
Ultimately the best way to have fair games is to promote finding players through avenues other than official matchmaking: friends or even just random people on something like discord.