Notice: Function WP_Block_Type_Registry::register was called incorrectly. Block type "core/gallery" is already registered. Please see Debugging in WordPress for more information. (This message was added in version 5.0.0.) in /nas/content/live/stagingstmllc/wp-includes/functions.php on line 5835

Notice: Undefined index: viator_tour in /nas/content/live/stagingstmllc/wp-content/plugins/10up-gutenberg-migration/includes/SmarterTravel/Gutenberg/ShortcakeTranslator.php on line 70

Notice: Constant WP_CACHE already defined in /nas/content/live/stagingstmllc/wp-config.php on line 137

Notice: Function WP_Scripts::localize was called incorrectly. The $l10n parameter must be an array. To pass arbitrary data to scripts, use the wp_add_inline_script() function instead. Please see Debugging in WordPress for more information. (This message was added in version 5.7.0.) in /nas/content/live/stagingstmllc/wp-includes/functions.php on line 5835

Notice: Trying to access array offset on value of type null in /nas/content/live/stagingstmllc/wp-content/themes/smarter-travel/app/core/Locations/Types.php on line 166

Notice: Function WP_Scripts::localize was called incorrectly. The $l10n parameter must be an array. To pass arbitrary data to scripts, use the wp_add_inline_script() function instead. Please see Debugging in WordPress for more information. (This message was added in version 5.7.0.) in /nas/content/live/stagingstmllc/wp-includes/functions.php on line 5835
Hiding out in Puerto Morelos, Mexico

The world is huge

Don't miss any of it

Travel news, itineraries, and inspiration delivered straight to your inbox.

By proceeding, you agree to our Privacy Policy and Terms of Use.

X
puerto morelos
Tono Balaguer/Shutterstock

Notice: Undefined offset: 4 in /nas/content/live/stagingstmllc/wp-content/plugins/smartertravel-shared/includes/ads/includes/api.php on line 92

Notice: Undefined offset: 5 in /nas/content/live/stagingstmllc/wp-content/plugins/smartertravel-shared/includes/ads/includes/api.php on line 92

Notice: Undefined offset: 6 in /nas/content/live/stagingstmllc/wp-content/plugins/smartertravel-shared/includes/ads/includes/api.php on line 92

Notice: Undefined offset: 4 in /nas/content/live/stagingstmllc/wp-content/plugins/smartertravel-shared/includes/ads/includes/api.php on line 98

Notice: Undefined index: pass_through_args in /nas/content/live/stagingstmllc/wp-content/plugins/smartertravel-shared/includes/ads/includes/api.php on line 158

Notice: Undefined index: wrapper in /nas/content/live/stagingstmllc/wp-content/plugins/smartertravel-shared/includes/ads/includes/api.php on line 159

Hiding out in Puerto Morelos, Mexico


Notice: Undefined offset: 4 in /nas/content/live/stagingstmllc/wp-content/plugins/smartertravel-shared/includes/ads/includes/api.php on line 92

Notice: Undefined offset: 5 in /nas/content/live/stagingstmllc/wp-content/plugins/smartertravel-shared/includes/ads/includes/api.php on line 92

Notice: Undefined offset: 6 in /nas/content/live/stagingstmllc/wp-content/plugins/smartertravel-shared/includes/ads/includes/api.php on line 92

Notice: Undefined offset: 4 in /nas/content/live/stagingstmllc/wp-content/plugins/smartertravel-shared/includes/ads/includes/api.php on line 98

Notice: Undefined index: pass_through_args in /nas/content/live/stagingstmllc/wp-content/plugins/smartertravel-shared/includes/ads/includes/api.php on line 158

Notice: Undefined index: wrapper in /nas/content/live/stagingstmllc/wp-content/plugins/smartertravel-shared/includes/ads/includes/api.php on line 159

Notice: Undefined offset: 4 in /nas/content/live/stagingstmllc/wp-content/plugins/smartertravel-shared/includes/ads/includes/api.php on line 92

Notice: Undefined offset: 5 in /nas/content/live/stagingstmllc/wp-content/plugins/smartertravel-shared/includes/ads/includes/api.php on line 92

Notice: Undefined offset: 6 in /nas/content/live/stagingstmllc/wp-content/plugins/smartertravel-shared/includes/ads/includes/api.php on line 92

Notice: Undefined offset: 4 in /nas/content/live/stagingstmllc/wp-content/plugins/smartertravel-shared/includes/ads/includes/api.php on line 98

Notice: Undefined index: pass_through_args in /nas/content/live/stagingstmllc/wp-content/plugins/smartertravel-shared/includes/ads/includes/api.php on line 158

