Hi there, great to hear from you - thanks for getting in touch with us. Hopefully I can give you some helpful information. I think what you're saying is that your son understands lots of words, but isn't yet using them himself very much, although he can name some words in books etc. Usually, at his age we'd expect him to use lots of words and be starting to join these in to very short two or three word phrases.
There are some strategies you could try to help him use words more spontaneously. When you know there is something that he would like, a toy, snack or activity for example, try giving him a choice of two - hold them up in front of him and tell him the words "would you like juice (push forward) or milk (push forward)". If he points, tell him the word straight away - "ah milk, here you are". You can try this with all sorts of things, and this approach helps children learn to use language more effectively than for example asking questions that just need a yes/no answer like "would you like a drink?". Another tip you can try is to add a word to what he says - so if he says 'bye bye' you repeat back 'bye bye Freddie' or if he says 'ball' you say 'yes, kick ball'. That way, he hears new words and also how they join in to very simple sentences.
I think, as you are concerned about his speech, and it might be that he's not at the level we would typically expect, it is worth seeking a referral to speech and language therapy for an assessment. You can often go directly to your local service rather than having to go through your GP or HV, so give them a call. They will be able to observe your little boy and hear his communication to be able to give you more specific guidance. It's definitely worth getting a view on how his speech is developing.
If it would be helpful, you could talk to one of our speech and language therapists - just call 0207 843 2544 to book a call. I hope that's been helpful, wishing you all the best, Jon