A weak starter is often due to carbon dust buildup, and worn brushes inside the starter. Pull it apart, clean it, lube it, and replace the brushes if need. Also check all the cable connections for proper contact, and resistance. The cable that runs from the solenoid to the starter can get pinched causing the wiring inside to break down leading to a high resistance short.