The busy end and the quiet end
1. Zandvoort — 30 minutes from Amsterdam Centraal by direct train, the widest choice of beach clubs (Woodstock, Republiek, Tijn Akersloot), a real town behind the seafront, and the Formula 1 circuit if that matters to you. It's number one because it's the only beach town that works for a day trip without a car. 2. Bergen aan Zee — pair it with Bergen village 4 km inland, which has the province's best small-town restaurant scene outside Haarlem. 3. Egmond aan Zee — quieter than Bergen, with a working lighthouse and a proper wide beach; better for families than for a night out.
Zandvoort divides opinion — locals from Amsterdam either love it or dismiss it as tacky. The truth is it's both, but the transport link makes it unbeatable for a spontaneous half-day.
The specialists
4. Texel (De Koog and Den Hoorn) — you’re on an island, the beach is 30 km long, and it's the only Noord-Holland beach where you’ll feel remote. Downside: ferry from Den Helder and an overnight to make it worthwhile. 5. Wijk aan Zee near IJmuiden — small, unpretentious, and the beach faces directly onto the Tata Steel plant to the south, which is either atmospheric or grim depending on your view.
Not ranked: Bloemendaal aan Zee. It's essentially a beach-club strip attached to Zandvoort and has no town of its own, so it belongs in the Zandvoort entry. IJmuiden itself is a working port, not a beach town.
Questions answered
Can you swim in the North Sea here?
Yes June through early September. Water rarely exceeds 18°C, and rip currents are a real risk at Zandvoort and Bloemendaal — swim between the yellow-and-red flags when lifeguards are present.
Which beach town has the best food?
Bergen village (inland from Bergen aan Zee) — half a dozen serious restaurants in a compact centre. Zandvoort has quantity; Bergen has quality.
Every stay booked through Stay Noord-Holland funds one verified tonne of carbon removal — same room, same price, the climate action already built into checkout.
You're not charged more and the hotel isn't paid less. It's just what happens when you tap Reserve.