A charge controller can be a PWM (Pulse width Modulation) or an MPPT (Maximum Power Point Tracking).
PWM charge controllers have the advantage of being particularly cheap. They however have the disadvantage of generating significant losses since its input voltage is fixed and equals to the batteries voltage. Due to their low efficiency, PWMs are designed for small applications (less than 150W of solar panels) where energy needs are low (less than 500Wh / day).
MPPT charge controllers allow the electrical energy produced by the solar panels to be used in the most efficient way possible by adjusting the voltage and amperage at the input of the controller to find the maximum point of power produced. They are more expensive than PWM but the price difference is quickly made more profitable thanks to a greater amount of converted energy. Due to their high performance, MPPTs are designed for larger applications (over 300W of solar panels) where energy needs are significant (over 500 Wh/day).