So there are empirical ways to do this (which would be easiest to do), or tools that one can purchase to do this.
I had trouble with my z-wave mesh when I moved to Hubitat. So I bought a z-wave toolbox (please don't do this - while it definitely helped me, there are cheaper ways to accomplish the same end). Since I couldn't move my switches - I used the toolbox to help me identify the best spot to place 5 Aeotec Range Extender 6. I have a small house (1800 sq ft, two storey). Since then I've had zero z-wave issues.
I did zigbee by trial and error, and that seems to have worked out as well.
Recently, I came across a post from @davidcwright59, where an empirical method was described to design a zigbee mesh. I think what he did was brilliantly simple, and I suggest you try the same thing.
Please read this thread:
Take 5 ft off for going through a single wall (assuming drywall), 10 ft if it is brick. Take 10 ft off if it is a floor or ceiling.