Skip to content
Cycling

Adriatic Coast

A green coastal cycle path running beside the calm Adriatic Sea under a clear blue sky.
Distance1,106 km
Climbing4,738 m
ActivityCycling
Route days10
Complete route overview

10 recorded sections, shown together

Loading complete route…

This was one of my favourite trips ever. Cycling the entire length of the Adriatic Coast of Italy.

Section 01

Arriving to Santa María de Leuca

Before I’d even clipped into the pedals for the Adriatic Coast ride, simply reaching the start line felt like a bit of an ultra-endurance challenge.

Initially, I had lofty dreams of flying into the nearest airport and hopping on a train down to Santa Maria di Leuca. Simple, right? Sadly, no. Turns out, there are no trains that go all the way to the bottom of the heel. Classic.

Plan B: fly and train it to a nearby town, then cycle the rest of the way down and start fresh the next morning. Reasonable on paper. In practice, I read the delightful quirk that not all Italian trains allow you to carry bikes, and I didn’t fancy gambling my entire budget and trip on the off-chance I’d be forced into a long-range taxi. Too many unknowns, not enough confidence.

So, in the end, I opted for the most “reliable” option (if you can call it that): fly into Bologna and take a FlixBus all the way down to Santa Maria di Leuca. Glorious, I know. The journey was absolutely grim, no two ways about it. The only redeeming feature? It dropped me right at the southernmost point of the country. Direct, in lieu of luxurious.

Things went south almost immediately. I reassembled my bike in the baggage reclaim area at Bologna Airport. Yes, right there next to the luggage belt, casually bolting it back together like some rogue mechanic. I did leave the cardboard box behind, which I was mildly ashamed of, but frankly, after the first of three punctures before I even left Bologna, that shame left me very quickly. I got one flat just cycling out of the airport, and two more just pushing the thing across Bologna’s medieval cobbled streets. The tyres were clearly not fans of rustic charm.

With my bus not departing until 10pm, I had time to kill. Luckily, I’ve been to Bologna before, so I took the opportunity to reacquaint myself with some cold beers, a good book, and my Italian phrasebook. One thing to look out for: I did notice the price of my beers increasing the longer I sat there. I don't think the owner liked me and my bike being sat there all that time.

The FlixBus trundled through the night, and by the next morning, I finally rolled into Santa Maria di Leuca. And let me tell you, I was utterly spent. The legroom on that bus was minimal to say the least, and the width of the seat was not great either. I did not sleep well. Nor did the guy sat next to me. Between that and the tyre tantrums, I gave myself a well-earned rest day before kicking things off properly.

The hotel I’d booked had a cracking little pool, and the sea was just a short walk away. Decision made. Santa Maria itself was stunning - rocky cliffs, crystal clear water stretching out endlessly, and that glorious sense of standing at the very edge of the map. This time looking out towards North Africa. I found a pizza place down by the waterfront and, in a moment of proud gluttony, polished off two whole pizzas. No regrets. I needed the fuel for the road ahead.

The rest day did the trick. After that, I was finally ready to start the ride. Next stop: Torre dell’Orso.

Section 02

Stage 1

Santa María de Leuca -> Torre dell'Orso

Recorded route
Distance
76.4 km
Climbing
677 m

After the long journey down to Santa Maria di Leuca (the southernmost tip of the Salento peninsula) I stay put for a full day to recover. I chose a hotel with a pool, and with the sea nearby it was easy to do this. It’s a long way to come for a bike ride, but I knew this trip would be worth every turn of the crank. This was the start of one of my favourite rides ever: cycling the entire Adriatic Coast of Italy.

The journey began officially at the lighthouse of Santa Maria, the meeting point of the Ionian and Adriatic Seas. The sun was already baking the pavement, and my legs were itching to get moving. That said, it didn’t take long for the first hiccups to show up, on top of the punctures I experience just getting here, I didn't know it yet, but I would be getting another one very soon.

Changing tyres isn't the most fun at the best of times, but in this heat also, awful. At this point, there was clearly something wrong with my tyres, perhaps some glass stuck inside that I couldn't find, but I made the call to detour inland toward Tricase instead of hugging the cliffside roads. Not ideal, but definitely the right decision. In Tricase, I struck gold: a brilliant little bike shop with a very friendly and helpful mechanic who knew his stuff. We swapped my tyres for something a bit wider and got the bike sorted. Those same tyres lasted another seven days, so I’ll call that a win.

Back on the road, I dropped straight back down as quickly as possible to the coast to soak in the views. Castro Marina was my next pause - water, sugar, and a bit of shade. It was sweltering. I love the heat, but I'm not sure this is most people's cup of tea. A proper lunch break came at Porto Badisco, where I lucked out with a breezy little beach next to the restaurant. I locked up the bike, grabbed my valuables, and gave my legs a cool break in the shallows.