Notice: Undefined index: wrapper in /nas/content/live/stagingstmllc/wp-content/plugins/smartertravel-shared/includes/ads/includes/api.php on line 159

Notice: Undefined offset: 4 in /nas/content/live/stagingstmllc/wp-content/plugins/smartertravel-shared/includes/ads/includes/api.php on line 92

Notice: Undefined offset: 5 in /nas/content/live/stagingstmllc/wp-content/plugins/smartertravel-shared/includes/ads/includes/api.php on line 92

Notice: Undefined offset: 6 in /nas/content/live/stagingstmllc/wp-content/plugins/smartertravel-shared/includes/ads/includes/api.php on line 92

Notice: Undefined offset: 4 in /nas/content/live/stagingstmllc/wp-content/plugins/smartertravel-shared/includes/ads/includes/api.php on line 98

Notice: Undefined index: pass_through_args in /nas/content/live/stagingstmllc/wp-content/plugins/smartertravel-shared/includes/ads/includes/api.php on line 158

Notice: Undefined index: wrapper in /nas/content/live/stagingstmllc/wp-content/plugins/smartertravel-shared/includes/ads/includes/api.php on line 159

Notice: Undefined offset: 4 in /nas/content/live/stagingstmllc/wp-content/plugins/smartertravel-shared/includes/ads/includes/api.php on line 92

Notice: Undefined offset: 5 in /nas/content/live/stagingstmllc/wp-content/plugins/smartertravel-shared/includes/ads/includes/api.php on line 92

Notice: Undefined offset: 6 in /nas/content/live/stagingstmllc/wp-content/plugins/smartertravel-shared/includes/ads/includes/api.php on line 92

Notice: Undefined offset: 4 in /nas/content/live/stagingstmllc/wp-content/plugins/smartertravel-shared/includes/ads/includes/api.php on line 98

Notice: Undefined index: pass_through_args in /nas/content/live/stagingstmllc/wp-content/plugins/smartertravel-shared/includes/ads/includes/api.php on line 158

Notice: Undefined index: wrapper in /nas/content/live/stagingstmllc/wp-content/plugins/smartertravel-shared/includes/ads/includes/api.php on line 159

Just a 20-minute taxi ride from Cancun’s airport lies a hidden Yucatan gem, the fishing village of Puerto Morelos. In fact, its nickname is “La Joya del Caribe” (the Jewel of the Caribbean). Like Isla Mujeres, this small getaway spot leaves the glitz and sprawl of nearby Cancun behind. Sleepy, amiable, and quiet perfectly describe my three-day stay, where I passed the time doing (and spending) virtually nothing at all.

What’s the secret?

This town’s secret is simple: There’s not a whole lot to do, and although people come to ride the ferry from Puerto Morelos to Cozumel, few stick around to explore. Those desperate for some action will find an artisan handicraft market, a tiny reptile zoo, and a town square surrounded by casual eateries, a grocer, a few ATMs, and a hardware store. It’s not a place to party hard, as the nightlife consists of a single karaoke bar, thanks to Don Pepe Ole restaurant. Instead, it’s a local town where locals live, but one that graciously welcomes visitors who aren’t afraid to step off the tired path.

The biggest draw in the town, at least for me, is the protected reef about 550 yards off shore, which is part of a national marine park. Friendly guides hanging out around the pier near their boats are more than happy to escort snorkelers. For $25 per person, they’ll take you on a two-hour excursion and direct you around the reef safely. Highlights for me included vibrant blue parrotfish, barracuda, and an elegant spotted eagle ray with a stinger that was at least eight feet long.

Dining in Puerto Morelos

When you have nowhere to be, what better thing is there to do than eat? Although, most restaurants only stay open until about 10:30 p.m., the food is quite good and worth the early night out. As one would expect in a seaport, the main cuisine comes fresh from the ocean. At Pelicanos, where you can dine steps from the water under a giant palapa, everything on the menu is some form of seafood. I started with the ceviche (a mix of cured shrimp, octopus, and fish, accompanied by tomatoes, onions, and cilantro) when my waiter kindly showed me the way to eat this Latin American dish in Mexico: Add a drizzle of olive oil, a lot of lime juice, and a bit of habañero sauce; mix it all together; and then dig in with a corn chip. It was sublime for well under $15.

For such a small town, the repertoire of other food options is also impressive and includes authentic Mexican, of course, but also Asian, Italian, French, and even German. Le Marlin Bleu is owned by French-born Eric Guegan, who has lived in Mexico for 25 years. His small open-air restaurant across from the town square produces French- and Mexican-inspired dishes such as locally famous shrimp tacos with unique salsas (one of which is made from charred hot pepper seeds) and tropical fruit crepes flambéed with rum. Snacks and desserts cost around $5 each.

