Castelsardo si affaccia al centro del golfo dell'Asinara, nella regione storica dell'Anglona nel nord della Sardegna, in un susseguirsi di coste rocciose trachitiche con piccole insenature, con l'eccezione della spiaggia di Lu Bagnu. Grazie a questa posizione la località, oltre ad essere esposta ai venti, gode di un panorama unico spaziando su tutte le coste del golfo, comprese quelle della Corsica.
Appartengono al territorio di Castelsardo l'isola di Molino e gli scogli Forani.