Morocco is easy to travel, once you understand how the pieces fit. There’s a fast, cheap train down the spine of the country, two good bus companies that reach everywhere the train doesn’t, and shared taxis filling the gaps between. The trick isn’t any single mode — it’s matching the right one to each leg of your trip.
So start with the mental model. Build your route on the train line where it exists, use a bus where the rails stop, and take a shared taxi or a hired driver for the last bit into the mountains or the desert. Hold that picture and the rest of this guide just fills in the detail.
Trains: the fast spine
The national railway, ONCF, is the best way to move between the big cities. It’s punctual, comfortable, cheap, and far less hassle than the road.
The network runs two main lines. The north-south line links Tangier, Kenitra, Rabat, Casablanca, and on to Marrakech. The east-west line connects Oujda, Fes, and Meknes into Kenitra. Between Tangier and Casablanca runs Al Boraq, Africa’s first high-speed train, covering that stretch in a little over two hours, roughly every hour through the day. The rest of the network uses comfortable standard trains — Casablanca to Marrakech is about three hours.
Here’s the catch worth knowing up front: the train does not reach some of the places you most want to go. No train serves Chefchaouen, Essaouira, Agadir, Ouarzazate, or the Sahara towns. For those, you take a train as far as it goes, then switch to a bus.
Book on the ONCF website or the ONCF Voyages app, up to a month ahead. First class gets you a reserved, quieter seat; second class is cheaper and fine for most trips, though seats aren’t always reserved, so arrive early for a window. Popular routes like Casablanca–Marrakech sell out on Friday afternoons and Sunday evenings, so book a few days ahead for weekends. One heads-up: foreign cards sometimes fail on the booking site — if that happens, buy at the station counter.
Buses: where the rails end
Two companies matter: CTM and Supratours. Both run modern, air-conditioned coaches with reserved seats and a luggage hold, and both are reliable and tourist-friendly. They reach the places trains don’t — Essaouira, Chefchaouen, Agadir, Ouarzazate, and the desert gateways.
The difference between them is small but useful. CTM is the national operator with the widest network, though its stations are sometimes out of the center. Supratours is owned by the railway, so its buses leave from or beside the train stations, which makes a train-then-bus trip seamless. Supratours runs a touch pricier, and offers combined train-plus-bus tickets. A practical tip: some towns are served by only one of them — Chefchaouen, for instance, has CTM but not Supratours — so check both before you book. You can book on their websites, the ONCF app for Supratours, or at the station.
Skip the cheap local bus companies. They’re a little cheaper but unreliable, crowded, slow with endless stops, and less comfortable. The small saving isn’t worth it. There’s usually a separate luggage sticker for a few dirhams, so sort that before boarding.
Grand taxis: the gap-fillers
A grand taxi is a shared intercity cab running a fixed route — traditionally an old Mercedes, increasingly a newer minivan. It leaves when it’s full, which means about six people squeezed into a sedan, and it covers the short links that trains and buses miss: Fes to Chefchaouen, Marrakech to Essaouira, and countless mountain and desert towns.
Fares are fixed per route and well known to locals, so ask your hotel the going rate before you go to the station. You can also pay for the empty seats, or hire the whole taxi, if you’d rather leave straight away or have room to breathe. It’s not luxurious, but for a short hop it’s quick, cheap, and authentic.
Around town: petit taxis, ride apps, and trams
Petit taxis are the small metered cabs for getting around inside a city. They take up to three passengers, don’t leave the city limits, and are colour-coded by town. The one rule: insist on the meter — say “compteur” — and if the driver refuses, get out and flag another. There are always more. Fares are low, with a fair night surcharge after dark.
Ride apps are a useful alternative, but don’t assume Uber works here the way it does at home. Coverage is patchy and clusters in the big cities. The ones that actually work are local: Careem, inDrive, and Heetch, strongest in Casablanca and the larger cities. They take the haggling out of the trip and show the price upfront. Always keep a backup, though — a taxi route, your riad’s number — because a driver isn’t always nearby.
Trams run in Casablanca and Rabat-Salé, modern and very cheap, good for crossing those cities. Useful, if those are your stops.
Longer and special legs
Domestic flights with Royal Air Maroc or Air Arabia make sense when a road day would eat your whole trip — reaching the deep south like Dakhla or Laayoune, for example. For the main tourist circuit, the train usually wins once you count airport time.
Renting a car gives you freedom for the valleys and back roads, and rural driving is fine. City driving is chaotic and parking is a headache, and mountain roads are slow and winding. Worth it for a road trip through the Atlas or the south, less so if you’re hopping between big cities.
Hiring a private driver is the most comfortable option, and the one most travelers choose for the Atlas Mountains and the desert. It removes the logistics, adds local knowledge, and is well worth it for a group or a multi-day route off the rail line. It’s also the smart move for a late-night airport arrival.
Which to use for common legs
To make it concrete, here’s how the pieces fit on routes people actually do:
- Tangier to Fes or Casablanca: train every time. Fast, frequent, comfortable.
- Casablanca to Marrakech: train, about three hours. Book ahead on weekends.
- Fes to Chefchaouen: no train. Take a CTM bus or a grand taxi, around four hours.
- Marrakech to Essaouira: no train. Supratours bus is the easy pick, about three hours.
- Marrakech to the Sahara (Merzouga or Zagora): no train and a very long road. Most people take a multi-day tour with a driver, which is the sensible call for that route.
- Inside any city: a metered petit taxi, a ride app where it works, or the tram in Casablanca and Rabat.
Booking and practical tips
- Lock in the long, fixed legs early — trains and buses on weekends and holidays sell out. Keep the short hops flexible.
- Carry small notes for taxi fares and luggage stickers; big notes are hard to break.
- Plan to arrive in daylight where you can. Finding a new riad in a dark medina is harder, and late-night fares and friction are higher.
- During Ramadan and public holidays, schedules change and demand spikes. Build in buffer.
- In the old cities, cars can’t reach your riad door — the medina alleys are too narrow. Get your accommodation’s arrival instructions, and expect to walk or use a luggage cart for the last stretch.
One scam to sidestep, tied to arrivals: when you step off a train or bus, drivers will swarm and tell you the center is “very far,” quoting a high flat fare. It usually isn’t far, and the metered price is a fraction of the quote. Insist on the meter, agree a fair price first, or walk out to the street and hail one there.
FAQ
What’s the best way to travel between cities in Morocco?
The train, wherever it runs — it’s fast, cheap, and comfortable on the Tangier–Casablanca–Marrakech and Fes–Meknes lines. Where there’s no train, CTM or Supratours buses are the reliable choice.
Does Morocco have a high-speed train?
Yes. Al Boraq runs between Tangier and Casablanca in just over two hours, roughly hourly through the day — the first high-speed line in Africa.
How do I get to places with no train, like Chefchaouen or Essaouira?
By bus or shared taxi. Take the train as far as it goes, then a CTM or Supratours bus, or a grand taxi for shorter links. Essaouira pairs with the Supratours bus from Marrakech; Chefchaouen with CTM from Fes or Tangier.
Is Uber available in Morocco?
Not reliably. Use local apps like Careem, inDrive, or Heetch in the bigger cities, or metered petit taxis. Always keep a backup option.
What’s the difference between a grand taxi and a petit taxi?
A petit taxi is a small metered cab for trips inside a city, up to three people. A grand taxi is a shared cab running fixed routes between towns, leaving when it’s full.
Should I rent a car in Morocco?
Good for a road trip through the Atlas or the south, where freedom helps. Less ideal for city-to-city travel, given chaotic city driving and parking. Many travelers hire a driver for the mountains and desert instead.
How far ahead should I book trains and buses?
A few days for weekends and popular routes, which sell out. Off-peak, you can often buy on the day. Book online or at the station.