É sede de um município com 378,7 km², subdividido em 89 freguesias, sendo o concelho com maior número de freguesias em todo o país. O município é limitado a norte pelos municípios de Viana do Castelo e Ponte de Lima, a leste por Vila Verde e por Braga, a sueste por Vila Nova de Famalicão, a sudoeste pela Póvoa de Varzim e a oeste por Esposende.