Solenoid , wire resistance , bad battery could be the cause. If the battery is load tested and it still does it then usually I just hold the start button for about 5 seconds and then see if any of the cable ends are hot , and that includes the solenoid. If they are all cold then it could be the starter, It is always wise to start with testing the battery first.