DON'T SET GOALS, PLAN ACTIONS.
Instead of the result being your goal, break your goals down into short term actions. Eg: "Gain 20lbs of muscle" now becomes "Get to the gym and do my workout 4 times a week & eat 150 grams of protein every day." Now you can make sure that you're taking the necessary steps to get where you want to be.
If the goal is just a result, especially if it's going to take a long time, each day becomes less significant. If you need to train for a year, then it's easy to convince yourself that it's ok to workout tomorrow instead of today. Once you develop that habit, it's hard to get out of it. But if you're goal is to workout 4 times this week, you only have 7 days to do that. You can't keep putting it off.
The other thing about having a large, results based goal is that you leave the door open to HOW you're going to get there. If you're not focused on and dedicated to the process, you'll be easily distracted by every thing that comes across your feed. Any time it gets difficult or boring you'll start looking around for something else. This is the mindset that allows you to get suckered in to all the quick fixes and "1 weird trick" nonsense that's out there. And when they don't work, you'll be frustrated and further behind than if you just kept going.
This isn't a magic trick obviously. You still have to stick to your plan but at least now there's less bullshit excuses that you'll be able to convince yourself of. Like "I'll wait until I have more energy" or "I'll just do extra days next week". I've said and done them all.
Reframing the goal like this means now, it isn't some far away thing that doesn't need your immediate attention. It's staring you right in the face. You're going to fail or succeed right now.
If you want extra accountability, write your action goals in the comments or DM me. If you need help putting together an action plan get in touch, I've got some great ones.