First, you need good, solid, clean connections on the battery and each area that the battery cables end up. Clean all of those, battery, battery ground at the frame, connection at the solenoid, and from the solenoid to the starter.
Then you may need to service the starting motor. Pull the motor off and remove the two long bolts that hold the case ends on. I usually use a Sharpie to scribe some lines in the case and ends to show how to line things up when re-assembling. Then take the cir-clip off the gear end and slide the gear off. Note which way the gear came off, it will fit ether way, but only one is correct.
Then blow all the carbon dust out, check the brushes for length, and clean the commutator with a Scotchbrite pad. If the commutator bars are worn, you may have to undercut them. But this isn't usually necessary. Just get all the grit out of the grooves in the commutator.
There have been several cases of the internal grounding of the brushes failing or partially failing. The ground for them is a couple of tabs that are on the brush ring. These make contact with the case by the pressure of the assembly bolts squeezing the motor ends together. Not the best system. So if you want to remedy this, go to the general discussion forum and click on Quick References. There are several posts on how to add a positive ground to the motor. It isn't hard to do, I have done 3-4, and vastly improves the working of the starting motor.