Try watching him to see when he is telling you that he is tired. Watch for fussiness, rubbing his eyes, and yawning. As soon as he is showing you that he is tired, change him, feed him if you have to, and put him down for a nap. If he is actually tired when he lays down he'll be more likely to sleep longer. Also, if he has eaten within an hour or so of laying down that might help. Your best bet is to watch when he is sleepy and adjust his schedule around that. After a few days of watching him, you should be able to figure out what schedule works for him. Some days he may not stick to it, but at least you will know what to expect most of the time. Some babies just aren't big sleepers, unfortunately. To increase your chances of him having a decently long nap, try these suggestions. Try white noise or lullabye music during naps and at bedtime, make sure he is dry when you put him down and isn't going to wake up early because he is hungry, put him down for a nap in his crib-same place everytime, and try to get him in a routine so he knows what to expect. I also use a pacifier for my daughter only at naps/bedtime and rock her for a couple minutes before I put her in the crib. That is enough to settle her down and help her know that it is naptime. If you try all of this and it still doesn't help, you may want to try to keep him awake a little longer so he is worn out enough to take a longer nap. It may not work if your kid is just not a big sleeper, but it would be worth a try. I hope this helps. Hopefully he'll be sleeping better soon!