Morocco has a surprisingly good transport network for a developing country. The train system (ONCF) is comfortable and punctual on the northern corridor. Long-distance buses (CTM, Supratours) reach almost every city. Grand taxis fill the gaps cheaply. And a growing domestic flight network connects the extremes. The challenge isn't finding transport — it's knowing which option to use when.
National rail network
Morocco's ONCF trains are clean, air-conditioned and generally on time. The main line runs Tangier → Rabat → Casablanca → Marrakech and is genuinely comfortable. A second line serves Fes, Meknès and Oujda. Book in advance online at oncf.ma or at any station — tickets rarely sell out but you'll want a seat reservation.
Classes: 1st class (more space, quieter) and 2nd class (fine for most journeys). Night trains between Tangier and Marrakech are an excellent option.
Long-distance coaches
CTM is Morocco's main long-distance bus operator — air-conditioned, assigned seats, luggage hold, and routes to every major city including Agadir, Ouarzazate, Dakhla and Merzouga. Supratours (run by ONCF) is comparable quality. Both are significantly cheaper than trains on comparable routes.
Book at the CTM terminal or online at ctm.ma. Journey times are longer than trains but reach places trains don't. Night buses are a popular option for the Marrakech–Fes or Casablanca–Agadir routes.
Intercity shared taxis
Morocco's intercity grand taxis are large Mercedes saloons carrying up to 6 passengers. They depart when full from designated ranks near bus stations. No timetable — just show up, pay your seat fare, and wait (usually 5–30 minutes). They're often faster than buses on short routes and stop anywhere along the route on request.
Bargain for the whole taxi if you want privacy or to go directly without waiting. Price per seat is fixed by convention — ask a local or your riad what it should be before you get in.
Within-city taxis
Petits taxis are small metered taxis for travel within a single city. Every city has its own colour (Marrakech = beige, Casablanca = red, Rabat = blue, Fes = red, Tangier = blue). They're very cheap — most journeys under 30 MAD — and widely available during the day.
Always insist on the meter ("compte, s'il vous plaît"). If a driver refuses, get out and take the next one. At night or for airport runs, agree a price upfront — meters are sometimes off after 8pm.
Royal Air Maroc & budget
Royal Air Maroc flies between Casablanca, Marrakech, Agadir, Fes, Tangier, Laayoune and Dakhla. For destinations in the deep south — Dakhla is 1,700km from Casablanca — flying is the only realistic option. Book on royalairmaroc.com or via aggregators. Internal fares can be very reasonable if booked early.
Budget carriers (Ryanair, easyJet) don't operate domestic Moroccan routes — RAM has a near-monopoly, so prices can be higher than you'd expect.
Self-drive freedom
Renting a car unlocks Morocco's greatest landscapes — the Draa Valley, the mountain passes over the Atlas, the coast road south of Agadir, the desert piste to Erg Chigaga. Cities are a different matter: Marrakech and Fes driving is chaotic, parking is difficult and the medina areas are pedestrian-only. Drive between cities, not within them.
Reputable agencies: Hertz, Europcar, Avis (at airports). Local agencies are cheaper but inspect the car thoroughly and photograph all existing damage before driving. An international driving permit is recommended but rarely required in practice.
All prices are approximate 2026 figures. Train = 2nd class; Bus = CTM; Grand taxi = per seat.
| Route | Train | Bus (CTM) | Grand Taxi | Best Option |
|---|---|---|---|---|
| Casablanca → Marrakech | 2h 40min · 90–130 MAD | 3h 30min · 75 MAD | Not typical | 🚂 Train |
| Casablanca → Rabat | 55min · 35–55 MAD | 1h 30min · 35 MAD | Not typical | 🚂 Train |
| Rabat → Tangier | 2h 20min · 85–110 MAD | 3h · 80 MAD | Not typical | 🚂 Train |
| Casablanca → Fes | 3h 20min · 100–140 MAD | 4h · 90 MAD | Not typical | 🚂 Train |
| Marrakech → Agadir | No direct train | 3h · 100 MAD | 2h 30min · 80–100 MAD | 🚌 Bus or taxi |
| Marrakech → Merzouga (Sahara) | No service | 10h · 180 MAD | 8h · hire full taxi | 🚌 Night bus |
| Tangier → Tetouan | No direct service | 50min · 25 MAD | 40min · 35 MAD/seat | 🚖 Grand taxi |
| Tetouan → Chefchaouen | No service | 1h 15min · 35 MAD | 1h · 40 MAD/seat | 🚖 Grand taxi |
| Agadir → Dakhla | No service | 12h · 220 MAD | Not practical | ✈️ Fly (RAM) |
| Marrakech → Ouarzazate | No service | 3h 30min · 110 MAD | 3h · 90–100 MAD/seat | 🚌 Bus or 🚗 rent car |
| Fes → Chefchaouen | No service | 4h · 75 MAD | 3h 30min · 60 MAD/seat | 🚌 Bus |
The Marrakech → Fes overnight CTM bus (departs ~9pm, arrives ~7am) is one of Morocco's great budget travel hacks. You travel 8 hours, save a night's accommodation cost, and wake up in a completely different city. The same works for Casablanca → Agadir. Buy tickets 1–2 days ahead.
Taxis are where most Morocco transport frustration happens. A few simple rules make every taxi experience smoother:
In Marrakech and Fes especially, taxis sometimes "don't know" your riad and instead take you to a different riad that pays them commission. Have your riad's address written in Arabic, show Google Maps, and if the driver insists your riad is "closed" or "moved" — it hasn't. Get out and take another taxi.
Tangier → Tetouan → Chefchaouen is the perfect 2-day northern loop entirely by grand taxi. Day 1: Tangier to Tetouan (40 min, 35 MAD). Overnight Tetouan. Day 2: Tetouan to Chefchaouen (1hr, 40 MAD). Return Chefchaouen to Tangier direct (2h 30min by bus). No car needed, no booking required, completely flexible.
Our city guides include transport sections with specific routes, taxi ranks and current prices for each destination.