A first-time guide to Sorrento

With a historic center and flower-wreathed villas, Sorrento has got it all going on.

Mar 22, 2025 - 05:26
 0
A first-time guide to Sorrento

If you were to hand God a blank canvas and ask him to paint the Italian idyll, you would get something like Sorrento. Sitting astride cliffs that plunge down to the brilliant-blue Bay of Naples and at the gateway to the fabled Amalfi Coast, this glam coastal town has got it all going on–a historic center brimming with pastel-painted palazzi, flower-wreathed villas, and roads twisting vertiginously down to a marina where the irresistible tang of freshly grilled seafood hangs on the sea breeze. 

Whether you’re slow-touring the peninsula in search of a cliff-clasped cove or sipping an icy limoncello piazza-side as the lights glimmer, Sorrento is Italian romance in a nutshell. And it has long been this way: during the 18th- and 19th-century heyday of the Grand Tour, poets and writers like Goethe, Dickens, Lord Byron, and Keats were smitten. Read our first-time guide and get planning your trip and you soon will be, too.

A pier lined with blue parasols and people swimming underneath it Marameo Beach Club in Sorrento. rui vale sousa/Shutterstock rui vale sousa / Shutterstock

When should I go to Sorrento?

Intense heat and crowds rule out the peak months of July and August for anything other than lazy days spent hanging out at beaches, lidos (beach club), and waterfront bars. Room rates and temperatures soar, with highs reaching 35°C (95°F). The roads are jammed, especially if you’re heading on to the Amalfi Coast. But for a buzz, there’s no season like summer, with an events calendar fizzing with live music, processions, and fireworks. Top billing goes to the Festa di Sant'Anna in Marina Grande in July and the Ferragosto festivities in mid-August.

Visiting in spring? Wise choice. Gardens bloom and mild, bright days bring highs of around 25°C (77°F), making this a cracking time for exploring and coastal hiking. Most places open in time for Easter. Sorrento’s White Procession is one of Italy’s most atmospheric Holy Week parades, with hooded penitents streaming through the streets by flickering torchlight. September is another terrific month to visit, with warm seas, peaceful beaches, fewer crowds, and a flurry of sagre (food festivals) championing local produce.

Winter means quieter, cooler and wetter days, and Sorrento largely goes into hibernation. It is, however, a great time to snag deals on rooms. On Feb. 14, Sorrento celebrates its patron saint, Sant’Antonino, with religious processions, markets, street food, and fireworks.

How much time should I spend in Sorrento?

A long weekend gives you a tantalizing taste of Sorrento, just long enough for a whirl of the palazzi-lined alleys, cafe-framed piazzas, medieval churches, boutiques, gelaterias, and trattorias in the centro storico. There’s time to squeeze in a seafood lunch in the pastel-colored fishing village of Marina Grande, a Roman-style swim in the Bagni Regina Giovanna, and possibly a day trip over to Capri.  

But if you come for just a few days, you’ll be kicking yourself - a week really is minimum to see more of this ravishing peninsula, where roads whip along sheer cliff edges to olive and lemon groves and rock-top villages with cinematic views. Venture south, and you’ll be captivated by gasp-eliciting turquoise bays like Baia di Leranto, where you can swim, snorkel, and kayak, and Punta Campanella, with coastal hikes, flaming sunsets, and uplifting views of Capri.

Is it easy to get in and around Sorrento?

Absolutely. If you’re flying here, you ‘ll most likely touch down at Naples' International Airport, southern Italy's biggest transport hub, located 7km (4.3 miles) north of the city center. The airport serves plenty of destinations across Europe, and airlines include budget ones like Ryanair and easyJet. Alibus shuttle connects the airport to the main train station on Piazza Garibaldi in central Naples and the port. You can buy tickets in advance online; they cost €5 (US$5.40), and the journey takes 15 minutes.

