Al norte es colindante con el río Tinto, los municipios de Huelva, Niebla y de San Juan del Puerto, al sur con el océano Atlántico y Palos de la Frontera, al oeste el Río Tinto y Palos de la Frontera, y al este con los términos municipales de Almonte y Lucena del Puerto.