La città si trova a 25 km dal Mar Adriatico, alla confluenza tra il fiume Tronto e il torrente Castellano ed è circondata per tre lati da colline, tra cui vi è la montagna dell'Ascensione e il Colle San Marco e la montagna dei fiori.
È collegata per via ferroviaria con San Benedetto del Tronto, per via stradale con Roma, attraverso la Via Salaria, e San Benedetto del Tronto, sulla costa adriatica, dove si trova il casello autostradale della Bologna-Taranto.
Due parchi naturali la circondano, quello dei Monti Sibillini a nordovest e quello dei Monti della Laga a sud.