The 10 Most Charming Towns in Mexico

See recent posts by Kyle Valenta

Home to one of the world's largest cities, world-famous luxury resorts, and beaches that would make a Caribbean island blush, Mexico is flush with things to see and do. However, tourists aren't always the best at getting off the beaten path and discovering the smaller, quieter joys of this fascinating country. Mexico has hundreds of towns that will easily steal your heart, whether it's through thriving indigenous traditions, amazing historic architecture, or something as simple as the perfect quality of light. With that in mind, we've rounded up 10 of the most charming Mexican towns that you should add to your bucket list right now. 


1. Cholula

Cholula; Emigdio Hernandez/Flickr

Cholula; Emigdio Hernandez/Flickr

Around 90 minutes east of Mexico City, beyond the volcanoes that loom over the country’s high-altitude central regions, sits pretty-as-a-picture Cholula. Here, you’ll find Mexico’s largest pyramid (though it’s buried and now crowned by a massive basilica), enough churches to visit every day of the year, and streets that buzz day and night. In fact, the town is known for having some of Puebla’s best nightlife, thanks in part to its young, university population. Cholula’s historic center is a great place to spend a day sampling everything from traditional Pueblan confections to a sweet-and-spiced cafe de olla. 

2. Todos Santos

Todos Santos; Andrea Tosatto/Flickr

Todos Santos; Andrea Tosatto/Flickr

Todos Santos is often overlooked by its Baja Sur siblings to the south: San Jose del Cabo and Cabo San Lucas. That may be a good thing, though, as it has kept Todos Santos far calmer (but still very much on the tourist radar). It’s hard to argue with the town’s charms. Days can be spent wandering the small cluster of main streets, perusing the artisan shops, enjoying coffee in a boho cafe, or hitting up one of the authentic taquerias just off the main drags. It’s a designated Pueblo Magico (or Magic Town), and you can expect a mix of colonial charm, Mexican traditions, and funky contemporary trends here.

3. San Cristobal de las Casas

San Cristobal de las Casas; Charlie Marchant/Flickr

San Cristobal de las Casas; Charlie Marchant/Flickr

Tucked high in the pine forests of rugged Chiapas, San Cristobal de las Casas makes a strong case for venturing into a less-visited corner of Mexico. While it’s actually a sizable city, the vibe here is more of a town than busy urban center. Yet another Pueblo Magico, San Cristobal has been on the radar of domestic tourists for decades now, thanks to its stunning setting made up of rolling, forested hills. Cobblestone streets are prime for wandering amid the well-preserved colonial architecture, and the city’s markets offer up an incredible selection of artisanal goods. Indigenous roots run deep in this part of Chiapas, and the town is surrounded by other villages where traditions managed to survive the Spanish invasions of Mexico. You’ll still spot that culture in the city’s markets, museums, and on day trips out of town.

4. Taxco

Taxco; Laurent Espitallier/Flickr

Taxco; Laurent Espitallier/Flickr

Taxco is a sight to behold. Its white-on-white city center gracefully tumbles down the side of a small mountain and spreads into a valley that’s punctuated by a magnificent Baroque cathedral. Taxco was prized by Spanish invaders for its silver mines, and that legacy still lingers today. While the mines are essentially depleted, the town is home to many metalsmiths and jewelers who still craft beautiful pieces of silver. Preservation is taken seriously here, and the town center retains much of the character it had for decades — though with a decidedly tourist-friendly slant now. Expect charming cafes, restaurants, bars, and boutiques, as well as a handful of quaint guesthouses and hotels. 

5. Valladolid

Valladolid; Shubert Ciencia/Flickr

Valladolid; Shubert Ciencia/Flickr

A bit more city than small town, Valladolid is often overlooked as travelers blaze their way across Mexico’s gorgeous Yucatan Peninsula. But what a mistake that is. Set halfway between beautiful Merida and the beaches of the Riviera Maya, Valladolid’s location is hard to beat. Chichen Itza is only a 45-minute drive west, and multiple stunning cenotes are about the same distance in the opposite direction. Beauty aside, it’s the pace of life here that helps make Valladolid one of the Yucatan’s most charming towns. Cotton candy-colored buildings pack the city’s historic center, as do numerous historic sights, including the artifact-packed Casa de los Venados and multiple ancient churches and cathedrals. 

Valladolid Hotel Pick:

6. Patzcuaro and Janitzio

Patzcuaro; Saturnine/Flickr