The next stretch took me past the Faro di Punta Palascia, Italy’s easternmost point. This is where the route really turned north, and I don't know why but I really felt that corner. A shift from the Mediterranean vibes to the wilder edge of the Adriatic. The open fields and sea views around here were breathtaking.

The descent into Otranto came fast and smooth, with a shaded road winding down into the historic town. I didn’t stop long - it was just too hot and I wanted to explore my destination - but even rolling through, I could feel how special it was. Tight old streets suddenly opening to that brilliant turquoise seafront.

From there, it was a final push to Torre dell’Orso. I’d been hoping to catch sight of a coastal lake marked on the map, but it turned out to be a bit more hidden than expected. No matter, rolling into Torre dell’Orso felt like a victory. The campsite was very sheltered, shady, with a light breeze. Just what I needed. I set up my tent, ditched my gear, and headed out again to explore the beaches before the sun dipped.

Section 03

Stage 2

Torre dell'Orso -> Monopoli

Recorded route
Distance
140 km
Climbing
643 m

Day two. Legs fresh, morale high, but an undeniable sense that I needed to get some proper miles under the belt. After the rather “eventful” start to this trip, I was determined to put in a solid day’s shift in the saddle. The plan? A cool 150km. Ambitious, but my maps were showing me a mostly flat route, the skies were clear, and I was feeling unreasonably optimistic. Off I rolled at 6am, partly because I’m a morning person, partly because no one wants to fry on a bike past 10am in southern Italy.

The day’s route was a lovely mix of countryside and coast: starting rural, diving through the port city of Brindisi, climbing inland to Ostuni, and eventually dropping back down to the sea, finishing just shy of Monopoli. Not a bad lineup.

I had wanted to stick to the coast as much as possible, but after Brindisi, unfortunately the motorway hogged the shoreline. There is a service road next to it, but it looked rough in the photos and I didn’t trust my tyres to hold up. Besides, I’d have plenty more coastline ahead. So instead of inhaling those fumes, I chose inland, and uphill.

The early morning riding was glorious. The sun hung low, casting long shadows over the dry-stone walls that lined the narrow Puglian lanes. To my right, the sea glimmered in and out of view, and the scent of salt and wild grass drifted through the air. I stuck to the coast where I could, although the road didn’t pass through every town, so I had to make the odd executive decision about when to deviate. It’s a balancing act really. Cover the miles, but don’t miss the gems.

There wasn’t a huge amount going on in these towns. Just sleepy little places, where I couldn’t help but wonder held these quiet communities together. Often, all I saw was just one old bloke sat on a bench, nodding off in the morning sun. But to be fair, he had a cracking view.

I like to break the back of the ride before the first proper stop, so Brindisi was my goal for breakfast (lunch for me) given it was 65km in. En route, a town called Spiaggiabella (which translates rather grandly to “Beautiful Beach”) caught my eye. With a name like that, I had to investigate. It was a long, linear sort of place; One main road with little house filled side streets darting off towards the beach. I found the shortest street down to the beach and wheeled my bike onto the sand. Yes, I got sand everywhere, yes, it was worth it. The beach was massive, a bit scruffy maybe, but it had that windswept rural charm. A few kite surfers were setting up for the day. Clearly they knew what they were doing.

Shortly after that came Casalabate, and with it, a real Puglian experience: being stalked by a fish van. At 8.30am. Complete with loudspeaker, shouting about the day’s catch like it was the last swordfish on Earth. It was so loud I thought he might be chasing me out of town. I do wonder if the locals find him as irritating as I did.

By the time I reached Brindisi, I was overheating and definitely ready for a break. I didn’t fancy getting lost in its maze of streets - big towns eat time and I’d seen enough seafronts for one morning - so I stuck to the main road and found a quick little pitstop called Caffè del Castello. Multiple ice-cold drinks were consumed at high speed. Then I scouted for a lunch spot.

I earmarked a place with good reviews further along my route. Feeling high from the sugary drinks I had just inhaled, I started the ascent upwards. Partway up, I passed something unexpected: an old US Air Force base now home to the UN Humanitarian Response Depot. But more fascinatingly, one of the eight Cold War-era AN/FLR-9 antennas still stood there - a giant listening ear from the days when the world held its breath. Very geeky, very cool.

My lunch spot arrived a little while later - a restaurant tucked in the middle of an industrial estate. Looked a little dodgy from the outside, but it turned out to be a leafy little oasis inside. Cracking music and the friendliest staff. Massive bonus when you’re sweaty, hungry and like house music.

The breezy descent back down to the coast after lunch was a joy. My legs got a well earned rest, but back on the flat they were required once more. As the day drew to a close, I was flagging. The campsite felt like it would never arrive, but eventually it did, complete with a bar serving beer and lasagna (regrettably pre-packaged).

