Do you take treats outside with you?
You should take treats outside with you for training and make the treats even tastier than the ones you use inside if you can (eg cheese cut up small).
With my puppy I
constantly had dog treats in my pockets so that I could randomly do a recall and give a treat when she came without her knowing if I actually had treats or not (even when I went out without the puppy I still usually had treats in my pockets). Just randomly throughout the day do a recall for no reason, do this inside and in your backyard (if it is safe for the puppy to be off lead in the backyard). Just give the treat and let the puppy run off and play again or play with the puppy yourself.
Don't only call the puppy when you need to, do it just for fun too.
Another thing to practice recall is get another person with treats to call the puppy and give it the treat, then you call it and treat it, then the other person calls and treats.... back and forth, to practice recall and then do it with the other person in another room or with three people or outside.
Make it a game so the puppy is running from person to person as it is called.
Then when you take the puppy for walks you should be teaching it loose leash walking using lots of tasty treats so the puppy
wants to be near you when out of the house.
Then when you let the puppy off it might not even want to walk away very far, I had this "problem" with Holly the first time I tried to practice recall at the park after getting a reliable recall at home: I couldn't recall her because she wouldn't walk away from me and if I walked away from her she would just walk next to me where she does for loose leash walking looking up at me wondering where her treats were

. I think maybe I made this happen by waiting a while (maybe too long) before trying her off leash at the park (I was scared to try it for ages) and practising loose leash at home without a leash initially. Although I was a bit stumped on how to practice recall with her for a while, but now I think it was actually really good.
I had to throw treats away from me for her to get, when she got the treat I would call her back to me and give her another treat. She thought it was a game! but it definitly made her
want to come to me. It took her a while to realise that she could run around without me throwing a treat for her first (I threw some "phantom" treats so she would stay away from me a bit looking for them)

You could do this with your puppy even if you don't have the problem I did.
Throw a (low-value) treat and once the dog has eaten it, call him and run away so he chases you and gets more treats (or a toy if he's toy motivated) for catching up.
I also gave Holly a treat for coming to me even if I didn't call her (I don't do this anymore but I felt that as a puppy the more she wanted to come back to me without being told to the easier and more natural her recall would be).
Now that Holly is 11 months old she has very good recall and gets to be off leash everyday at parks and on walking tracks, I trust her now. She also looks back at me a lot to "check in" and I never have a problem getting her back on leash (I think this is partly because on most walks I let her off leash at more than one park with some leash walking in between so being leashed does not mean it's home time). As soon as I call her she does a sharp turn and sprints straight at me (it always makes me smile and other people have commented on it too). I still take treats on walks too.
But in saying that, I have had a couple of times that her recall became less than reliable for a week or two. It's happened twice, I think it's an age thing. All puppies go through stages of not listening. Holly is currently near the end of one of these bad recall stages and all I do to fix it is practice recall more often!
I think the main things to do is make recall fun and make your dog want to come when he's called.
Sorry about the length of this post, but I hope it helps