1) Good Liquidity (Based on orderbook depth, orderbook should be deep enough for large trade to be executed without slippage)
2) Low Spread (Spread should be thin between bid and ask, so traders can trade in/out at the best market rate)
3) High web traffic (Plenty of users actually trading on the exchange providing better liquidity)
4) Exchange should have proper KYC and have track record of disaster handling
5) (If you are trading fiat-on ramp) Ideally should be regulated in the local jurisdiction (to reduce risks)
6) Exchange should not just be listing many pairs, but they should be listing quality pairs with good liquidity in each of them
7) Able to deposit and withdraw quickly
For these, we created Trust Score that tries to incorporate as much of the elements above as possible.
Exchange ranking can be found on our website at https://www.coingecko.com/en/exchanges