The best bit though? A turquoise sandy inlet just below the tents. Cool, clear water and few people. I clambered down, waded in, sunk into the water and let the fatigue wash off.

Section 04

Stage 3

Monopoli -> Barletta

Recorded route
Distance
109 km
Climbing
407 m

Today’s ride was one I’d been looking forward to since I first mapped out this trip. A string of Puglia’s heavy hitters lay ahead: Monopoli, Polignano a Mare, Mola di Bari, Bari, Molfetta and finally Barletta. Yes, I was excited. 

I’d also made a firm decision: no tent tonight. Camping has its charm, but after a few too many uninspiring meals (and the growing reluctance to cycle out again just to find a half-decent one), I was ready to embrace civilisation. I needed a real shower, a mattress that didn’t deflate overnight, and the kind of temperature control only air con can deliver. Basically, I needed a night where I didn’t feel like I was sleeping in a greenhouse.

Monopoli came early in the day. I didn’t venture into the old town this time; I was keen to get some distance under my wheels. But I did stop at a fantastic café where I consumed no fewer than three pistachio brioches. No regrets. Polignano a Mare followed shortly after. The streets were quiet, just a few delivery vans and a cat or two slinking between shutters. I stopped for a few obligatory photos of that famous beach inlet, which is just as ridiculous in person as it looks in every travel brochure.

Between Polignano and Mola di Bari, I unexpectedly found myself in an unspoken race with two older Italian blokes on road bikes. Let’s be clear, they weren’t carrying panniers, and I absolutely was. And I absolutely won. Whilst searching around for a place to stop for a drink in Mola, there they were - smiling, waving me over, and before I knew it, I was sipping espresso with them like we were old mates. They even sneakily paid for my coffee. Classic Italian hospitality: disarmingly generous and impossible to argue with.

From there, the road really opened up. Flat, hot, and with a helpful tailwind; cycling perfection. The E55 unfortunately was a frequent site for me between towns this day. Not the prettiest service road to ride on, but it did the job of getting me to the next gem.

Bari was the next major milestone. I rode right through the old town, which was filled with statues, old and incredible buildings, and that Mediterranean charm I’m such a sucker for. I stopped at Almarè Beach Bar & Bistrot - a lucky find right on my route. Loads of outdoor space, cold drinks, and somewhere to keep the bike in sight. Bliss.

A few kilometres later, things got a bit more… improvisational. Essentially I had to navigate quite a large dry riverbed. The motorway soared right over this, smugly indifferent to my plight, but I was faced with either a big detour or forging through a sea of reeds on something that barely qualified as a path. Naturally, I chose the off-road adventure. Thankfully, it wasn’t half as bad as it looked, and soon enough, I was back on blessed tarmac.

Next stop was Molfetta, another coastal stunner, with a gorgeous lungomare perfect for a slow roll through. And finally, as the sun started dipping, Barletta came into view. Beautiful old cobbled streets, warm evening light, and the sense that I’d really earned this one.

Naturally, there had to be one more twist. The Airbnb host accidentally turned up to check the room was ready while I was already in it, stretched out on the bed and halfway through de-sweating. After the initial shock (mostly hers), we both laughed it off and she even invited me out for drinks with her friends that evening. It was a brilliant end to the day. A genuine local moment, and one of those rare social blips that make solo travel feel a little less solo.

Dinner was a proper bowl of pasta. The drink was cold. And the bed? Glorious.

Section 05

Stage 4

Barletta -> Apricena

Recorded route
Distance
97.5 km
Climbing
309 m

Today marked the first of two unavoidable hillier forays up the Adriatic coast. A peninsula I couldn’t dodge. It also turned out to be the most rural, sun-scorched, and quietly surreal stretch of the trip.

The day began beautifully as always. Early light on the sea, fresh legs, flat roads, a great coffee and brioche - all that good stuff. That was until I hit a bump and watched my bag launch itself off the back of the bike in a dramatic little tantrum. Fortunately, nothing was damaged and I soon turned inland, crossing one of the peninsula ridges that juts out into the Adriatic.

From that point on, it was a different world. Sparse doesn’t quite cut it. Long, exposed roads wound slowly uphill between scattered farmhouses and sleepy hamlets that looked like they’d last seen excitement during the Roman Empire. No cafés. No shops. Not even a dusty vending machine. Just relentless heat, empty roads, and the occasional cow eyeing me with the same enthusiasm I had for seeing him. This wasn’t sightseeing. This was survival. Head down, shade-hopping, and rationing water like I was in some low-budget desert film.