EAV trains link Napoli Centrale station with Sorrento via Herculaneum, Pompeii and other towns along the coast, but if you want to stop off elsewhere on the way, you’ll need to hire your own wheels. Driving isn’t for the fainthearted, especially around Naples, where you should brace yourself for beeps, gestures, and sudden swerves, and you’ll also need nerve for the hairpin roads and traffic of the Amalfi Coast. 

Or take the bus instead. SITA run a regular service to towns along the coast including Positano, Praiano, and Amalfi. Save by buying a Costierasita card costing €10 (US$11) for 24 hours, valid on all buses between Sorrento and Salerno. Getting over to Capri is a breeze. Caremar runs fast ferries to Capri; the journey takes 30 minutes. Or take the Alilauro hydrofoil. 

Tourists swimming in crystal clear blue waters of a lagoon A swim at Bagni Regina Giovanna is one of the top things to do in Sorrento. dpVUE.images/Shutterstock dpVUE .images / Shutterstock

Top things to do in Sorrento 

Dive into the Centro Storico 

Hugging cliffs and staggering down to the sea, Sorrento’s pastel-washed centro storico is a cat’s cradle of cobbled lanes, cafe-rimmed piazzas, and palazzi (mansions) where nobility swanned around in the 17th and 18th centuries. 

It’s a pleasure to wander aimlessly, but you might want to tick off a sight or two, for instance the lavishly baroque Basilica di Sant’Antonino, with its Roman artifacts, medieval paintings, and pair of whale ribs alluding to the legend that the patron saint rescued a child from a whale’s stomach. Alive with flowers and birdsong, the quiet 14th-century cloister at Chiesa & Chiostro di San Francesco is great for giving the summer crowds the slip. And if you have an interest in local intarsio (marquetry) furniture, pop into Museo Bottega della Tarsia Lignea tol see fine examples in a frescoed 18th-century palazzo.

Go for a swim at Bagni Regina Giovanna

Sorrento doesn’t really have a proper beach, but it doesn’t need one with the Bagni Regina Giovanna a mile west of town and a rugged 30-minute walk via Via Capo. You’ll want to leap straight into the jewel-like, green-blue waters of this dramatic natural bathing hole, hemmed in by wooded cliffs. But their history runs far deeper than what you see. 

This was once the seaside retreat of Roman nobleman Pollio Felice, and you can now swim among the ruins of his 1st-century AD villa. The name is a nod to the legend that Queen Giovanna II of Anjou of Naples used to meet her lovers here in the 15th century. 

Boat across to Capri  

Off the west coast of the Sorrento Peninsula, ritzy Capri delivers beauty that is off the charts. Roads snake down to bluer-than-blue seas, cliffs punch high above golden sands, posh villas drip with bougainvillea, and yacht harbors hum with the mega-rich on holiday. 

Everyone has their own magic Capri moment, but they are bound to include hiking or taking the chairlift to 589m-high (1932 ft) Monte Solaro for knockout views over the Bay of Naples, strolling the flowery terraces of Giardini di Augusto, founded by Emperor Augustus, in film-set-pretty Capri Town, or splashing among the ruins of a Roman villa at beach club Bagni di Tiberio.

Eat fresh seafood in Marina Grande

Cliffs rear above Marina Grande, with wow-worthy views of Mt Vesuvius on the horizon. It’s a steep walk down from the center to this cute, pastel-hued fishing village, where fishermen still mend their nets and boats bob on the sparkling blue waters of the Gulf of Naples. 

