With centuries of Indigenous cultural history, ancient ruins, and resplendent cities, Mexico has no shortage of beautiful places to visit.
But this can make choosing a place (or several) to travel to in Mexico a challenge. Do you want to spend your days stretched on a beach in the Yucatán Peninsula or in idle relaxation sitting beside a pueblo plaza? Then again, why not both?
I’ve been writing about and traveling in Mexico for years and whether you’re here for the culture, the food, the nature, or a bit of it all, here are my recommendation for the best places to visit in Mexico.
1. Oaxaca
Oaxaca is a beautiful and culture-rich place to visit.
Photo by Shutterstock
Come for: a heady mix of traditional and experimental cuisine, ancient ruins, and a vibrant arts scene
How to get to Oaxaca: Fly into the Oaxaca International Airport (OAX). Travelers can also connect in Mexico City for the nearly 90-minute flight.
Where to stay: Hotel Sin Nombre
Tucked high up in the Sierra Madre de Oaxaca, Oaxaca is a place where overflowing baskets of spices and textiles sit beside cafés serving up artisanal coffee. Cuisine is a pillar of the city’s soul, whether in the form of crispy, coal-grilled tlayudas on the street or high-brow rooftop cocktails.
A capital for mezcal artistry, Oaxaca is known for its dozens upon dozens of mezcalerias. Pull up a chair at La Mezcalerita, a veritable library of mezcal, with three downstairs rooms and an appealing rooftop patio—perfect for sunset.
2. Bacalar
Drive a couple of hours south of Riviera Maya, Tulum and a wonderful world awaits on the banks of a lagoon.
Courtesy of Liz Aguayo/Unsplash
Come for: tranquil lagoon life that is still flying relatively far below the typical tourist radar
Where to stay: Hotel Makaaba Eco-Boutique
How to get to Bacalar: It’s is a four-hour drive south of Cancun and two hours from the airport in Tulum. Travelers can also fly into the city of Chetumal and drive for 30 minutes.
Laguna de Bacalar is the second largest lake in Mexico, with colors that change from aquamarine to cobalt because of the different depths of the water, earning it the nickname “The Lake of Seven Colors.” Bacalar has a reputation for eco-friendly resorts, hidden cenotes,and mangrove channels for kayaking. Life is slow-paced here—lights are usually out by 9 p.m., and that’s how the locals like it.
3. Puerto Escondido
Barefoot surfers and long-time fishing families commingle on broad beaches where world-famous surf pounds the sand.
Courtesy of Lorraine Mojica/Unsplash
Come for: epic surf and the culture that comes with it, plus undeveloped beaches, bioluminescent bays, and hot springs
Where to stay: Villas Carrizalillo
How to get to Puerto Escondido: Puerto Escondido has a very small airport. There is also a larger international airport in Huatulco, about 90 minutes away.
Mexico is in a constant state of development and some foreign investors have set their sights on coveted real estate. But in this port town on the Oaxacan coast, visitors can still eat fish tacos underneath shady palapas, grab an open-air collective van (a one-way ride will cost roughly 10 pesos), travel to the market downtown, and surf along windswept beaches at dawn, in large part thanks to efforts from tourists, expats, and locals to control development.
4. Isla Holbox
Step onto the sugary shores of Isla Holbox and it’s like you’ve stepped into a secret.
Courtesy of Michiel Ton/Unsplash
Come for: idyllic car-free island living with spectacular beaches, yoga, and a growing foodie scene
Where to stay: Ser Casasandra
How to get to Isla Holbox: Fly into Cancun International Airport and take a two-hour taxi or a four-hour ADO bus to Chiquila. From there, take the 15-minute ferry to Isla Holbox.
This island off the coast of the Yucatan peninsula feels as much Caribbean as it does Mexican, with a blend of car-free streets and the lilt of steel drums. Though admittedly less Robinson Crusoe–esque than it used to be thanks to an infusion of boutique resorts like Nomade Holbox and NÁAY Boutique Hotel Punta Coco, this remains a place for freshly caught and grilled seafood and beaches that seem to stretch on forever.
5. Puerto Vallarta
Puerto Vallarta is a far cry from the quiet fishing community it once was.
Courtesy of Chris McQueen/Unsplash
Come for: a beach-meets-city scene where locals and tourists mingle
Where to stay: Casa Kimberly
How to get to Puerto Vallarta: Several U.S. airports, including New York (JFK), San Francisco (SFO), and Los Angeles (LAX) offer direct flights to Puerto Vallarta.
Puerto Vallarta is a vibrant mixture of visitors and locals, where bars, restaurants, and shops are unlikely to use U.S. dollars outside of tourist centers. The city buzzes with action, whether through the pulse of the Malecon boardwalk until the wee hours or lively cobblestone streets of Zona Romantica. At the end of the day, travelers can enjoy sunset above the Bay of Banderas.
6. Cancún
Cancún is a popular place for travelers to the Mexican Caribbean
Courtesy of ams_c/Unsplash
Come for: all-inclusive hotels, white-sand beaches, and a lively downtown
Where to stay: Belmond Maroma Resort & Spa
How to get to Cancun: Fly into Cancun International Airport.
Cancún is what put the Mexican Caribbean on the map, for good reason: Few places offer better white-sand beaches or all-inclusive resorts than this spot on the Yucatán Peninsula. Cancun’s once locals-only downtown is starting to gain traction from travelers who want to venture outside the Hotel Zone. Here, visitors can get another taste of the city when encountering its street art, taco trucks, and bustling markets like Mercado 28.
7. Guanajuato
Guanajuato offers an explosion of colorful architecture and a maze of cobblestone streets.
Courtesy of gemafv85/Unsplash
Come for: colorful architecture and growing wine tourism
Where to stay: 1850 Hotel Boutique
How to get to Guanajuato: The main airport in the state of Guanajuato is in Leon, about an hour’s drive from the city.
Guanajuato is a great jumping-off point for exploring the state’s growing wine route (there are more than 30 wineries in the Guanajuato Grape and Wine Association) as well as regional dishes like enchiladas mineras—head to Enchiladas de Lupe for a delicious one. The city also hosts the annual Festival Internacional Cervantino, which invites musicians, theater performers, and other artists from all over the world to showcase their culture.
8. Mexico City
This city of more than 9 million people is one of the world’s most exciting and complex.
Courtesy of Bhargava Marripati/Unsplash
Come for: world-class hotels, museums, and restaurants
Where to stay in Mexico City: Circulo Mexicano
How to get to Mexico City: Mexico City’s airport has direct flights from all major U.S. gateways.
No visit to Mexico is complete without exploring the world-renowned restaurants, Aztec ruins, and 24/7 vibe of its capital city. Walk around Roma Norte and other vibrant neighborhoods, each one offering something different from the next. Thanks to its efficient (and cost-effective) mass transit, devouring everything from Diego Rivera murals to inventive cocktails from the top floors of luxury hotels is possible.
9. Puebla
The food scene in Puebla is one of the best in the country.
Courtesy of srcharls/Unsplash
Come for: mole, mole, mole!
Where to stay: Banyan Tree Puebla
How to get to Puebla: Puebla has its own international airport with direct flights from Houston (IAH). From the Benito Juarez airport, hop aboard an express bus and ride two hours to Puebla.
Puebla has fostered a scene that is just as proud of its heritage and tradition (it’s said to have a church for every day of the year) as it is of its experimental restaurants, with eateries like Moyuelo and Áttico 303 fusing traditional Mexican ingredients with international techniques and recipes. The city’s kitchens and street carts offer temptations like mole (a dried chile sauce) in every shade, overstuffed bread roll sandwiches known as cemitas, and tacos arabes stuffed into fluffy lavash-style bread.
10. San José del Cabo
San Jose del Cabo’s art district brims with boutique art galleries and restaurants.
Courtesy of Mary West/Unsplash
Come for: Cabo beaches and fantastic dining without the overwhelming hum of tourists
Where to stay: Acre Baja
How to get to San José del Cabo: San Jose del Cabo’s international airport is the gateway to Los Cabos. It has direct flights from most major U.S. hubs.
Los Cabos consists of Cabo San Lucas and San José del Cabo, which are connected by a long stretch of resort-lined roads known as the Tourist Corridor. As Cabo San Lucas is the more visited of the two, San José del Cabo is where travelers go to escape the crowds. Those visiting San José del Cabo can experience a thriving farm-to-table scene thanks to organic farms Flora Farms, Tamarindos, and Acre Baja that double as outdoor restaurants.