Macduff liegt an der Küste des Moray Firth zwischen Fraserburgh im Osten und Elgin im West. Fraserburgh liegt knapp 30 Kilometer und Elgin knapp 50 Kilometer entfernt. Die sehenswerten Fischerdörfer Crovie und Pennan liegen rund 10 bzw. 15 Kilometer entfernt. Die Distanz bis Inverness beträgt etwas mehr als 100 Kilometer. Alle Angaben in Luftlinie.
Der Ort zählt rund 4'000 Einwohner.