Порхов основан в 1239 году князем Александром Невским как деревянная крепость на реке Шелонь для защиты дальних рубежей Новгородской земли. Эта дерево-земляная крепость выдержала осаду литовских войск Ольгерда в 1346 году. В 1387 году под руководством бояр Ивана Фёдоровича и Фатьяна Есифовича была выстроена каменная крепость виде неправильного 5-угольника. Длина её стен 500 метров, толщина 2,3 метра, высота до 11 метров. В 1428 года она выдержала осаду уже литовского князя Витовта. В 1430-40-х Порховская крепость была реконструирована и без серьёзных изменений дожила до наших дней. Поэтому её посещение — путешествие в средневековье!
В 1478 году Порхов вместе со всей Новгородской землей присоединился к Московскому государству. Его крепость стала одной из самых серьезных в её составе. В 1610 году крепость занята шведскими войсками, в 1617-м возвращена по Столбовскому договору Московскому государству. В 1708 году Порхов вошёл в состав Санкт-Петербургской губернии, затем при Екатенине II стал часть Псковской губернии. В 1843 году в городе открыт городской банк, в 1897 году начала действовать железная дорога. К началу 20 века в городе было несколько учебных заведений. Во время Первой Мировой войны город был тыловым, в нём работали несколько госпиталей. В годы Гражданской войны Порхов находился под контролем Красной армии. 11 июля 1941 года город оккупировали немецкие войска. Партизаны и подпольщики активно действовали в городе и окрестностях. 13 ноября 1943 года подпольщик Константин Чехович устроил подрыв кинотеатра, одновременно уничтожив 760 солдат и офицеров вермахта. 26 февраля 1944 году Порхов освобождён. В том же году включен вместе с Порховским районом в состав Псковской области.
Древний город стоит посетить, ведь в нём сохранилась настоящая средневековая Порховская крепость. На её территории действующий Никольский собор, заложенный в начале 15 века.