Si trova a circa 6 km dalla costa adriatica, su una collina a circa 200 m s.l.m., delimitato dai fiumi Osento e Sinello. La città conserva ancora il suo centro storico di origine medievale con un antico torrione e la chiesa di San Salvatore risalente al Settecento. Si affaccia sul mar Adriatico con la località turistica balneare di Lido di Casalbordino, con ampia spiaggia sabbiosa, dista 7,5 km dal capoluogo comunale e si estende lungo la suggestiva Costa dei Trabocchi , a brevissima distanza dalla spettacolare costa rocciosa della Riserva Naturale Regionale Punta Aderci , chiamata in zona la piccola Normandia.
Comuni costieri confinanti : Vasto⟵ Casalbordino ⟶ Torino di Sangro