Where to stay in Haapsalu: seaside spa-town guide
Haapsalu sits 100 kilometres southwest of Tallinn on a shallow warm bay, with spa hotel rooms from 75 euros and a two-kilometre wooden promenade.
Who Haapsalu suits
Haapsalu is a spa town, and that shapes everything. It suits couples in their 40s and up who want mud baths, saltwater pools, and long slow dinners; older travellers with joint or circulation issues who genuinely benefit from the therapeutic mud that made the town famous in the 19th century when the Russian imperial family summered here; and anyone who wants a coastal base warmer and calmer than Parnu without the crowds. The bay is shallow enough that August water temperatures hit 22-24 degrees, warmer than most of the Baltic.
It does not suit young party travellers, families with teenagers who need action, or anyone hoping for surf or dramatic coast. The scenery is soft — wooden promenades, reed beds, low horizons — and the pace is slow. If you found Tallinn Old Town too touristy and want somewhere Estonian people actually holiday, Haapsalu is one of the honest answers.
What a night costs
Fra Mare Thalasso Spa runs 95-140 euros a night including spa access, breakfast, and one treatment on most packages. Hestia Hotel Haapsalu Spa (formerly Laine) does 85-120 euros with pool and sauna included. Kongo Hotel, a smaller boutique on the main square, charges 75-100 euros without spa but with more character. Promenaadi Guest House offers doubles at 55-70 euros for a straightforward room near the waterfront.
The pricing pattern matters: spa hotels here bundle treatments into the room rate, so a 130-euro night at Fra Mare including a mud bath and massage is genuinely better value than the same 130 euros at a Tallinn city hotel where every extra costs on top. Book directly with the hotels — the spa packages on their own websites are 10-20 percent cheaper than the aggregator prices. High season is late June through mid-August; shoulder pricing kicks in by September.
What's within walking distance
The promenade — Aafrika rand and the connecting Suur promenaad — runs about two kilometres along the bay from the castle to the railway station, and it's the spine of the town. The medieval Haapsalu piiskopilinnus (bishop's castle) sits at one end, with its famous ghostly White Lady window visible from the wall walk. The old wooden railway station, now a museum, sits at the other. Between them are the main square, the Ilon Wikland children's illustration museum, and roughly a dozen wooden villas that make the town's Instagram identity.
You can walk the entire tourist inventory in a full day. Nothing important requires wheels. The three main spa hotels are all within a ten-minute walk of the promenade. The Africa Beach — a warm shallow swimming spot named after a supposed resemblance to the continent — is a fifteen-minute walk from the castle. That walkability is one of the town's real advantages over Parnu, where the beach and old town are farther apart.
Getting there and getting around
There is no passenger train to Haapsalu — the line closed in 2004 and the old station is a museum. Buses from Tallinn's Balti jaam bus terminal (Lux Express and Hansabuss) run roughly ten times a day, take 90-100 minutes, and cost 8-11 euros. Driving takes 80 minutes on route 9 (the Rannarootsi maantee) via Keila and is straightforward. Parking is free almost everywhere in town.
Within Haapsalu you walk. There is no useful local bus service for tourists. Bicycle rental is easy in summer — 8-10 euros a day from the tourist office or hotels — and the promenade is genuinely made for cycling. For day trips to Matsalu National Park or the small ports of the west coast, you need a car. Taxis are called by phone. If you’re not driving, book activities that include transport rather than trying to piece together public options.
Haapsalu versus Parnu
This is the real decision for anyone wanting a Baltic spa town from Tallinn. Parnu is bigger, livelier, has the better sand beach, more restaurants, and a proper summer festival scene. It is also more expensive in July (rooms 120-200 euros for equivalents that cost 85-140 in Haapsalu) and much more crowded. Haapsalu is quieter, cheaper, more architecturally intact in its wooden-villa core, and has the warmer bathing water because the bay is shallower.
Book Parnu if you want a beach holiday with restaurants and nightlife. Book Haapsalu if you want a spa holiday with peace. If you’re travelling with parents in their 60s or 70s, Haapsalu almost always wins — it is smaller, easier to navigate, and the whole town is oriented around exactly the kind of slow wellness stay older travellers enjoy. Younger couples split about evenly depending on whether they want stimulation or rest.
Eating and drinking
Mural Restoran on the main square is the standout — a proper modern Estonian kitchen with mains 18-26 euros, local fish done well, and a wine list that takes itself seriously. Hapsal Dietrich handles the cafe end with excellent cakes and light lunches, and their terrace overlooking the square is the best sit-down-and-watch-people spot in town. Muhu Kalatoad does simple fish plates near the harbour for 12-16 euros.
The spa hotels all have their own restaurants and most guests eat there at least half the time on half-board packages — the food is fine, occasionally very good, never destination-level. For a drink, Kuursaal in the old summer casino building is atmospheric and does decent cocktails. Haapsalu closes early: kitchens usually stop at 22:00, bars at midnight. Two people eat well for 60-80 euros a night at Mural, roughly half at Muhu Kalatoad.
The verdict
Book two or three nights at Fra Mare or Hestia if you want a spa break, are travelling with older parents, or are recovering from too much Tallinn Old Town. Book Kongo Hotel if you want character over spa facilities. Skip Haapsalu entirely if you’re under 30 and looking for nightlife, or if this is your only Estonian coastal stop and you want the classic beach experience — Parnu handles that better.
The town is at its best in late August and early September, when the water is still warm, the Estonian summer-house crowds have gone back to Tallinn, and the light turns golden by 19:00. Book that window for the best combination of weather, price, and quiet. A three-night stay for two, with half board and treatments, runs 500-700 euros — genuinely competitive with a weekend break at a mid-range Tallinn hotel with dinners out.
Before you book
The questions people ask about Keila, answered with this month’s numbers.
For anyone with joint pain, mild circulation issues, or general muscle tension, yes — the Haapsalu curative mud has 175 years of documented use and most spa guests report real benefit. For healthy travellers wanting a novel experience, one 40-minute session is enough. Multi-day mud packages make sense only if you’re treating something specific.
Yes, but adjust expectations. October to April the promenade is wind-scoured, some cafes close, and the bay swimming is off. The spas run year-round and are actually best in winter when treatments feel most welcome. Book Fra Mare in February for a genuinely restorative long weekend at 30-40 percent off summer rates.
Technically yes — a bus at 09:00 gets you there by 10:30, and one at 18:00 returns by 20:00. But the town's point is slowness, and rushing it defeats the purpose. If you can only spare a day, day-trip somewhere closer like Keila-Joa. Haapsalu deserves at least one night.