The causes of headaches vary depending on the type. Tension headaches are often caused by stress, anxiety, or muscle tension. Migraines can be triggered by a variety of factors, including stress, certain foods, or changes in weather. Cervicogenic headaches are caused by problems in the neck, such as a herniated disc or arthritis. Cluster headaches are thought to be caused by a problem with the hypothalamus, a part of the brain that controls many bodily functions.