This paper proposes a logic-based control algorithm for Variable Speed Limits (VSLs) in order to reduce or avoid traffic jams created at bottlenecks. The proposed controller estimates, for each controller time step, the number of vehicles that have to be held back or released by the VSLs in order to maximize the outflow of the bottleneck (avoiding the capacity drop). Afterward, based on the estimated number of vehicles, the VSLs are increased or decreased sequentially. The proposed controller uses a feed-forward structure that allows to anticipate the future evolution of the bottleneck density in order to avoid or reduce trafﬁc breakdowns. As a result, although the implementation of the controller is quite easy with an almost instantaneous computation time, the performance of the controller is effective in reducing Total Time Spent (TTS) The proposed controller is tested, using the macroscopic traffic flow model METANET, for 10 scenarios and the results are compared with the ones obtained with the Mainstream Traffic Flow Control (MTFC) algorithm, and with the optimal solution. The simulations show that the proposed controller is able to approach the optimal behavior and that its behavior is quite robust (especially comparing with MTFC) in cases where different demands are considered.