Frequent, constant, or unusual headaches in children always warrent being checked by a physician. THEN look into other areas such as vision, allergies, sinus, etc.
PLEASE READ!! My son who is now 12 had this problem at 4yrs old. Small children should not get frequent headaches or back pain. My son complained that he felt dizzy and headache. He would lie down for a nap and get up as if it never happened. He occasionally threw up. We took him to the E.R. twice. The second time I made them keep him overnight. My son had 2 seizures that night. They were not the shaking kind either. His body just went stiff and his eyes kind of glazed over. The nurse noticed it. This of course made them do a CTscan where they saw a mass. He was immediately transferred to a children's hospital. They said it was a tumor in his brain. The headaches were caused by the fluid pressure buildup. So to make a long story short he had surgery, it wasn't cancerous, but something called craniopharyngioma which affects children. My son is ok. He does have some lasting issues. Please insist that your child gets an MRI. We moms know when something isn't right. You can find out more info about my son's diagnosis if you just search craniopharyngioma. I would love to hear from any other moms who have been affected by this.
Muscle tension in the neck can do it, so can allergies that are too mild to show up as sneezing (I get headaches myself when my cat sleeps in my bed in the nighttime).
get his eyes checked if it isnt that then take him to the doctors,it could be stress related my daughter always use to suffer when she was starting nursery or meeting a new teacher,she had it everytime there was a change in her life.