Limita al norte con los municipios de
Espera y
Bornos, al noreste con el municipio de
Villamartín, al este con los municipios de El Bosque y Prado del Rey, al sureste con los municipios de Benaocaz y Ubrique, al sur con los municipios de
Algar y
San José del Valle y al oeste con el municipio de Jerez de la Frontera. En 2020 contaba con 30 818 habitantes. Su extensión superficial es de 526,81 km² y tiene una densidad de 58,35 hab/km². La altitud de la población oscila entre los 50 metros a la orilla del Guadalete y los 195 metros de la base del
castillo. Este desnivel origina grandes pendientes casi verticales, sobre todo al suroeste y norte