Elgin sits on the railway line between Inverness and Aberdeen — a scenic route across the Moray Firth lowlands. Trains run roughly hourly in each direction; the journey from Inverness takes about an hour, from Aberdeen around an hour and a half. The station is a short walk from the town centre.
By road, Elgin is on the A96 between Inverness and Aberdeen, about 38 miles from Inverness and 66 miles from Aberdeen. The drive from Inverness on the A96 takes just over an hour; the A9 and A96 combination from the south is straightforward. There is no major airport serving Elgin directly — Inverness Airport is the nearest, with connections to London, Edinburgh, and some European cities.