I feel like sometimes people may not stretch because there is too much mystery surrounding it. They don't know if they are doing it right, they may not know which stretches to do, and they don't know how long they should hold it for.
As a personal trainer I learned to hold a stretch for 20-60 seconds. As a yoga instructor I learned you may hold a stretch for 5 minutes to gain the maximum benefit and you haven't mastered a pose until you can maintain it for three hours!
Through teaching and practice I have learned it takes most people at least a minute for their body to actually relax into the stretch. I believe that is the goal. Our body has a couple defense mechanisms built in to protect us against tearing the muscles and tendons so our first reflex when stretching is for the body to resist a little.
You should hold a stretch as long as it takes to feel your body let go of that resistance, notice a release, and gently take it a bit further. If you don't allow your body enough time to relax until you can get a little deeper into a stretch, you are only maintaining your current flexibility levels and will not see progress.
Stretching is an activity you can do practically anywhere. It produces endorphins, improves circulation, and increases overall body function. This makes me think that it doesn't even matter how long you hold the stretch, as long as you do some stretching! But if you are working towards increasing your flexibility then I would hold the stretch for at least a minute.
Now you know how long to hold a stretch for but you may still feel a bit lost on what stretches to do! I have an online course called Simply Stretch for $97 or I also do offer custom stretch routines based on your posture, injuries, and goals. These sessions begin with a 30-minute posture and flexibility assessment and then I design a 30-minute stretch routine for you to do. The 30-minute routine is recorded on video to guide you through each stretch and we can do it live through zoom too.