At one point I gave up and pulled into someone’s front garden just to sit under a tree. Still no sign of life. Eventually, I stumbled on what felt like an oasis: a tiny farmers’ supply stop, seemingly the social hub for the next 30 kilometres in all directions. A dozen men in sun-bleached shirts stood around quietly, smoking, drinking, picking up supplies. It was calm and slow and very local. I bought water and some food and tried not to look too ridiculous in my skin-tight lycra. Not sure I succeeded. But I stayed there for a good hour to recoup.

By the time I reached Apricena, I was wilted. The town was also asleep. Still no sign of life. I tried to find somewhere to eat but failed dramatically. The only place open had barely any food left and looked as weary as I felt. I ate a small sandwich there, gave up, crawled into my room, and had a nap.

Thankfully, evenings have a way of redeeming even the hardest days. Apricena woke up, and so did I. I ventured back out and struck gold: Pizzeria Fast Food Scisci. It doesn’t sound glamorous, but my god, the pizza was sublime. Glorious pizza, heavy on the carbs, rich tomato sauce, and served by an old bloke having the time of this life dancing to MTV. After a day like that, it felt like pure redemption on a plate.

Not the most exciting day on paper, maybe. But one that reminded me how dramatically things can shift on trips like this. One day you’re drinking spritzes in Barletta with new friends, the next you’re battling the heat through a landscape where even the cows look bored. And somehow, both stick with you.

Section 06

Stage 5

Apricena -> Vasto

Recorded route
Distance
84.9 km
Climbing
382 m

After the furnace of the previous day, I wasn't exactly thrilled to discover that this stage began with a proper climb straight out of Apricena. No gentle warm-up. No easing into things. Just an immediate reminder that gravity was very much still operational. In fairness, it certainly woke me up quicker than a coffee would have.

Thankfully, the reward came almost immediately. Cresting the climb opened the door to a brilliant descent all the way back towards the Adriatic. Long sweeping bends, very little traffic, and that satisfying feeling of watching the sea slowly grow larger with every kilometre. It felt like I was finally rejoining the coastline after my brief inland detour.

I rolled away just before seven o'clock that morning, and for the next three and a half hours I simply kept riding. There wasn't really anywhere that tempted me to stop. For much of the day I found myself following the A14 motorway, with the SS16 running alongside it. In reality, it felt more like riding a glorified service road than a scenic coastal route. Not unpleasant exactly, just functional. The motorway disappeared off beside me carrying people rapidly north while I pedalled along at a rather more traditional pace.

The scenery followed much the same pattern. Long stretches passed with barely a building in sight before suddenly giving way to rows upon rows of holiday homes, many looking as though they only came alive for a few weeks each summer. It wasn't a difficult day's riding, but it was one of those stages where you settled into a rhythm, kept turning the pedals and watched the kilometres quietly disappear.

By the time I rolled into Vasto, I was more interested in food than sightseeing. I found a beachside restaurant, locked the bike securely, and ordered an enormous pizza. Around me were holidaymakers enjoying the beach in their swimwear. I was also rather scantily dressed, although tight cycling lycra wasn't quite the same aesthetic as everyone else's bikinis. I did my best not to think too hard about it and focused my attention where it belonged, on the pizza.

That evening I headed to Camping Village Grotta del Saraceno. Calling it a campsite almost feels unfair. It was more like a small holiday village, filled with permanent accommodation, immaculate pitches for enormous campervans, a beautiful swimming pool and direct access to the beach below. Entire families had clearly settled in for weeks, with children darting around while parents, grandparents, aunts and uncles all seemed to be enjoying long summer evenings together.

Meanwhile, I found myself pitching my tiny one-man tent on what was essentially the rocky edge of the campervan parking area. Surrounded by motorhomes worth more than my house, I couldn't help feeling a little under-equipped. Still, everyone around me was wonderfully friendly. A few smiles gradually turned into nods, and although we didn't share much of a common language, camping has its own way of breaking the ice.

I turned in surprisingly early, around eight o'clock. By now I'd settled into a routine. Early nights led to early starts, and early starts meant covering most of the distance before the Italian sun decided to remind everyone who was in charge.

Section 07

Stage 6

Vasto -> Tortoreto

Recorded route
Distance
111 km
Climbing
420 m

Section 08

Stage 7

Tortoreto -> Ancona

Recorded route
Distance
105 km
Climbing
595 m

Section 09

Stage 8

Ancona -> Rimini

Recorded route
Distance
102 km
Climbing
443 m

Section 10

Stage 9

Rimini -> Ferrara

Recorded route
Distance
137 km
Climbing
366 m

Section 11

Stage 10

Ferrara -> Lago di Garda

Recorded route
Distance
143 km
Climbing
497 m

Photo journal

Scenes from the route.

Open any photograph to see it in full and browse the complete set.

1 of 11