Why my smartphone is charging very slow on USB ?

Sometimes the phone is connected to a charger, it reports "charging", however the battery level increases painfully slow, or it could even actually decrease. What is the solution?

On short:
  • For phones, prefer the 1A ("phone") charger port to the 2A ("tablet") charging port. The 2A port is likely to charge slower than the 1A port (see below why).
  • Use the original cable if possible. If not possible, USB charging cables that comes with cheap 1-2A chargers are usually better than more expensive "data and charging" cables. Prefer small cables (like 1m) or charging cables explicitly rated (ideally 2.5A or more).
  • Use dedicated chargers, not USB. Power wall or car chargers rated 800mA or more are usually way better than PC/Laptop USB ports. Prefer USB3 (blue) ports over USB2 (black). Some other USB colors (like orange/red) could be better than USB3 sometimes (or not).
  • Some devices might require an original power adapter (for example older Apple devices)
  • Update 2017: try using a charger rated Qualcomm Quick Charge 3.0 (or at least 2.0) if your device supports it. The device might negotiate 9V or 12V instead of 5V, resulting in 2-4 times faster charge until 80%. Also, PowerIQ and VoltageBoost might help if the device does not support QC.

Update 2016: For a faster feedback in your tests, try to install a phone application that reports the current (charging rate). A very light application that I found on Android is "OPO Charging Current". On my Android 5.1.1 (Nexus5) you have to divide by 1000 to obtain mA, but it just works. You can choose any other current monitoring application you prefer that works on your phone. Search for "charging current" for example.