Город расположен на обоих берегах реки Великой (впадающей в Псковское озеро), в 43 км к югу от Пскова.