Come for a swim in crystal waters, watch the world drift on by from a cafe terrace, or do as the Sorrentini do and book a table for lunch or sunset dinner at one of the seafood restaurants. Our money goes on Soul & Fish, dishing up the day’s catch with flair - from spaghetti alle vongole (with clams, garlic and white wine) to baby octopus, almond-crusted tuna and lobster risotto infused with Sorrento lemons.Exception: The parser function of type "canto_diptych" is not defined. Define your custom parser functions as: https://github.com/shuqikhor/editorjs-html-php#extend-for-custom-blocks in /code/vendor/sqkhor/editorjs-html/src/edjsHTML.php:70 Stack trace: #0 /code/vendor/sqkhor/editorjs-html/src/edjsHTML.php(17): edjsHTML::parse_function_error('canto_diptych') #1 [internal function]: edjsHTML::parse_block(Array) #2 /code/web/modules/custom/editorjs_custom_plugins/src/Parser/CustomParser.php(28): array_map(Array, Array) #3 /code/web/modules/custom/aws_event_pipeline/src/Mappers/v1/ArticleMapper.php(123): Drupal\editorjs_custom_plugins\Parser\CustomParser::parse(Array) #4 /code/web/modules/custom/aws_event_pipeline/src/AwsFormatter.php(168): Drupal\aws_event_pipeline\Mappers\v1\ArticleMapper->toAwsPayload(Object(Drupal\node\Entity\Node)) #5 /code/web/modules/custom/aws_event_pipeline/src/AwsFormatter.php(151): Drupal\aws_event_pipeline\AwsFormatter->getPayload(Object(Drupal\node\Entity\Node), Array) #6 /code/web/modules/custom/aws_event_pipeline/src/AwsEventSync.php(174): Drupal\aws_event_pipeline\AwsFormatter->getAwsMessage(Object(Drupal\node\Entity\Node), Object(Drupal\aws_event_pipeline\AwsEvent\AwsEvent), Array) #7 /code/web/modules/custom/aws_event_pipeline/src/EventSubscribers/EntityEventSubscriber.php(146): Drupal\aws_event_pipeline\AwsEventSync->sendToAws(Object(Drupal\node\Entity\Node), Object(Drupal\aws_event_pipeline\AwsEvent\AwsEvent)) #8 [internal function]: Drupal\aws_event_pipeline\EventSubscribers\EntityEventSubscriber->onEntityUpdate(Object(Drupal\Core\Entity\EntityEvent), 'entity.update', Object(Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher)) #9 /code/web/core/lib/Drupal/Component/EventDispatcher/ContainerAwareEventDispatcher.php(111): call_user_func(Array, Object(Drupal\Core\Entity\EntityEvent), 'entity.update', Object(Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher)) #10 /code/web/core/lib/Drupal/Core/Entity/EntityStorageBase.php(231): Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object(Drupal\Core\Entity\EntityEvent), 'entity.update') #11 /code/web/core/lib/Drupal/Core/Entity/ContentEntityStorageBase.php(900): Drupal\Core\Entity\EntityStorageBase->invokeHook('update', Object(Drupal\node\Entity\Node)) #12 /code/web/core/lib/Drupal/Core/Entity/EntityStorageBase.php(579): Drupal\Core\Entity\ContentEntityStorageBase->invokeHook('update', Object(Drupal\node\Entity\Node)) #13 /code/web/core/lib/Drupal/Core/Entity/ContentEntityStorageBase.php(781): Drupal\Core\Entity\EntityStorageBase->doPostSave(Object(Drupal\node\Entity\Node), true) #14 /code/web/core/lib/Drupal/Core/Entity/EntityStorageBase.php(504): Drupal\Core\Entity\ContentEntityStorageBase->doPostSave(Object(Drupal\node\Entity\Node), true) #15 /code/web/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php(806): Drupal\Core\Entity\EntityStorageBase->save(Object(Drupal\node\Entity\Node)) #16 /code/web/core/lib/Drupal/Core/Entity/EntityBase.php(339): Drupal\Core\Entity\Sql\SqlContentEntityStorage->save(Object(Drupal\node\Entity\Node)) #17 /code/web/core/modules/node/src/NodeForm.php(270): Drupal\Core\Entity\EntityBase->save() #18 [internal function]: Drupal\node\NodeForm->save(Array, Object(Drupal\Core\Form\FormState)) #19 /code/web/core/lib/Drupal/Core/Form/FormSubmitter.php(114): call_user_func_array(Array, Array) #20 /code/web/core/lib/Drupal/Core/Form/FormSubmitter.php(52): Drupal\Core\Form\FormSubmitter->executeSubmitHandlers(Array, Object(Drupal\Core\Form\FormState)) #21 /code/web/core/lib/Drupal/Core/Form/FormBuilder.php(597): Drupal\Core\Form\FormSubmitter->doSubmitForm(Array, Object(Drupal\Core\Form\FormState)) #22 /code/web/modules/contrib/autosave_form/src/Form/AutosaveFormBuilder.php(144): Drupal\Core\Form\FormBuilder->processForm('node_article_ed...', Array, Object(Drupal\Core\Form\FormState)) #23 /code/web/core/lib/Drupal/Core/Form/FormBuilder.php(325): Drupal\autosave_form\Form\AutosaveFormBuilder->processForm('node_article_ed...', Array, Object(Drupal\Core\Form\FormState)) #24 /code/web/modules/contrib/autosave_form/src/Form/AutosaveFormBuilder.php(97): Drupal\Core\Form\FormBuilder->buildForm(Object(Drupal\node\NodeForm), Object(Drupal\Core\Form\FormState)) #25 /code/web/core/lib/Drupal/Core/Controller/FormController.php(73): Drupal\autosave_form\Form\AutosaveFormBuilder->buildForm(Object(Drupal\node\NodeForm), Object(Drupal\Core\Form\FormState)) #26 /code/web/core/modules/layout_builder/src/Controller/LayoutBuilderHtmlEntityFormController.php(39): Drupal\Core\Controller\FormController->getContentResult(Object(Symfony\Component\HttpFoundation\Request), Object(Drupal\Core\Routing\RouteMatch)) #27 [internal function]: Drupal\layout_builder\Controller\LayoutBuilderHtmlEntityFormController->getContentResult(Object(Symfony\Component\HttpFoundation\Request), Object(Drupal\Core\Routing\RouteMatch)) #28 /code/web/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(123): call_user_func_array(Array, Array) #29 /code/web/core/lib/Drupal/Core/Render/Renderer.php(592): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}() #30 /code/web/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(124): Drupal\Core\Render\Renderer->executeInRenderContext(Object(Drupal\Core\Render\RenderContext), Object(Closure)) #31 /code/web/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(97): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->wrapControllerExecutionInRenderContext(Array, Array) #32 /code/vendor/symfony/http-kernel/HttpKernel.php(181): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}() #33 /code/vendor/symfony/http-kernel/HttpKernel.php(76): Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object(Symfony\Component\HttpFoundation\Request), 1) #34 /code/web/modules/contrib/redirect_after_login/src/RedirectMiddleware.php(44): Symfony\Component\HttpKernel\HttpKernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #35 /code/web/core/lib/Drupal/Core/StackMiddleware/Session.php(58): Drupal\redirect_after_login\RedirectMiddleware->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #36 /code/web/core/lib/Drupal/Core/StackMiddleware/KernelPreHandle.php(48): Drupal\Core\StackMiddleware\Session->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #37 /code/web/core/modules/page_cache/src/StackMiddleware/PageCache.php(106): Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #38 /code/web/core/modules/page_cache/src/StackMiddleware/PageCache.php(85): Drupal\page_cache\StackMiddleware\PageCache->pass(Object(Symfony\Component\HttpFoundation\Request), 1, true) #39 /code/vendor/asm89/stack-cors/src/Cors.php(53): Drupal\page_cache\StackMiddleware\PageCache->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #40 /code/web/core/lib/Drupal/Core/StackMiddleware/ReverseProxyMiddleware.php(48): Asm89\Stack\Cors->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #41 /code/web/core/lib/Drupal/Core/StackMiddleware/NegotiationMiddleware.php(51): Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #42 /code/web/core/lib/Drupal/Core/StackMiddleware/StackedHttpKernel.php(51): Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #43 /code/web/core/lib/Drupal/Core/DrupalKernel.php(704): Drupal\Core\StackMiddleware\StackedHttpKernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #44 /code/web/index.php(19): Drupal\Core\DrupalKernel->handle(Object(Symfony\Component\HttpFoundation\Request)) #45 {main}

