The town's railway station is situated on the North Wales Coast Line between Crewe in Cheshire, England and Holyhead, Anglesey. It is also the northern terminus of the Conwy Valley line to Blaenau Ffestiniog.