Elgin liegt knapp 10 Kilometer im Landesinnern des Moray Firth, dem größten Meeresarm Schottlands. Lossiemouth liegt rund 8 Kilometer und die Altstadt von Inverness knapp 60 Kilometer entfernt. Die überaus sehenswerten Fischerdörfer Crovie und Pennan liegen rund 60 Kilometer westlich. Alle Angaben in Luftlinie.
Die Stadt zählt rund 25'000 Einwohner.