A good aimbot properly used is essentially undetectable, so you need to look for places where they mess up.
The best and most certain proof of cheating is ‘wrong target’ – for snaps, this is when the player was clearly aiming for a certain target, and then the cursor goes sharply in an unexpected direction to perfectly headshot someone else, typically someone behind foliage or who just emerged from cover, so the cheater didn’t realize their cursor was closer to that player than the other.
For tracking-lock, it will happen when two opponents overlap, however briefly, and the lock-on follows not the intended target but the other one (usually followed by the player re-acquiring, but they might toggle cheats off for the reacquire).
Next best is weird crosshair movement at the moment of target death -
With tracking, this looks like the crosshair is strongly and smoothly tracking the target, and then suddenly moves in an unexpected angle at the instant of target death (control reverted from cheats to player and/or target death resulted in cheats acquiring a different target).
With snaps this may look like the player was about to snap to a target, but when the target died (to someone else or to DOT) they shoot the wall instead, or it may result in movement similar to a ‘wrong target’, where they are moving their crosshair towards one target that dies and then quickly they flickshot to a different target.
Also, look for ability triggers. Genji dash cheats that do an instantaneous 180/headshot shuriken, or deflect cheats that automatically activate deflect and track the opponent for certain abilities that have cast time, like sleep dart. D.Va D.M. cheats that eat high value abilities with tracking and D.M. on Grav, Blizzard, and TNT.
Similarly, genji deflect, zarya bubbles, and other defensive abilities can be triggered by an HP threshold. Look for use of such abilities consistently at a specific health level, immediately upon receiving the damage. (Activating such abilities at ‘dangerous health’ levels after a half a second, or even a quarter second, to recognize your new health total is normal, as is activating them immediately upon being hit by a ‘scary’ source of damage but before you’re able to register the actual resulting health total).
Like others have said, looking for tracking through walls / knowledge despite walls is helpful. When doing this, look also for Widows and Hanzos who don’t seem to care about their “wallhack” skills.
Widow may hold ult forever or use it wastefully, and Hanzo may not shoot many sonic arrows and shoot them haphazardly simply because they can already see through walls… they don’t actually gain any benefit from using them if they already have wall hacks on, which makes them careless and forgetful about using them.