My favorite thing to do in Sorrento

The Sorrentini have long known that when life gives you lemons, you make limoncello - or, perhaps, the smoothest lemon sorbet or ice cream. Sharp, zingy, and huge, the lemons here taste of sunshine. One of my favorite things to do is to take a fragrant walk among them in the Giardini di Cataldo orchards. Hook onto a tour here for the inside scoop on the region’s oranges and lemons, an insight into the harvesting process, and a tasting of local liqueurs, marmalades, cakes, and sorbets.

If I want to grab a cone, I swing by Antica Gelateria Sorrentina, whipping up some of Sorrento’s best gelato since 1860. Tucked down a narrow alley, it serves divine limoncello sorbet and lemon ice cream. Right in the heart of town on Via Marziale, Gelateria David is another must for outstanding homemade gelato. Here you can learn how to make the good stuff at a 45-minute ice cream workshop with gelato master Mario Gargiulo, costing €15 (US$16.30).

How much money do I need for Sorrento?

With its dreamy looks and romantic vibes, Sorrento has long magnetized the rich and famous, so expect prices to match. Room rates go through the roof during peak season, with a sunbed on the beach setting you back as much as €20 (US$21) and even the simplest lunch at a cafe costing €100 (US$108).

If you’re on a tight budget, swap pricey hotels for campgrounds, hostels, family-run B&Bs, and Airbnb rentals. Sidestep the peak summer months and you can snag good deals on flights and rooms. There’s no need to splurge on fancy restaurants either - seeking out local bakeries, pizzerias, and supermarkets for cheap eats will save you a fortune, and you can stock up on picnic provisions at the Tuesday morning street market in Via San Renato. Most places accept cards but have small change handy for small buys and tips.

  • Basic room for two in a budget hotel or B&B: €60-100 (US$65-108)
  • Room for two in an upscale hotel: €150-450 (US$163-488)
  • Self-catering apartment (including Airbnb): from €70 (US$76)
  • Train ticket from Naples to Sorrento: €10 (US$11)
  • Full-day boat trip along the Amalfi Coast: from €70 (US$76)
  • Ferry ticket from Sorrento to Capri: €16.40 (US$17.80)
  • Coffee: €2-3 (US$2.20-3.20)
  • Simple pasta lunch: €20 (US$15.75)
  • Pizza: €10-15 (US$11-16)
  • Scoop of ice cream: €3 (US$3.20)
  • Bottle of limoncello: €20 (US$15.75) 
  • Dinner for two at an upscale restaurant: €80-120 (US$87-130)
People in summer clothes cross a sunny square Piazza Tasso is a popular meeting spot in Sorrento. nikolpetr/Shutterstock nikolpetr / Shutterstock

What should I pack for Sorrento?

Bring flat, comfy shoes for steep, winding streets, and cobbles. Sorrento is classy, so think along the lines of light cottons and linens and chic beachwear by day, and throw something dressy in the case for the evening. Pack an extra layer (a jumper or jacket) for spring and autumn. In summer, stay cool with shorts or chinos, sundresses, shades, and a hat and sunscreen. Dress modestly in churches (shoulders and knees covered).

What should I take home from Sorrento?

All things made with oranges and lemons - from limoncello and other liqueurs to marmalades, lemon-scented oils, chocolates and sweets. Otherwise, look out for intarsio (marquetry) pieces, such as those sold at traditional Gargiulo & Jannuzzi. They can arrange shipping.

How can I get a slice of local life in Sorrento?

Named after Renaissance poet Torquato Tasso, Piazza Tasso is Sorrento’s beating heart and an atmospheric spot for an aperitivo as the sun sets. Go for an ice-cold limoncello spritz on the terrace of Fauno Bar, before joining the Sorrentini for their evening passeggiata (stroll).