Choosing a hotel in St. Moritz is mostly a question of which half of town you wake up in. This guide compares the zones, the distances that actually matter, and how to match a stay to how you plan to spend your days.
The upper village sits above the lake around Via Serlas and Via Maistra: boutiques, the Corviglia funicular station and most of the grand hotels. Best if you want to walk everywhere and be first on the mountain.
Down by the lake, Bad is the calmer, flatter half of town: the mineral baths, Ovaverva pool and the cross-country trails start here, and room rates are typically lower than in Dorf for the same star rating.
The neighbouring villages trade the St. Moritz address for space and quiet. Celerina puts you at the bottom of the Marguns side of Corviglia, Pontresina faces Diavolezza and Morteratsch, Champfèr sits between town and Silvaplana.
Beyond the palace hotels, St. Moritz has design B&Bs, mountain-modern boutiques and serviced apartments. For longer winter stays an apartment near a valley station usually beats a central room on both price and ski logistics.
Stay in Dorf or Bad within a short taxi ride of the station — the funicular streets are steep and many hotels run a station shuttle.
Prioritise a hotel near the Chantarella/Signal valley stations or in Celerina near Marguns, rather than the exact village square.
St. Moritz Bad is flatter, closer to Ovaverva and easier with prams; family rooms are more common there.
Lakeside Bad and Champfèr put you on the hiking, sailing and bike networks straight from the door.