Weyhausen ligger i floddalen til Aller som løber gennem kommunen fra syd, og fortsætter mod vest. Syd for byen ligger vådområdet Barnbruch. Der drejer den 18 km lange Allerkanal fra floden Aller som leder vandet hurtigere væk, end floden kan med sine stærke meandersving.