The typical cheap nrf24l01+ pa/lna is sensitive to noise, badly shielded and energy hungry. Chinese sellers advertising them with “wireless communication up to 1000 meters!”. In reality although you can call yourself lucky if you reach with a unmodified module 10 meters.
Luckily, you can fix this.
Add a proper power regulator
By example you could use the switching LM2596 DC-DC power regulator. The pa/lna module need 120mA minimum on maximum power output. Make sure your regulator delivers enough current and to connect GND between your external regulator and your RPi/Arduino/µC/whatever. Better, if possbile, would be a linear power regulator. A linear power regulator doesn’t have the problem of output ripple.
Get rid of the noise from your power source
In case you bought a cheap switching power regulator (like LM2956s china clones) you probably now got a lot of noise on your power rail. Filter this out with a simple LC-Filter. A 3.3µH chocke in combination with a 220µF capacitor should do the job.Just solder it on a little bit of prototype board and connect it right behind your voltage regulator.
Because people asked, see: Building a LC-Filter
Shield your module
The normal nrf24l01+ pa/lna is terrible unshielded. But there is an ugly fix for that. Simply wrap it up in cling film to prevent short cuts and after that in adhesive tinfoil.
Note: The tinfoil touches the ground from the antenna connector.
Pick the right channel
It is important to pick a good channel for your RF Network. The RF24 scanner can help you with this. Keep in mind that random sources like microwaves, by example, can disturb the performance of some channels, try a little bit which channel performs the best for you.
With this modifications i got about 1000m free line of sight out of the modules. In a forest non free line of sight i measured about 270m, but this are probably not the maximal ranges possible. I need to test further.
Any question, comments or success storys? Let me know in the comments.