Robotic swarms are decentralized systems formed by a large number of robots. A common problem encountered in a swarm is congestion, as a great number of robots often must move towards the same region. This happens when robots have a common target, for example during foraging or waypoint navigation. We propose three algorithms to alleviate congestion: in the first, some robots stop moving towards the target for a random number of iterations; in the second, we divide the scenario in two regions: one for the robots that are moving towards the target, and another for the robots that are leaving the target; in the third, we combine the two previous algorithms. We evaluate our algorithms in simulation, where we show that all of them effectively improve navigation. Moreover, we perform an experimental analysis in the real world with ten robots, and show that all our approaches improve navigation with statistical significance.