For best routing support, ways need to “touch”, or intersect.
Layers should be used when ways don’t need to intersect.

Also, try to avoid loopings (A way which cuts itself)
e.g. A road that ends in a loop. Cut into 2 different ways. One is a line, the other is a closed loop.

You can use KeepRight as a start.

Make sure you tick and fix the following issues:
dead-ended one-ways
almost-junctions
ways without nodes
intersections without junctions (all)
overlapping ways (all)
loopings
layer conflicts

talkat.