When my DS1 was about 7yo, I noticed that he was gaining weight. I introduced some changes, which was easy to do, as he took packed lunches to school, had no access to money (so couldn’t buy things in the shop) and DH and I are together, so he wasn’t away for weekends or evenings. Ds wasn’t even aware that I had removed things as he wasn’t hungry whilst eating the substitutions.
The changes I made were:
Only cereal (shredded wheat, weetabix or Cheerios, DS doesn’t like porridge), wholemeal toast or eggs for breakfast, with honey or marmite - as much as he wanted, but his portion was a normal size
Banana or chopped fruit as a mid morning snack at school
Lunch - wholemeal bread sandwich, carrot sticks, small packet crisps (non-negotiable), chopped fruit, fruity yoghurt
Dinner - lots of protein, lots of veg, v little carb. This is what made the biggest difference I think. I think I pretty much doubles the protein, and as DS didn’t like a huge range of veg, he had the same veg every other day at least. Carrots featured heavily!
Plain Yoghurt with honey and vanilla, or fruit salad for pudding (I would chop it and serve him a small bowl).
We had a treat of his choosing in a Friday night - inherits could choose a multi-pak of chocolate and we would have a bar each. Those bars are smaller than the ones you can buy as singles, so fewer calories. But DS chose every week, so he had some control.
At the weekends, we would have things like pancakes for breakfast. I’d do American banana ones, blueberry ones, normal crepe style ones. Filling!
Ice lollies instead of ice cream - fruit pastille lollies went down particularly well, and the ones that are 100% juice.
I also limited juice and milk to one small glass of each a day.
Good luck.