The municipality is located on the western coast of the Algarve, bordering the municipalities of Lagos, Lagoa, Monchique Municipality and Silves.
The municipality is primarily serviced by the A22 motorway (the Via do Infante), and the E.N.125 roadway that links it directly to the communities of Alvor (4 kilometres), Mexilhoeira Grande (9 kilometres) and Praia da Rocha (3 kilometres).