That could be a myriad of things, but again, check the battery terminal. Remove the terminals and clean the inside of the posts mating half, clean the posts themselves.
Check the engine earth is good.
Next check all the positive terminals on the starter relay and starter.
If all of those are ok then i would start looking to replace the starter motor itself.