Patzcuaro; Saturnine/Flickr

Most travelers don’t equate Mexico’s landscape with pretty lakes, but the region around Patzcuaro is packed with them. The setting makes a visit here a two-for-one deal when it comes to charm and character. Patzcuaro is a fascinating place to spend the Day of the Dead due to its colorful local traditions. The region is also home to the indigenous Purepecha community, an ancient culture that managed to resist the mighty Aztecs for centuries, cultivating their own artistic and cultural traditions. You can spot these customs on display in the markets throughout Patzcuaro, though contemporary galleries are also popping up. No trip here would be complete without also visiting Janitzio, and island town that rises from Lake Patzcuaro. Pro tip: Head to the top of the hill in Janitzio, next to the Jose Maria Morelos statue. Views of the lake and the mountains of Michoacan are nothing short of breathtaking.

7. Mazunte

Mazunte; Gabriel Balderas/Flickr

Mazunte; Gabriel Balderas/Flickr

Let’s get one thing clear: You aren’t coming to Mazunte for stunning colonial relics and atmospheric cobblestone streets. Instead, Mazunte is one of those former bohemian hideaways that has burst into a lively hub blending surfer culture, aging (and new wave) hippies, eco-enthusiasts, foodies, and beach lovers. With one of the prettiest settings on the west coast of Mexico, Mazunte serves as a breeding ground for sea turtles, which draws visitors in droves. It’s filled with open-air restaurants, roving packs of backpackers selling treats (legal and illegal) on the beach, and anyone looking to decompress. The town is entirely geared toward relaxation, but has enough of a pulse to keep things interesting for several days. If you’re really looking to be charmed, take a hike up to Punta Cometa, at the north end of the beach, to watch the sunset dip down over the Pacific Ocean. 

8. San Sebastian Bernal

San Sebastian Bernal; Ivan Hernandez/Flickr

San Sebastian Bernal; Ivan Hernandez/Flickr

Stunning scenery is almost a given in nearly every corner of Mexico, but San Sebastian Bernal, or simply Bernal, could easily vie for one of the most eye-catching natural settings in the country. The town itself is a colorful, colonial gem that’s packed with plenty of tourist-friendly businesses, restaurants, and cafes. However, it’s the combination of that 18th- and 19th-century atmosphere and the immediate landscape that add an extra layer of magic to this place. You see, just behind San Sebastian rises one of the largest stone monoliths in the world. The Peña de Bernal, as it’s known, looms nearly 1,500 feet over the area and provides a stunning backdrop to this small, culturally packed town. Be sure to sample the town’s famous dulce de leche while you’re here, or take a quick trip out of town to visit the fascinating Otomi chapel of San Antonio de la Cal. 

9. Tlacotalpan

Tlacotalpan; Adam Jones/Flickr

Tlacotalpan; Adam Jones/Flickr

A colorful, UNESCO-designated town on the banks of the Papaloapan River in the state of Veracruz, Tlacotalpan has taken great pains to preserve its historic character. The two main squares, Parque Hidalgo and Plaza Zaragoza, anchor Tlacotalpan, and the core is an eminently strollable place. In fact, walking around town, sampling local Veracruz cuisine, and taking in the sunsets over the river are the extent of what’s on offer here, making this a perfect and perfectly charming place to relax for a day or two.

10. Bacalar

Bacalar; Roberto Bolaños/Flickr

Bacalar; Roberto Bolaños/Flickr

Tulum gets all the attention when it comes to towns along Mexico’s Yucatan, but if you’re willing to head south of the Riviera Maya, your reward will be great. Like San Sebastian Bernal, Bacalar is one of the most charming small towns in Mexico because of its natural setting. Here, you’ll find the Lake of Seven Colors, named because it contains seemingly infinite shades of blue. The town itself has just the right blend of unplugged tropical vibes and tourist-friendly conveniences to make it a charming getaway on par with the world’s best beach villages. Will you find cobblestone streets lined with ancient churches? No. But for a beachy atmosphere that can’t help but be romantic, Bacalar should be your next go-to spot.

Author’s Note: Keep in mind that the security situation in some Mexican states is fluid and demands a bit of caution. Be sure to check the U.S. State Department’s current travel warnings and do a bit of research before you plan a trip, especially if it involves driving in less trafficked parts of the country.

You’ll Also Like:

All products are independently selected by our writers and editors. If you buy something through our links, Oyster may earn an affiliate commission.