The calm, shallow waters on the beaches of Holbox make it the perfect place to kayak and paddle board.
If you want to stick to the main beaches in Huatulco, you’ll still have a wonderful time. Check out this guided tour which will take you to 7 of the area’s famous bays!
1. Isla Espíritu Santo, Baja California Sur
This is one of those places where I have to stop and ask myself Is this even real? Balandra Beach is so breathtaking that parts of it feel surreal to see in person. Between the pristine shallow waters on the soft white sand and the reddish rocky mountains in the background, this beach is one of the easiest to add to this list.
- Where to stay: Just like Balandra Beach, the best place to stay in order to visit Isla Espirítu Santo is La Paz. You’ll find loads of wonderful options there, like this super affordable loft Airbnb!
- How to get there: The only way to get to the island is by boat with an authorized tour operator. The above-mentioned tour is a great option, but you can also find plenty of others in La Paz, such as Club Cantamar.
2. Balandra Beach, La Paz, Baja California Sur
Mahahual is just north of Bacalar and is popular among divers because of its incredible reefs just off the shore. Before beach hotels began to pop up in Mahahual, it was a sleeping fishing village. In fact, most of the town has retained its original charm and the touristy area is relatively small.
Costa Careyes is home to rugged nature and small villages with little else along this part of the coast, making it the perfect beach destination for travelers who are looking for both an adventurous and peaceful experience. The time to visit is now, as plans to build more infrastructure and resorts are underway and will likely lead to a huge boom in tourism to the area.
The same goes for Cacaluta, which is even more secluded. In fact, you have to hike through the jungle to get there! From Huatulco center, take a taxi to the entrance of Cacaluta (it should only cost about 60 pesos) and use the signs along the way to lead you to the beach, which is about a 30 minute hike. There are no restaurants or amenities at this beach so go prepared! The tranquility and possibility of having the beach to yourself make it worth it.
- Where to stay: In La Paz, which is the closest to Balandra Beach where you can stay, Hotel Catedral is one of the best options you’ll find and has an amazing rooftop.
- How to get there: To get to Balandra, you will need to have a vehicle or take a taxi. Another way to get there is to take a boat or jetski from a neighboring beach, such as Pichilingue. You can arrange for a boat to pick you back up a few hours after enjoying the beach and it should cost around 250 pesos (10.25 USD) per person, round trip.
3. Islas Marietas, Nayarit
Here are my top picks for the absolute best beaches in Mexico, from north to south:
Similar to Xpu-ha, Playa Mahahual is a small beach village that has mostly avoided the mega-tourism of the region. Seeing a trend yet? Sometimes the best beaches aren’t the ones with the fancy restaurants and bars right on them, and I tend to favor the ones that are frequented by locals and have a more chill vibe.
- Where to stay: The best place to stay if you plan to visit Islas Marietas is Sayulita, which has a ton of great lodging options. Aurinko Bungalows has rooms around $70-80 USD per night and is a favorite among solo travelers.
- How to get there: If flying into Puerto Vallarta airport, you can reach Sayulita by private car, public bus, or even Uber! From there, you’ll have to book a tour like this one or from a company in Sayulita or Puerto Vallarta.
4. Costa Careyes, Jalisco
There’s a rumor that Islas Marietas was once a bomb testing site, which is one particularly sinister explanation for the gaping hole you’ll find at Playa del Amor (aka “hidden beach”) which looks like a giant skylight above the beach.
Oh, Mazunte. The rocky shores of Oaxaca offer a mix of cactus-speckled landscapes and soft sandy beaches that attract tons of surfers and barefoot hippies. I went to Mazunte for the first time earlier this year and fell in love immediately. Its chill atmosphere, delightful seafood, and crashing waves make for a relaxing and restorative beach experience.
- Where to stay: Airbnb has a ton of great selections for mid-priced accomodations, like this 1 bedroom casita with an ocean view. Another great option is this boutique villa which includes breakfast and has an airport shuttle from Puerto Vallarta.
- How to get there: Costa Careyes is about a 3-hour drive from the airport in Puerto Vallarta or an 1-hour drive from the airport in Manzanillo. You can take a taxi from either of these airports for anywhere between $40USD and $200USD, or you can take public transport. If you decide to go with public transport, just ask where the parada de combis is and find the combi going to Costa Careyes. You can confirm with the driver that you will be stopping there.
5. Zihuatanejo, Guerrero
You’ve heard all about the beaches of Cancún, Tulum, Cabo, and Puerto Vallarta. Have you heard about Xpu-ha, though? This idyllic beach is one of the Riviera Maya‘s best kept secrets and it’s one of the only beaches in the area that isn’t overrun with tourists during high season.
Balandra Beach is near the city of La Paz, Baja California Sur. Since the pandemic, authorities enforce a capacity limit at the beach, so you’ll have to get there early to have access. Since La Paz is a great place to find whale sharks from October to May, you’ll have a great view of breaching whales from Balandra during the season.
- Where to stay: If you are looking for luxury and serenity, look no further than La Casa Que Canta (“the house that sings,” in English). This place is absolutely gorgeous and rooms are around $300 per night.
- How to get there: Getting to Zihuatanejo is fairly easy because it has an airport with daily flights coming in from Mexico City. To get to Playa Las Gatas, you can take a water taxi from the pier at Playa la Ropa in Zihuatanejo.
6. Mazunte, Oaxaca
Playa Norte on Isla Mujeres is exactly the kind of beach you dream of in the dead of winter when you haven’t seen the sunshine in weeks. With its powdery-soft white sand, clear shallow waters, and island breezes, visiting this lovely island is like stepping into a postcard.
Located on the rounded peninsula which makes up the southern part of Bay of Banderas, Costa Careyes is a lesser-known paradise with virgin beaches, thick forests, and tons of wildlife. Although developers are just beginning to put up luxury resorts in the surrounding Cabo Corrientes area, Costa Careyes has mostly avoided the mega construction of many other beach destinations.
There’s no wonder why there’s so much overlap in our most beautiful places in Mexico post and this one. The beaches throughout the country are remarkable and it totally makes sense that so many people flock to Mexico’s shores each year. And the variety! There are so many different kinds of beaches, each having their own flair.
- Where to stay: You get a lot of bang for your buck in Mazunte. For example, you can have this entire loft for just $45 a night! There are also plenty of hostels with dorms and private rooms available, but I’ve had great luck on Airbnb in Mazunte. The hospitality there is incredible!
- How to get there: Mazunte is just an hour south of Puerto Escondido, which has the closest large airport. I recommend flying into Puerto Escondido and then taking a bus to Mazunte or renting a car. There are ADO buses, but the smaller combis leave quicker and are just as comfortable.
7. Huatulco, Oaxaca
Beyond the obvious stunning white sand beaches and wildlife sightings, Holbox has several cenotes nearby and even some awesome nature preserves. There are numerous tours available on the island that can take you out on the water or to different locations, such as Punta Cocos to see the bioluminescent water at night.
The coast of Huatulco is known for its soft golden sand and rocky bluffs towering over the deep blue waters of the Pacific ocean. Playa Arrocito is a tranquil patch of sandy beach capped on both side by cliffs and is the perfect place to relax. You won’t see many people here and amenities are slim, so consider packing a picnic and bringing your own gear if you want to snorkel.
One of the best ways to soak up the beauty of Balandra Beach is to snorkel in its pristine waters and take a peek at the variety of glittering fish and other sea creatures. This tour includes a stop at Balandra and also passes by the lighthouse at San Rafaelito.
After living in Mexico for two years, I’ve been to my fair share of amazing beaches. With thousands of miles of coastline on the Pacific side, the Gulf of Mexico, and the Caribbean, there’s plenty of variety here, too. There’s truly a beach in Mexico for everyone, ranging from the mega-tourism of Riviera Maya to the crashing waves of Oaxaca.
- Where to stay: Huatulco is home to plenty of big hotels and resorts, so I preferred Airbnb when I visited last year. There are many affordable options in the central area of Playa Santa Cruz, like this whole condo at just $60 per night.
- How to get there: Huatulco has its own airport called Bahías de Huatulco International Airport, which you can fly into from Mexico City on a connecting flight. From there, you can take a quick taxi to your accommodation.
8. Isla Holbox, Quintana Roo
How many of these beaches have you been to? While some of these are big tourist hotspots, many are actually hidden gems! Let us know which ones are your favorites.
Pin me for later:
There are a lot of interesting things happening in Mazunte on any given day. From yoga classes to shamanic ceremonies and fire dances, you’ll find all kinds of esoteric and spiritual offerings. The best way to find out what’s going on there is to keep an eye out for flyers posted around town.
- Where to stay: For a luxurious stay, check out Villas Caracol which is not only breathtakingly beautiful, but also has breakfast included and a swimming pool. A great budget friendly option is this cute rental unit on Airbnb that has a more authentic, local feel.
- How to get there: To get to Isla Holbox, you can take a ferry from the port at Chiquilá. If you’re coming from the Cancún airport, you can either take a taxi there or an ADO bus. If you’re renting a car, there’s plenty of parking in Chiquilá and only costs about $4-5 per day to park.
9. Playa Norte, Isla Mujeres, Quintana Roo
The shining star of Costa Careyes is the Selva de Cuitzmala, which is right in Costa Careyes’ back yard. With the incredible ocean views paired with the picturesque jungle, this is one of the most idyllic places you’ll find in Jalisco and feels a world away from the craziness of Puerto Vallarta.
There are four beaches in Zihuatanejo, the most remote and best one by far being Playa Las Gatas. The dreamy turquoise water is perfect for swimming and snorkeling and the chill atmosphere makes it the perfect place to get away from the stresses of life and fully relax. I can’t think of another place that has such a serene atmosphere like Playa Las Gatas.
- Where to stay: A sweet thing about Isla Mujeres is that you can find affordable accommodation super close to the beach, like this entire condo for less than $50 per night.
- How to get there: You can get to Isla Mujeres easily via ferry from Cancún’s Puerto Juarez Maritime Terminal, located just a few miles north of the Hotel Zone.
10. Xpu-ha, Quintana Roo
The coast of Zihuatanejo has rocky cliffs, thick mangroves, and towering mountains in addition to the picturesque beaches. If the beauty of this part of Mexico wasn’t romantic enough, check out this horseback riding tour that would be the perfect date with your partner, or even solo!
If you’ve read our complete guide to Isla Holbox, you know that this is one of my favorite beaches in Mexico. It’s a dreamy, colorful, enchanting place that might be a bit touristy but it’s still a wonderful place to visit. Isla Holbox is a long skinny island off the coast of the Yucatán peninsula and has the ocean on one side and a salty lagoon on the other. It’s one of the most beautiful places in Mexico and one of the top places in the country to see whale sharks and bioluminescence.
The atmosphere at Xpu-ha is laid back and generally uncrowded, which is a far cry from the busy beaches elsewhere. The powdery soft sand with cyan colored water is great for a swim and there are plenty of opportunities to snorkel and dive there as well. Pair that with a couple fresh fish tacos and a cold beer for the perfect beachy afternoon. What more could a girl ask for?
- Where to stay: There are plenty of delightful options on Airbnb for places that are just steps from the beach, like this adorable tiny house that is literally right on the shore.
- How to get there: Xpu-ha is incredibly easy to get to from Cancún’s international airport. There are ADO buses that go from Cancún to Tulum, making a stop in Xpu-ha. You can also find taxis at the airport that can take you straight to your accommodation.
11. Mahahual, Quintana Roo
Just off the coast of Sayulita in the state of Nayarit are the Marietas islands. These small uninhabited islands are home to sea caves, virgin beaches, and incredibly clear water, not to mention the famous Playa del Amor which is a hidden beach paradise.
On any given day during any season, you’ll find locals chilling out on Xpu-ha beach and soaking in its beauty.
- Where to stay: If you want to stay right on the beach, it’s possible to do so affordably in Mahahual at Noah Beach Hotel & Suites. Rooms range between $100-200 USD per night.
- How to get there: You can get to Mahahual from Cancún’s international airport, but it’s closer to Chetumal’s national airport. If you fly into Cancún, you can catch a bus to Mahahual from the ADO terminal.
The radiant white sandy beaches and contrasting red rocks of the island are some of the many things that make this beach so beautiful. It’s also home to some exotic wildlife, which is what many people visit the island to see. In particular, there is an abundance of sea lions who live nearby. A snorkeling adventure like this one is the perfect way to see them.
This small group of islands is known for its biodiversity and incredible snorkeling around it. Wildmex offers half-day snorkel tours which is one of the best ways to enjoy everything the islands have to offer. This beach destination is truly one of the best in Mexico, so don’t miss out on a visit if you’re ever in the Sayulita or Puerto Vallarta area!
span,.formkit-form[data-uid=”ff60a8d270″] .formkit-submit:hover > span,.formkit-form[data-uid=”ff60a8d270″] .formkit-button:focus > span,.formkit-form[data-uid=”ff60a8d270″] .formkit-submit:focus > span{background-color:rgba(0,0,0,0.1);}.formkit-form[data-uid=”ff60a8d270″] .formkit-button > span,.formkit-form[data-uid=”ff60a8d270″] .formkit-submit > span{display:block;-webkit-transition:all 300ms ease-in-out;transition:all 300ms ease-in-out;padding:12px 24px;}.formkit-form[data-uid=”ff60a8d270″] .formkit-input{background:#ffffff;font-size:15px;padding:12px;border:1px solid #e3e3e3;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;line-height:1.4;margin:0;-webkit-transition:border-color ease-out 300ms;transition:border-color ease-out 300ms;}.formkit-form[data-uid=”ff60a8d270″] .formkit-input:focus{outline:none;border-color:#1677be;-webkit-transition:border-color ease 300ms;transition:border-color ease 300ms;}.formkit-form[data-uid=”ff60a8d270″] .formkit-input::-webkit-input-placeholder{color:inherit;opacity:0.8;}.formkit-form[data-uid=”ff60a8d270″] .formkit-input::-moz-placeholder{color:inherit;opacity:0.8;}.formkit-form[data-uid=”ff60a8d270″] .formkit-input:-ms-input-placeholder{color:inherit;opacity:0.8;}.formkit-form[data-uid=”ff60a8d270″] .formkit-input::placeholder{color:inherit;opacity:0.8;}.formkit-form[data-uid=”ff60a8d270″] [data-group=”dropdown”]{position:relative;display:inline-block;width:100%;}.formkit-form[data-uid=”ff60a8d270″] [data-group=”dropdown”]::before{content:””;top:calc(50% – 2.5px);right:10px;position:absolute;pointer-events:none;border-color:#4f4f4f transparent transparent transparent;border-style:solid;border-width:6px 6px 0 6px;height:0;width:0;z-index:999;}.formkit-form[data-uid=”ff60a8d270″] [data-group=”dropdown”] select{height:auto;width:100%;cursor:pointer;color:#333333;line-height:1.4;margin-bottom:0;padding:0 6px;-webkit-appearance:none;-moz-appearance:none;appearance:none;font-size:15px;padding:12px;padding-right:25px;border:1px solid #e3e3e3;background:#ffffff;}.formkit-form[data-uid=”ff60a8d270″] [data-group=”dropdown”] select:focus{outline:none;}.formkit-form[data-uid=”ff60a8d270″] [data-group=”checkboxes”]{text-align:left;margin:0;}.formkit-form[data-uid=”ff60a8d270″] [data-group=”checkboxes”] [data-group=”checkbox”]{margin-bottom:10px;}.formkit-form[data-uid=”ff60a8d270″] [data-group=”checkboxes”] [data-group=”checkbox”] *{cursor:pointer;}.formkit-form[data-uid=”ff60a8d270″] [data-group=”checkboxes”] [data-group=”checkbox”]:last-of-type{margin-bottom:0;}.formkit-form[data-uid=”ff60a8d270″] [data-group=”checkboxes”] [data-group=”checkbox”] input[type=”checkbox”]{display:none;}.formkit-form[data-uid=”ff60a8d270″] [data-group=”checkboxes”] [data-group=”checkbox”] input[type=”checkbox”] + label::after{content:none;}.formkit-form[data-uid=”ff60a8d270″] [data-group=”checkboxes”] [data-group=”checkbox”] input[type=”checkbox”]:checked + label::after{border-color:#ffffff;content:””;}.formkit-form[data-uid=”ff60a8d270″] [data-group=”checkboxes”] [data-group=”checkbox”] input[type=”checkbox”]:checked + label::before{background:#10bf7a;border-color:#10bf7a;}.formkit-form[data-uid=”ff60a8d270″] [data-group=”checkboxes”] [data-group=”checkbox”] label{position:relative;display:inline-block;padding-left:28px;}.formkit-form[data-uid=”ff60a8d270″] [data-group=”checkboxes”] [data-group=”checkbox”] label::before,.formkit-form[data-uid=”ff60a8d270″] [data-group=”checkboxes”] [data-group=”checkbox”] label::after{position:absolute;content:””;display:inline-block;}.formkit-form[data-uid=”ff60a8d270″] [data-group=”checkboxes”] [data-group=”checkbox”] label::before{height:16px;width:16px;border:1px solid #e3e3e3;background:#ffffff;left:0px;top:3px;}.formkit-form[data-uid=”ff60a8d270″] [data-group=”checkboxes”] [data-group=”checkbox”] label::after{height:4px;width:8px;border-left:2px solid #4d4d4d;border-bottom:2px solid #4d4d4d;-webkit-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg);left:4px;top:8px;}.formkit-form[data-uid=”ff60a8d270″] .formkit-alert{background:#f9fafb;border:1px solid #e3e3e3;border-radius:5px;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;list-style:none;margin:25px auto;padding:12px;text-align:center;width:100%;}.formkit-form[data-uid=”ff60a8d270″] .formkit-alert:empty{display:none;}.formkit-form[data-uid=”ff60a8d270″] .formkit-alert-success{background:#d3fbeb;border-color:#10bf7a;color:#0c905c;}.formkit-form[data-uid=”ff60a8d270″] .formkit-alert-error{background:#fde8e2;border-color:#f2643b;color:#ea4110;}.formkit-form[data-uid=”ff60a8d270″] .formkit-spinner{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;height:0px;width:0px;margin:0 auto;position:absolute;top:0;left:0;right:0;width:0px;overflow:hidden;text-align:center;-webkit-transition:all 300ms ease-in-out;transition:all 300ms ease-in-out;}.formkit-form[data-uid=”ff60a8d270″] .formkit-spinner > div{margin:auto;width:12px;height:12px;background-color:#fff;opacity:0.3;border-radius:100%;display:inline-block;-webkit-animation:formkit-bouncedelay-formkit-form-data-uid-ff60a8d270- 1.4s infinite ease-in-out both;animation:formkit-bouncedelay-formkit-form-data-uid-ff60a8d270- 1.4s infinite ease-in-out both;}.formkit-form[data-uid=”ff60a8d270″] .formkit-spinner > div:nth-child(1){-webkit-animation-delay:-0.32s;animation-delay:-0.32s;}.formkit-form[data-uid=”ff60a8d270″] .formkit-spinner > div:nth-child(2){-webkit-animation-delay:-0.16s;animation-delay:-0.16s;}.formkit-form[data-uid=”ff60a8d270″] .formkit-submit[data-active] .formkit-spinner{opacity:1;height:100%;width:50px;}.formkit-form[data-uid=”ff60a8d270″] .formkit-submit[data-active] .formkit-spinner ~ span{opacity:0;}.formkit-form[data-uid=”ff60a8d270″] .formkit-powered-by[data-active=”false”]{opacity:0.35;}@-webkit-keyframes formkit-bouncedelay-formkit-form-data-uid-ff60a8d270-{0%,80%,100%{-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0);}40%{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);}}@keyframes formkit-bouncedelay-formkit-form-data-uid-ff60a8d270-{0%,80%,100%{-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0);}40%{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);}}.formkit-form[data-uid=”ff60a8d270″] blockquote{padding:10px 20px;margin:0 0 20px;border-left:5px solid #e1e1e1;} .formkit-form[data-uid=”ff60a8d270″]{max-width:700px;}.formkit-form[data-uid=”ff60a8d270″] [data-style=”clean”]{width:100%;}.formkit-form[data-uid=”ff60a8d270″] .formkit-fields{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;margin:0 auto;}.formkit-form[data-uid=”ff60a8d270″] .formkit-field,.formkit-form[data-uid=”ff60a8d270″] .formkit-submit{margin:0 0 15px 0;-webkit-flex:1 0 100%;-ms-flex:1 0 100%;flex:1 0 100%;}.formkit-form[data-uid=”ff60a8d270″] .formkit-powered-by{color:#7d7d7d;display:block;font-size:12px;margin:0;text-align:center;}.formkit-form[data-uid=”ff60a8d270″][min-width~=”700″] [data-style=”clean”],.formkit-form[data-uid=”ff60a8d270″][min-width~=”800″] [data-style=”clean”]{padding:10px;}.formkit-form[data-uid=”ff60a8d270″][min-width~=”700″] .formkit-fields[data-stacked=”false”],.formkit-form[data-uid=”ff60a8d270″][min-width~=”800″] .formkit-fields[data-stacked=”false”]{margin-left:-5px;margin-right:-5px;}.formkit-form[data-uid=”ff60a8d270″][min-width~=”700″] .formkit-fields[data-stacked=”false”] .formkit-field,.formkit-form[data-uid=”ff60a8d270″][min-width~=”800″] .formkit-fields[data-stacked=”false”] .formkit-field,.formkit-form[data-uid=”ff60a8d270″][min-width~=”700″] .formkit-fields[data-stacked=”false”] .formkit-submit,.formkit-form[data-uid=”ff60a8d270″][min-width~=”800″] .formkit-fields[data-stacked=”false”] .formkit-submit{margin:0 5px 15px 5px;}.formkit-form[data-uid=”ff60a8d270″][min-width~=”700″] .formkit-fields[data-stacked=”false”] .formkit-field,.formkit-form[data-uid=”ff60a8d270″][min-width~=”800″] .formkit-fields[data-stacked=”false”] .formkit-field{-webkit-flex:100 1 auto;-ms-flex:100 1 auto;flex:100 1 auto;}.formkit-form[data-uid=”ff60a8d270″][min-width~=”700″] .formkit-fields[data-stacked=”false”] .formkit-submit,.formkit-form[data-uid=”ff60a8d270″][min-width~=”800″] .formkit-fields[data-stacked=”false”] .formkit-submit{-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;} ]]>