Baraka is a very trendy Spanish restaurant with a story. According to my waiter, it opened just six days before Hurricane Wilma in October 2005, but was destroyed by the storm, only to reopen six months ago. The breezy and hip atmosphere brings a new sense of style to Puerto Morelos, and the food alone, a focus on traditional Spanish cuisine, is worth a trip from Cancun.

Staying in Puerto Morelos

To fully appreciate Puerto Morelos, you’ll have to look past a few flaws first. You won’t find large, full-service hotels, nor will you walk along well-manicured paths and gardens on your way to a five-star dinner buffet. It’s not Cancun and nothing is contrived. But like the famed hotel zone, this town was hit hard by Wilma. The windswept saltwater killed the foliage on acres of mangroves, leaving behind piles of swampy sticks and rendering the overall setting a bit depressing. Nevertheless, Puerto Morelos shows a resilience you won’t find on the main tourist drag. Its only landmark, a tilted lighthouse on the town beach, has not only withstood Wilma, but several other hurricanes as well.

The beaches are a bit hit-or-miss. All are free and open to the public, which seems like a plus until you realize that there’s little incentive to clean them. In some places, you’ll have to walk along washed-up soda bottles, weeds, and rusty remnants of boats left by the hurricane. However, stretches of sand near the town center and in front of hotels are very well kept by hotel owners, and are quite beautiful.

Wanting to be near the nicer beaches, I spent my nights at Rancho Sak-Ol (also named Rancho Libertad), a 14-room bed and breakfast characterized by fun but rustic-style rooms. For just $110 per night in the high season, I booked the main suite, a large room with a bed suspended from the rafters, two ceiling fans, a walk-in closet, and a sizable tiled bathroom with an aquatic theme. Although the details were a little rough around the edges (lizards climbing the walls and flimsy window screens), every day, the caring staff formed towels into different shapes like sailboats and kissing swans and placed them about the room. Other rooms cost just $80. Breakfast is included and comes with coffee, fruits, coconut yogurt, and breads, but you have to make your own eggs and squeeze your own orange juice from a large old-fashioned press.

The hotel is a short 15-minute walk to town, but the pathway isn’t well lit at night and you have to walk around the port’s industrial depot. When in doubt, you can call for a taxi for about $5. If you’d prefer to stay in town, Hacienda Morelos, with a fresh appearance and air conditioning, also has rooms starting at $80 per night and is right on the beach one block from the town square.

Located closer to Cancun’s airport than Cancun, Puerto Morelos is a convenient Mexican getaway. Airfare is competitive and affordable, and transfers by taxi cost about $45 from the airport and $25 back. And if you must, the “excitement” of Cancun or Playa del Carmen is a quick and easy ride away, too.

Don’t let this town fool you, though. Puerto Morelos might be a little lazy and rugged, but it’s a truly local Mexican experience, where children sing walking home from school, dogs sleep in the middle of the street, and not everyone speaks English. The best part is that while others are partying until dawn, you’ll be one of the few who get to actually see the stars at night while rocking to gentle ocean breezes in your hammock, doing nothing at all.

[viator_tour destination=”76″ type=”3-mod”]

We hand-pick everything we recommend and select items through testing and reviews. Some products are sent to us free of charge with no incentive to offer a favorable review. We offer our unbiased opinions and do not accept compensation to review products. All items are in stock and prices are accurate at the time of publication. If you buy something through our links, we may earn a commission.

Top Fares From


Notice: Undefined offset: 4 in /nas/content/live/stagingstmllc/wp-content/plugins/smartertravel-shared/includes/ads/includes/api.php on line 92

Notice: Undefined offset: 5 in /nas/content/live/stagingstmllc/wp-content/plugins/smartertravel-shared/includes/ads/includes/api.php on line 92

Notice: Undefined offset: 6 in /nas/content/live/stagingstmllc/wp-content/plugins/smartertravel-shared/includes/ads/includes/api.php on line 92

Notice: Undefined offset: 4 in /nas/content/live/stagingstmllc/wp-content/plugins/smartertravel-shared/includes/ads/includes/api.php on line 98

Notice: Undefined index: pass_through_args in /nas/content/live/stagingstmllc/wp-content/plugins/smartertravel-shared/includes/ads/includes/api.php on line 158

Notice: Undefined index: wrapper in /nas/content/live/stagingstmllc/wp-content/plugins/smartertravel-shared/includes/ads/includes/api.php on line 159